Re: [cp-patches] RFC/RFT: HTTP header handling rewrite.
David Daney wrote: Wolfgang Baer wrote: [...] Not correct. These Maps are only modified internally to classpath. The RFC requires header name comparisons to be case insensitive. The only way to make the Map work with String keys is to ensure that the keys get transformed to a consistant case. When the Maps make their way into user code, there is no way to know the case so the only operation that makes sense WTR user code is iteration. You have to know a priori that they are lower-cased. I will document this. In general you are right. However SUN clearly uses the key name in the Map returned by getHeaderFields() as it is and not lowercased. And there is nothing in the javadoc which would make a programmer assume that he must query with a lowercased name. So if programs use the getHeaderFields() returned Map not only by iteration their code will break. What do they do if there are two headers where the name differs only by case? Depends if you use getHeaderFields() to get a Map first or if you directly query with getHeaderField(String). See example below. Does it have two entries in the map or only one? In the Map - two. What happens when you do a get on the map with a key of the wrong case? Returns null. An example: Suppose a server returns the following set of headers. Notice that the last two are lowercase. HTTP/1.0 200 OK Server: TestServer Key: value Key: value1 key: value2 key: value3 For getHeaderFields() Sun will return a Map with size 4 Key [value1, value] key [value3, value2] null [HTTP/1.0 200 OK] Server [TestServer] So they are treated (for getHeaderFields ONLY) case sensitiv ! For getHeaderField() Sun treats them case-insensitive according to the RFC. This leads to: getHeaderField(Key) and getHeaderField(key) will both return value3 as this is the last value received. On the map returned by Sun is it possible to find a String s where map.containsKey(s) == true but where: found = false; for (Iterator it = map.keySet().iterator; it.hasNext(); ) { String k = (String)it.next(); if (k.equals(s)) {found = true; break;} } Results in found having a value of false? No - if the key is found in the map it will also be found by iteration. Or I guess put more succinctly: Can the map (with String keys) be queried (with Map.get()) in a case insensitive manner? No I really don't want to use a case insensitive horked up map, but I guess we can if it is necessary. I don't understand this one. Don't you mean case sensitive here ? What does horked up mean - can't find it in any dictionary. Wolfgang
Re: [cp-patches] RFC: Fixlet for gnu/java/net/protocol/jar/Connection.java
Hi Wolfgang, On Thu, 2006-03-02 at 19:59 +0100, Wolfgang Baer wrote: 2006-03-02 Wolfgang Baer [EMAIL PROTECTED] * gnu/java/net/protocol/jar/Connection.java: (connect): Throw FileNotFoundException. (getInputStream): Remove duplicated code. OK to commit ? Yes this looks good. Thanks, Mark signature.asc Description: This is a digitally signed message part
[cp-patches] FYI: RepaintManager NPE check
According to the specs, Graphics.getClip(Bounds) may return null when no clip is set. I added appropriate checks to the RepaintManager to avoid NPEs in such situations. 2006-03-03 Roman Kennke [EMAIL PROTECTED] * javax/swing/plaf/basic/BasicHTML.java (HTMLRootView): New inner class. (createHTMLView): Embed view inside a HTMLRootView. /Roman Index: javax/swing/RepaintManager.java === RCS file: /cvsroot/classpath/classpath/javax/swing/RepaintManager.java,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- javax/swing/RepaintManager.java 27 Feb 2006 12:45:35 - 1.27 +++ javax/swing/RepaintManager.java 3 Mar 2006 10:06:10 - 1.28 @@ -636,9 +636,10 @@ Graphics g = root.getGraphics(); Image buffer = (Image) offscreenBuffers.get(root); Rectangle clip = g.getClipBounds(); -area = SwingUtilities.computeIntersection(clip.x, clip.y, - clip.width, clip.height, - area); +if (clip != null) + area = SwingUtilities.computeIntersection(clip.x, clip.y, +clip.width, clip.height, +area); int dx1 = area.x; int dy1 = area.y; int dx2 = area.x + area.width;
[cp-patches] FYI: BasicHTML fixlet
I fixed the BasicHTML to embed the create HTML View inside a HTMLRootView which is similar in purpose and implementation like the BasicTextUI.RootView. 2006-03-03 Roman Kennke [EMAIL PROTECTED] * javax/swing/plaf/basic/BasicHTML.java (HTMLRootView): New inner class. (createHTMLView): Embed view inside a HTMLRootView. /Roman Index: javax/swing/plaf/basic/BasicHTML.java === RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicHTML.java,v retrieving revision 1.2 diff -u -r1.2 BasicHTML.java --- javax/swing/plaf/basic/BasicHTML.java 14 Feb 2006 22:44:53 - 1.2 +++ javax/swing/plaf/basic/BasicHTML.java 3 Mar 2006 10:13:11 - @@ -38,12 +38,21 @@ package javax.swing.plaf.basic; +import java.awt.Container; +import java.awt.Graphics; +import java.awt.Rectangle; +import java.awt.Shape; import java.io.IOException; import java.io.StringReader; import javax.swing.JComponent; +import javax.swing.SwingConstants; +import javax.swing.event.DocumentEvent; import javax.swing.text.BadLocationException; +import javax.swing.text.Document; +import javax.swing.text.EditorKit; import javax.swing.text.Element; +import javax.swing.text.Position; import javax.swing.text.View; import javax.swing.text.ViewFactory; import javax.swing.text.html.HTMLDocument; @@ -59,6 +68,287 @@ { /** + * This class serves as the root view for HTML rendering components. + * Its purpose and implementation is similar to the BasicTextUI.RootView + * class, only that is implements some stuff differently due to the nature + * of not beeing inside a JTextComponent. + * + * @author Roman Kennke ([EMAIL PROTECTED]) + */ + private static class HTMLRootView extends View + { +/** + * The real root view. + */ +private View view; + +/** + * The component on which to render the view. + */ +private JComponent component; + +/** + * The EditorKit. + */ +private EditorKit editorKit; + +/** + * The document to use. + */ +private Document document; + +/** + * Creates a new RootView. + */ +public HTMLRootView(JComponent c, View view, EditorKit kit, Document doc) +{ + super(null); + component = c; + editorKit = kit; + document = doc; + setView(view); +} + +/** + * Returns the ViewFactory for this RootView. If the current EditorKit + * provides a ViewFactory, this is used. Otherwise the TextUI itself + * is returned as a ViewFactory. + * + * @return the ViewFactory for this RootView + */ +public ViewFactory getViewFactory() +{ + return editorKit.getViewFactory(); +} + +/** + * Indicates that the preferences of one of the child view has changed. + * This calls revalidate on the text component. + * + * @param v the child view which's preference has changed + * @param width codetrue/code if the width preference has changed + * @param height codetrue/code if the height preference has changed + */ +public void preferenceChanged(View v, boolean width, boolean height) +{ + component.revalidate(); +} + +/** + * Sets the real root view. + * + * @param v the root view to set + */ +public void setView(View v) +{ + if (view != null) +view.setParent(null); + + if (v != null) +v.setParent(this); + + view = v; +} + +/** + * Returns the real root view, regardless of the index. + * + * @param index not used here + * + * @return the real root view, regardless of the index. + */ +public View getView(int index) +{ + return view; +} + +/** + * Returns code1/code since the RootView always contains one + * child, that is the real root of the View hierarchy. + * + * @return code1/code since the RootView always contains one + * child, that is the real root of the View hierarchy + */ +public int getViewCount() +{ + int count = 0; + if (view != null) +count = 1; + return count; +} + +/** + * Returns the codeContainer/code that contains this view. This + * normally will be the text component that is managed by this TextUI. + * + * @return the codeContainer/code that contains this view + */ +public Container getContainer() +{ + return component; +} + +/** + * Returns the preferred span along the specified codeaxis/code. + * This is delegated to the real root view. + * + * @param axis the axis for which the preferred span is queried + * + * @return the preferred span along the axis + */ +public float getPreferredSpan(int axis) +{ + if (view != null) +return view.getPreferredSpan(axis); + + return Integer.MAX_VALUE; +} + +/** + * Paints the view. This is delegated to
[cp-patches] FYI: UnsupportedLookAndFeelException - added API docs
I added API docs for the UnsupportedLookAndFeelException class: 2006-03-03 David Gilbert [EMAIL PROTECTED] * javax/swing/UnsupportedLookAndFeelException.java (UnsupportedLookAndFeelException): Changed argument name, updated API docs. Regards, Dave Index: javax/swing/UnsupportedLookAndFeelException.java === RCS file: /sources/classpath/classpath/javax/swing/UnsupportedLookAndFeelException.java,v retrieving revision 1.5 diff -u -r1.5 UnsupportedLookAndFeelException.java --- javax/swing/UnsupportedLookAndFeelException.java13 Sep 2005 09:17:21 - 1.5 +++ javax/swing/UnsupportedLookAndFeelException.java3 Mar 2006 10:19:52 - @@ -1,5 +1,5 @@ /* UnsupportedLookAndFeelException.java -- - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -37,11 +37,21 @@ package javax.swing; - +/** + * Thrown by the [EMAIL PROTECTED] UIManager#setLookAndFeel(LookAndFeel)} method when the + * specified look and feel is not supported on the current platform. + * + * @see LookAndFeel#isSupportedLookAndFeel() + */ public class UnsupportedLookAndFeelException extends Exception { - public UnsupportedLookAndFeelException(String a) + /** + * Creates a new exception instance with the specified message. + * + * @param s the exception message. + */ + public UnsupportedLookAndFeelException(String s) { -super(a); +super(s); } }
[cp-patches] FYI: Basic PLAF fixes
Here comes some Basic LAF fixes, some of which I did on my way back from FOSDEM and which have been lying around here since then. This are mostly some optimizations to avoid unnecessary Rectangle creations. Also included here is some _very_ basic support for HTML on Labels, based on my previous work with HTML. The biggest problem remaining for now is the layout, the labels are still layouted as if all the HTML code was renderered, so it's much too wide. But you shouldn't see any html tags on labels any more. :-) 2006-03-03 Roman Kennke [EMAIL PROTECTED] * javax/swing/plaf/basic/BasicHTML.java (isHTMLString): Check for string beeing null. * javax/swing/plaf/basic/BasicInternalFrameUI.java (BasicInternalFrameListener.internalFrameActivated): Implemented. (BasicInternalFrameListener.internalFrameDeactivated): Implemented. (InternalFrameLayout): Don't touch the glass pane here. (installUI): Fix handling of glass pane. * javax/swing/plaf/basic/BasicLabelUI.java (vr): New field. (ir): New field. (tr): New field. (BasicLabelUI): Initialize new fields. (getPreferredSize): Avoid creating new Rectangles by using SwingUtilities method. (paint): Avoid creating new Rectangles by reusing new fields. Added some preliminary handling of HTML inside the label. (installComponents): Handle HTML by calling BasicHTML.updateRenderer. (uninstallComponents): Clear HTML renderer. (propertyChange): Check for HTML text and install renderer if appropriate. * javax/swing/plaf/basic/BasicListUI.java (getCellBounds): Avoid creating new Rectangle by using SwingUtilities method. * javax/swing/plaf/basic/BasicTextUI.java (RootView.getStartOffset): Implemented. (RootView.getEndOffset): Implemented. (RootView.getDocument): Implemented. /Roman Index: javax/swing/plaf/basic/BasicHTML.java === RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicHTML.java,v retrieving revision 1.3 diff -u -r1.3 BasicHTML.java --- javax/swing/plaf/basic/BasicHTML.java 3 Mar 2006 10:19:34 - 1.3 +++ javax/swing/plaf/basic/BasicHTML.java 3 Mar 2006 11:02:10 - @@ -423,7 +423,7 @@ { // We consider a string to be HTML if it contains both the '' and '' // character at least once. -return s.contains() s.contains(); +return (s != null) s.contains() s.contains(); } /** Index: javax/swing/plaf/basic/BasicInternalFrameUI.java === RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicInternalFrameUI.java,v retrieving revision 1.26 diff -u -r1.26 BasicInternalFrameUI.java --- javax/swing/plaf/basic/BasicInternalFrameUI.java 14 Feb 2006 22:44:53 - 1.26 +++ javax/swing/plaf/basic/BasicInternalFrameUI.java 3 Mar 2006 11:02:10 - @@ -92,7 +92,7 @@ */ public void internalFrameActivated(InternalFrameEvent e) { - // FIXME: Implement. + frame.getGlassPane().setVisible(false); } /** @@ -122,7 +122,7 @@ */ public void internalFrameDeactivated(InternalFrameEvent e) { - // FIXME: Implement. + frame.getGlassPane().setVisible(true); } /** @@ -462,8 +462,6 @@ dims.width -= insets.left + insets.right; dims.height -= insets.top + insets.bottom; - frame.getRootPane().getGlassPane().setBounds(0, 0, dims.width, - dims.height); int nh = 0; int sh = 0; int ew = 0; @@ -1128,14 +1126,15 @@ { frame = (JInternalFrame) c; -((JComponent) frame.getRootPane().getGlassPane()).setOpaque(false); -frame.getRootPane().getGlassPane().setVisible(true); - installDefaults(); installListeners(); installComponents(); installKeyboardActions(); +((JComponent) frame.getRootPane().getGlassPane()).setOpaque(false); +if (! frame.isSelected()) + frame.getRootPane().getGlassPane().setVisible(true); + frame.setOpaque(true); frame.invalidate(); } Index: javax/swing/plaf/basic/BasicLabelUI.java === RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicLabelUI.java,v retrieving revision 1.21 diff -u -r1.21 BasicLabelUI.java --- javax/swing/plaf/basic/BasicLabelUI.java 24 Nov 2005 20:31:32 - 1.21 +++ javax/swing/plaf/basic/BasicLabelUI.java 3 Mar 2006 11:02:10 - @@ -53,6 +53,7 @@ import javax.swing.SwingUtilities; import javax.swing.plaf.ComponentUI; import javax.swing.plaf.LabelUI; +import javax.swing.text.View; /** * This is the Basic Look and Feel class for the JLabel. One BasicLabelUI @@ -64,11 +65,22 @@ protected static
[cp-patches] FYI: MetalUtils vs. Graphics2D
I added a switch in MetalUtils which can turn off the use of Graphics2D methods, even if the supplied Graphics object is an instance of Graphics2D. The idea is that it should be possible to turn this off when the Graphics2D impl is there, but certain features a still not implemented. In such case you can set the property gnu.javax.swing.noGraphics2D to not use Java2D specific stuff. 2006-03-03 Roman Kennke [EMAIL PROTECTED] * javax/swing/plaf/metal/MetalUtils.java (fillMetalPattern): Added switch to not use Graphics2D methods, even if they are available. /Roman Index: javax/swing/plaf/metal/MetalUtils.java === RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/metal/MetalUtils.java,v retrieving revision 1.7 diff -u -r1.7 MetalUtils.java --- javax/swing/plaf/metal/MetalUtils.java 16 Nov 2005 14:36:13 - 1.7 +++ javax/swing/plaf/metal/MetalUtils.java 3 Mar 2006 11:10:55 - @@ -37,6 +37,8 @@ package javax.swing.plaf.metal; +import gnu.classpath.SystemProperties; + import java.awt.Color; import java.awt.Component; import java.awt.Graphics; @@ -88,7 +90,8 @@ static void fillMetalPattern(Component c, Graphics g, int x, int y, int w, int h, Color light, Color dark) { -if (g instanceof Graphics2D) +if (g instanceof Graphics2D + SystemProperties.getProperty(gnu.javax.swing.noGraphics2D) != null) fillMetalPattern2D((Graphics2D) g, x, y, w, h, light, dark); else {
[cp-patches] FYI: javax.swing.* API doc fixes
I committed this patch to add/fix some API docs in javax.swing: 2006-03-03 David Gilbert [EMAIL PROTECTED] * javax/swing/AbstractAction.java: Updated API docs all over, * javax/swing/AbstractCellRenderer.java: Minor reformatting, plus (stopCellEditing): Minor API doc correction, * javax/swing/UnsupportedLookAndFeelException.java (UnsupportedLookAndFeelException): Changed argument name, updated API docs. This patch includes the update to UnsupportedLookAndFeelException which I posted a short while ago without noticing that my CVS commit failed... Regards, Dave Index: javax/swing/AbstractAction.java === RCS file: /sources/classpath/classpath/javax/swing/AbstractAction.java,v retrieving revision 1.19 diff -u -r1.19 AbstractAction.java --- javax/swing/AbstractAction.java 18 Feb 2006 15:17:49 - 1.19 +++ javax/swing/AbstractAction.java 3 Mar 2006 11:12:34 - @@ -38,6 +38,7 @@ package javax.swing; +import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.IOException; import java.io.ObjectInputStream; @@ -82,8 +83,9 @@ } /** - * Creates a new action with the specified name. All other properties are - * initialised to codenull/code. + * Creates a new action with the specified name. The name is stored as a + * property with the key [EMAIL PROTECTED] Action#NAME}, and no other properties are + * initialised. * * @param name the name (codenull/code permitted). */ @@ -93,8 +95,10 @@ } /** - * Creates a new action with the specified name and icon. All other - * properties are initialised to codenull/code. + * Creates a new action with the specified name and icon. The name is stored + * as a property with the key [EMAIL PROTECTED] Action#NAME}, the icon is stored as a + * property with the key [EMAIL PROTECTED] Action#SMALL_ICON}, and no other properties + * are initialised. * * @param name the name (codenull/code permitted). * @param icon the icon (codenull/code permitted). @@ -132,11 +136,12 @@ } /** - * clone + * Returns a clone of the action. * - * @return Object + * @return A clone of the action. * - * @exception CloneNotSupportedException TODO + * @exception CloneNotSupportedException if there is a problem cloning the + *action. */ protected Object clone() throws CloneNotSupportedException { @@ -152,6 +157,8 @@ * * @return The value associated with the specified key, or * codenull/code if the key is not found. + * + * @see #putValue(String, Object) */ public Object getValue(String key) { @@ -161,11 +168,17 @@ /** * Sets the value associated with the specified key and sends a * [EMAIL PROTECTED] java.beans.PropertyChangeEvent} to all registered listeners. - * The standard keys are: [EMAIL PROTECTED] #NAME}, [EMAIL PROTECTED] #SHORT_DESCRIPTION}, - * [EMAIL PROTECTED] #LONG_DESCRIPTION}, [EMAIL PROTECTED] #SMALL_ICON}, - * [EMAIL PROTECTED] #ACTION_COMMAND_KEY}, [EMAIL PROTECTED] #ACCELERATOR_KEY} and - * [EMAIL PROTECTED] #MNEMONIC_KEY}. Any existing value associated with the key will be - * overwritten. + * The standard keys are: + * ul + * li[EMAIL PROTECTED] #NAME}/li + * li[EMAIL PROTECTED] #SHORT_DESCRIPTION}/li + * li[EMAIL PROTECTED] #LONG_DESCRIPTION}/li + * li[EMAIL PROTECTED] #SMALL_ICON}/li + * li[EMAIL PROTECTED] #ACTION_COMMAND_KEY}/li + * li[EMAIL PROTECTED] #ACCELERATOR_KEY}/li + * li[EMAIL PROTECTED] #MNEMONIC_KEY}/li + * /ul + * Any existing value associated with the key will be overwritten. * * @param key the key (not codenull/code). * @param value the value (codenull/code permitted). @@ -184,6 +197,8 @@ * Returns the flag that indicates whether or not the action is enabled. * * @return The flag. + * + * @see #setEnabled(boolean) */ public boolean isEnabled() { @@ -193,9 +208,12 @@ /** * Sets the flag that indicates whether or not the action is enabled and, if * the value of the flag changed from the previous setting, sends a - * [EMAIL PROTECTED] java.beans.PropertyChangeEvent} to all registered listeners. + * [EMAIL PROTECTED] java.beans.PropertyChangeEvent} to all registered listeners (using + * the property name 'enabled'). * * @param enabled the new flag value. + * + * @see #isEnabled() */ public void setEnabled(boolean enabled) { @@ -207,8 +225,11 @@ } /** - * getKeys - * @returns Object[] + * Returns an array of the keys for the property values that have been + * defined via the [EMAIL PROTECTED] #putValue(String, Object)} method (or the class + * constructor). + * + * @return An array of keys. */ public Object[] getKeys() { @@ -216,12 +237,12 @@ } /**
Re: [cp-patches] RFC: gnu.regexp.* rewritten
Hi Ito, On Thu, 2006-03-02 at 00:35 +0900, Ito Kazumitsu wrote: The imortant points of this change are: (1) A new method REToken#matchThis. This method tries to match the input string against the REToken itself and does not try to match the next RETokens chained to it. The currently used REToken#match method should be defined using REToken#matchThis. This is useful for (3). (2) A new method REToken#findMatch. This is almost the same as the current REToken#match but returns a resulting REMatch instead of a boolean value. This is useful for the depth-first search with backtracking. (3) New methods REToken#returnsFixedLengthMatches and REToken#findFixedLengthMatches. These will fasten the search for repeated matches if the matched string is supposed to have a fixed length. (4) RETokenOneOf and RETokenRepeated perform a depth-first search with backtracking. After this change, the test attached below shows 400% improved performance compared with the current CVS version. The improved performance comes mainly from the change (3). To my regret, The change (4) had a negative effect on performance. Impressive performance improvement! Interesting that (4) didn't give us a big win. I would have guessed that was one of the main issues. ChangeLog 2006-03-01 Ito Kazumitsu [EMAIL PROTECTED] * gnu/regexp/BacktrackStack.java: New file. * gnu/regexp/RE.java(findMatch): New method. * gnu/regexp/REMatch.java(next,matchFlags,MF_FIND_ALL, REMatchList): Removed. (backtrackStack): New field. * gnu/regexp/REToken.java(match): Changed from an abstract method to an ordinary method defined with the new method matchThis. (matchThis, getNext, findMatch, returnsFixedLengthMatches, findFixedLengthMatches, backtrack, toString): New methods. * gnu/regexp/RETokenAny.java: Inplemented new methods of REToken. * gnu/regexp/RETokenBackRef.java: Likewise. * gnu/regexp/RETokenChar.java: Likewise. * gnu/regexp/RETokenEnd.java: Likewise. * gnu/regexp/RETokenEndSub.java: Likewise. * gnu/regexp/RETokenIndependent.java: Likewise. * gnu/regexp/RETokenLookAhead.java: Likewise. * gnu/regexp/RETokenLookBehind.java: Likewise. * gnu/regexp/RETokenNamedProperty.java: Likewise. * gnu/regexp/RETokenPOSIX.java: Likewise. * gnu/regexp/RETokenRange.java: Likewise. * gnu/regexp/RETokenStart.java: Likewise. * gnu/regexp/RETokenWordBoundary.java: Likewise * gnu/regexp/RETokenOneOf.java: Rewriten. * gnu/regexp/RETokenRepeated.java: Rewriten. You attached a patch for: --- gnu/java/nio/charset/iconv/IconvProvider.java.origSat Jul 16 00:12:48 2005 +++ gnu/java/nio/charset/iconv/IconvProvider.java Thu Oct 20 23:41:57 2005 Could you sent the patch for the above ChangeLog entry? Cheers, Mark signature.asc Description: This is a digitally signed message part
[cp-patches] FYI: NEWS entry for Swing
I added a paragraph about Swing to the NEWS file. I have copied in the JTable entry, I hope this is ok for you, Audrius? 2006-03-03 Roman Kennke [EMAIL PROTECTED] * NEWS: Added paragraph about Swing improvements. /Roman Index: NEWS === RCS file: /cvsroot/classpath/classpath/NEWS,v retrieving revision 1.117 diff -u -r1.117 NEWS --- NEWS 1 Mar 2006 20:07:34 - 1.117 +++ NEWS 3 Mar 2006 11:17:33 - @@ -1,5 +1,14 @@ New in release 0.21 (to be released) +* Swing improvements: JTable columns are rearrangeable and resizeable with + mouse. Painting and scrolling are now much faster. + Support for styled text has been improved, including some very basic HTML + support. JFileChooser is now usable. Global event dispatching has been + implemented. Memory consumption of Swing components has been reduced. + Lots of general bugfixes. + Added new system property to turn of Graphics2D use in Swing, even + if Graphics2D is available: -Dgnu.javax.swing.noGraphics2D . + * GNU Crypto and Jessie have been merged into Classpath; this will provide Classpath with a wide array of cryptographic algorithms (ciphers, message digests, etc.) and implementations of SSL version @@ -15,8 +24,6 @@ * RELAX NG pluggable XML schema datatype library API and an implementation for XML Schema Datatypes (http://www.w3.org/TR/xmlschema-2/). -* JTable columns are rearrangeable and resizeable with mouse. - * Added experimental support for dynamic creation of the RMI stubs using proxy classes. The rmic compiler is no longer required (unless for research and specific stubs).
[cp-patches] FYI: AbstractListModel - API docs
I committed this patch to fix a couple of minor API doc problems: 006-03-03 David Gilbert [EMAIL PROTECTED] * javax/swing/AbstractListModel.java: (AbstractListModel): Added API docs, (fireContentsChanged): Minor API doc correction, (fireIntervalAdded): Likewise, (fireIntervalRemoved): Likewise. Regards, Dave Index: javax/swing/AbstractListModel.java === RCS file: /sources/classpath/classpath/javax/swing/AbstractListModel.java,v retrieving revision 1.13 diff -u -r1.13 AbstractListModel.java --- javax/swing/AbstractListModel.java 26 Jul 2005 15:30:54 - 1.13 +++ javax/swing/AbstractListModel.java 3 Mar 2006 11:31:13 - @@ -1,5 +1,5 @@ /* AbstractListModel.java -- - Copyright (C) 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -58,6 +58,9 @@ /** List of ListDataListeners called for each change to the list. */ protected EventListenerList listenerList; + /** + * Creates a new model instance - initialises the event listener list. + */ public AbstractListModel() { listenerList = new EventListenerList(); @@ -88,7 +91,7 @@ /** * Call [EMAIL PROTECTED] ListDataListener#contentsChanged} on each element of the * [EMAIL PROTECTED] #listenerList} which is a [EMAIL PROTECTED] ListDataListener}. The event - * fired has type [EMAIL PROTECTED] and represents a + * fired has type [EMAIL PROTECTED] ListDataEvent#CONTENTS_CHANGED} and represents a * change to the data elements in the range [startIndex, endIndex] * inclusive. * @@ -110,7 +113,7 @@ /** * Call [EMAIL PROTECTED] ListDataListener#intervalAdded} on each element of the * [EMAIL PROTECTED] #listenerList} which is a [EMAIL PROTECTED] ListDataListener}. The event - * fired has type [EMAIL PROTECTED] and represents an + * fired has type [EMAIL PROTECTED] ListDataEvent#INTERVAL_ADDED} and represents an * addition of the data elements in the range [startIndex, endIndex] * inclusive. * @@ -132,7 +135,7 @@ /** * Call [EMAIL PROTECTED] ListDataListener#intervalRemoved} on each element of the * [EMAIL PROTECTED] #listenerList} which is a [EMAIL PROTECTED] ListDataListener}. The event - * fired has type [EMAIL PROTECTED] and represents a + * fired has type [EMAIL PROTECTED] ListDataEvent#INTERVAL_REMOVED} and represents a * removal of the data elements in the range [startIndex, endIndex] * inclusive. *
[cp-patches] FYI: CellEditor/DefaultCellEditor API doc updates
I committed this patch to fix some API doc warnings: 2006-03-03 David Gilbert [EMAIL PROTECTED] * javax/swing/CellEditor.java: API doc updates, * javax/swing/DefaultCellEditor.java: Likewise. Regards, Dave Index: javax/swing/CellEditor.java === RCS file: /sources/classpath/classpath/javax/swing/CellEditor.java,v retrieving revision 1.10 diff -u -r1.10 CellEditor.java --- javax/swing/CellEditor.java 19 Oct 2005 15:45:03 - 1.10 +++ javax/swing/CellEditor.java 3 Mar 2006 12:04:38 - @@ -1,5 +1,5 @@ /* CellEditor.java -- - Copyright (C) 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,7 @@ import java.util.EventObject; import javax.swing.event.CellEditorListener; +import javax.swing.event.ChangeEvent; /** * Provides edit capabilities for components that display cells like @@ -51,46 +52,57 @@ public interface CellEditor { /** - * getCellEditorValue - * @returns Object + * Returns the current value for the codeCellEditor/code. + * + * @return The value. */ Object getCellEditorValue(); /** - * isCellEditable - * @param event TODO - * @returns boolean + * Returns codetrue/code if the specified event makes the editor + * editable, and codefalse/code otherwise. + * + * @param event the event. + * + * @return A boolean. */ boolean isCellEditable(EventObject event); /** * shouldSelectCell * @param event TODO - * @returns boolean + * @return boolean */ boolean shouldSelectCell(EventObject event); /** - * stopCellEditing - * @returns boolean + * Signals to the codeCellEditor/code that it should stop editing, + * accepting the current cell value, and returns codetrue/code if the + * editor actually stops editing, and codefalse/code otherwise. + * + * @return A boolean. */ boolean stopCellEditing(); /** - * cancelCellEditing + * Signals to the codeCellEditor/code that it should cancel editing. */ void cancelCellEditing(); /** - * addCellEditorListener - * @param listener TODO + * Registers a listener to receive [EMAIL PROTECTED] ChangeEvent} notifications from the + * codeCellEditor/code. + * + * @param listener the listener. */ void addCellEditorListener(CellEditorListener listener); /** - * removeCellEditorListener - * @param listener TODO + * Deregisters a listener so that it no longer receives [EMAIL PROTECTED] ChangeEvent} + * notifications from the codeCellEditor/code. + * + * @param listener the listener. */ void removeCellEditorListener(CellEditorListener listener); -} // CellEditor +} Index: javax/swing/DefaultCellEditor.java === RCS file: /sources/classpath/classpath/javax/swing/DefaultCellEditor.java,v retrieving revision 1.21 diff -u -r1.21 DefaultCellEditor.java --- javax/swing/DefaultCellEditor.java 14 Feb 2006 22:25:35 - 1.21 +++ javax/swing/DefaultCellEditor.java 3 Mar 2006 12:04:39 - @@ -1,5 +1,5 @@ /* DefaultCellEditor.java -- - Copyright (C) 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -129,7 +129,7 @@ * * @param event the event to check * - * @returns true if the passed event is the mouse event and false otherwise + * @return true if the passed event is the mouse event and false otherwise. */ public boolean isCellEditable(EventObject event) { @@ -147,7 +147,7 @@ * * @param event unused in default method * - * @returns true always + * @return true always */ public boolean shouldSelectCell(EventObject event) { @@ -160,7 +160,7 @@ * cell editor listeners (including the table) that the editing has been * stopped. * - * @returns boolean + * @return boolean */ public boolean stopCellEditing() { @@ -185,7 +185,9 @@ * The default method returns true without action but may be overridden * in derived classes for more specific behavior. * - * @returns true, always + * @param event the event. + * + * @return true, always */ public boolean startCellEditing(EventObject event) { @@ -417,7 +419,7 @@ * Get the component that performs the editing sessions. It is the same * component that was passed in constructor. * - * @returns the component, performing the editing sessions. + * @return the component, performing the editing sessions. */ public Component getComponent() { @@ -427,7 +429,7 @@ /** * Get the number of mouse clicks, required to start the editing session. * - * @returns int the number of mouse
[cp-patches] FYI: javax.swing.* API doc updates
This patch (committed) updates/fixes a few API doc comments in javax.swing.*: 2006-03-03 David Gilbert [EMAIL PROTECTED] * javax/swing/CellRendererPane.java: Minor API doc fix, * javax/swing/ComboBoxModel.java: Updated API docs. Regards, Dave Index: javax/swing/CellRendererPane.java === RCS file: /sources/classpath/classpath/javax/swing/CellRendererPane.java,v retrieving revision 1.13 diff -u -r1.13 CellRendererPane.java --- javax/swing/CellRendererPane.java 7 Feb 2006 15:44:35 - 1.13 +++ javax/swing/CellRendererPane.java 3 Mar 2006 13:16:33 - @@ -1,5 +1,5 @@ /* CellRendererPane.java -- - Copyright (C) 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -75,7 +75,7 @@ /** * getAccessibleRole - * @returns AccessibleRole + * @return AccessibleRole */ public AccessibleRole getAccessibleRole() { Index: javax/swing/ComboBoxModel.java === RCS file: /sources/classpath/classpath/javax/swing/ComboBoxModel.java,v retrieving revision 1.5 diff -u -r1.5 ComboBoxModel.java --- javax/swing/ComboBoxModel.java 13 Jul 2005 21:22:44 - 1.5 +++ javax/swing/ComboBoxModel.java 3 Mar 2006 13:16:33 - @@ -1,5 +1,5 @@ /* ComboBoxModel.java -- - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -37,31 +37,33 @@ package javax.swing; +import javax.swing.event.ListDataEvent; +import javax.swing.event.ListDataListener; /** - * The data model for [EMAIL PROTECTED] JComboBox}. This model keeps - * track of elements contained in the JComboBox as well as the current - * combo box selection. Whenever selection in the JComboBox changes, the - * ComboBoxModel should fire ListDataEvents to ComboBox's ListDataListeners. + * The data model for a [EMAIL PROTECTED] JComboBox}. This model keeps track of elements + * contained in the codeJComboBox/code as well as the current + * combo box selection. Whenever the selection in the codeJComboBox/code + * changes, the codeComboBoxModel/code should fire a [EMAIL PROTECTED] ListDataEvent} + * to the model's [EMAIL PROTECTED] ListDataListener}s. * * @author Andrew Selkirk */ public interface ComboBoxModel extends ListModel { /** - * This method sets the selected item in the combo box. Class - * implementing this interface should fire ListDataEvents to - * all registered ListDataListeners to indicated that the - * selection has changed. + * Sets the selected item in the combo box. Classes implementing this + * interface should fire a [EMAIL PROTECTED] ListDataEvent} to all registered + * [EMAIL PROTECTED] ListDataListener}s to indicate that the selection has changed. * - * @param item item in the combo box that should be selected + * @param item the selected item (codenull/code permitted). */ void setSelectedItem(Object item); /** - * The method returns currently selected item in the combo box + * Returns the currently selected item in the combo box. * - * @returns item that is currently selected in the combo box. + * @return The selected item (possibly codenull/code). */ Object getSelectedItem(); -} // ComboBoxModel +}
[cp-patches] FYI: javax.swing.text.* package description
I added a description to the package.html file for javax.swing.text.*: 2006-03-03 David Gilbert [EMAIL PROTECTED] * javax/swing/text/package.html: Added package description. Regards, Dave Index: javax/swing/text/package.html === RCS file: /sources/classpath/classpath/javax/swing/text/package.html,v retrieving revision 1.2 diff -u -r1.2 package.html --- javax/swing/text/package.html 2 Jul 2005 20:32:51 - 1.2 +++ javax/swing/text/package.html 3 Mar 2006 13:56:28 - @@ -40,7 +40,7 @@ headtitleGNU Classpath - javax.swing.text/title/head body -p/p - +pProvides core text classes and interfaces representing models and views +used by the text components for display and editing of text./p /body /html
[cp-patches] FYI: NEWS update
I forgot to mention Roberts highlighting work in NEWS. This is now also added. 2006-03-03 Roman Kennke [EMAIL PROTECTED] * NEWS: Added comment about text highlighting and copy+paste in Swing. /Roman Index: NEWS === RCS file: /cvsroot/classpath/classpath/NEWS,v retrieving revision 1.118 diff -u -r1.118 NEWS --- NEWS 3 Mar 2006 11:26:15 - 1.118 +++ NEWS 3 Mar 2006 15:20:45 - @@ -1,7 +1,8 @@ New in release 0.21 (to be released) * Swing improvements: JTable columns are rearrangeable and resizeable with - mouse. Painting and scrolling are now much faster. + mouse. Painting and scrolling are now much faster. Plain text components + now support highlighting and copy+paste to the system clipboard. Support for styled text has been improved, including some very basic HTML support. JFileChooser is now usable. Global event dispatching has been implemented. Memory consumption of Swing components has been reduced.
Re: [cp-patches] RFC: gnu.regexp.* rewritten
Hi, From: Mark Wielaard [EMAIL PROTECTED] Date: Fri, 03 Mar 2006 12:20:18 +0100 On Thu, 2006-03-02 at 00:35 +0900, Ito Kazumitsu wrote: (3) New methods REToken#returnsFixedLengthMatches and REToken#findFixedLengthMatches. These will fasten the search for repeated matches if the matched string is supposed to have a fixed length. (4) RETokenOneOf and RETokenRepeated perform a depth-first search with backtracking. After this change, the test attached below shows 400% improved performance compared with the current CVS version. The improved performance comes mainly from the change (3). To my regret, The change (4) had a negative effect on performance. Impressive performance improvement! Interesting that (4) didn't give us a big win. I would have guessed that was one of the main issues. I am afraid the management of the stack for backtracking costs too much. I will continue to try to reduce the overhead of backtracking. But the change (3) came into effect owing to the change (4). So even if (4) costs too much, that may be inevitable. You attached a patch for: --- gnu/java/nio/charset/iconv/IconvProvider.java.orig Sat Jul 16 00:12:48 2005 +++ gnu/java/nio/charset/iconv/IconvProvider.java Thu Oct 20 23:41:57 2005 Could you sent the patch for the above ChangeLog entry? Sorry. I made a mistake. Attached is the correct patch. Index: classpath/gnu/regexp/BacktrackStack.java === RCS file: classpath/gnu/regexp/BacktrackStack.java diff -N classpath/gnu/regexp/BacktrackStack.java --- /dev/null 1 Jan 1970 00:00:00 - +++ classpath/gnu/regexp/BacktrackStack.java1 Mar 2006 15:19:04 - @@ -0,0 +1,112 @@ +/* gnu/regexp/BacktrackStack.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.regexp; + +/** + * An instance of this class represents a stack + * used for backtracking. + * + * @author Ito Kazumitsu/A + */ +final class BacktrackStack { + +/** A set of data to be used for backtracking. */ +static class Backtrack { +/** REToken to which to go back */ +REToken token; + /** CharIndexed on which matches are being searched for. */ + CharIndexed input; + /** REMatch to be used by the REToken token. */ + REMatch match; + /** Some parameter used by the token's backtrack method. */ + Object param; +Backtrack(REToken token, CharIndexed input, REMatch match, Object param) { + this.token = token; + this.input = input; + // REMatch may change before backtracking is needed. So we + // keep a clone of it. + this.match = (REMatch) match.clone(); + this.param = param; + } +} + +Backtrack[] stack; +private int size; +private int capacity; +private static final int INITIAL_CAPACITY = 32; +private static final int CAPACITY_INCREMENT = 16; + +BacktrackStack() { +stack = new Backtrack[INITIAL_CAPACITY]; + size = 0; + capacity = INITIAL_CAPACITY; +} + +boolean empty() { + return size == 0; +} + +Backtrack peek() { + return stack[size - 1]; +} + +Backtrack pop() { + Backtrack bt
Re: [cp-patches] RFC/RFT: HTTP header handling rewrite.
Chris Burdess wrote: Wolfgang Baer wrote: In general you are right. However SUN clearly uses the key name in the Map returned by getHeaderFields() as it is and not lowercased. And there is nothing in the javadoc which would make a programmer assume that he must query with a lowercased name. So if programs use the getHeaderFields() returned Map not only by iteration their code will break. The solution would appear to be not to use a LinkedHashMap but some new class, similar to gnu.inet.http.Headers, that implements Map but does case-insensitive lookups on the keys (returning the header names in their original case in keySet() etc). In order for the map to be at all useful, I would have to agree. However if we mimic Sun's brilliant implementation (as shown by Wolfgang's testing), we can (and must) just do it the easy way. David Daney.
Re: [cp-patches] FYI:Formatting (autoformatting) and commenting the RMI distribute garbage collector classes.
Hi Audrius, On Fri, 2006-03-03 at 16:50 +0100, Audrius Meskauskas wrote: These classes are undocumented in our project. Before working with the code I wrote some comments and applied Eclipse formatter. Thanks, but we need to teach the eclipse formatter to not indent the boilerplate: --- gnu/java/rmi/dgc/DGCImpl.java 2 Jul 2005 20:32:14 - 1.7 +++ gnu/java/rmi/dgc/DGCImpl.java 3 Mar 2006 15:45:38 - @@ -1,40 +1,41 @@ /* DGCImpl.java -- - Copyright (c) 1996, 1997, 1998, 1999, 2002, 2005 - Free Software Foundation, Inc. + Copyright (c) 1996, 1997, 1998, 1999, 2002, 2005 + Free Software Foundation, Inc. -This file is part of GNU Classpath. + This file is part of GNU Classpath. Could you revert that part? Thanks, Mark signature.asc Description: This is a digitally signed message part
[cp-patches] FYI: SpringLayout - fix API doc warnings
I fixed a couple of API doc warnings for this class: 2006-03-03 David Gilbert [EMAIL PROTECTED] * javax/swing/SpringLayout.java: Fixed API doc warnings. Regards, Dave Index: javax/swing/SpringLayout.java === RCS file: /sources/classpath/classpath/javax/swing/SpringLayout.java,v retrieving revision 1.6 diff -u -r1.6 SpringLayout.java --- javax/swing/SpringLayout.java 7 Sep 2005 20:33:27 - 1.6 +++ javax/swing/SpringLayout.java 3 Mar 2006 17:11:23 - @@ -1,5 +1,5 @@ /* SpringLayout.java -- - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -343,8 +343,8 @@ /** * Adds a layout component and a constraint object to this layout. - * This method is usually only called by a [EMAIL PROTECTED] add - * Method. + * This method is usually only called by a [EMAIL PROTECTED] java.awt.Container}s add + * method. * * @param component the component to be added. * @param constraint the constraint to be set. @@ -357,8 +357,8 @@ /** * Adds a layout component and a constraint object to this layout. - * This method is usually only called by a [EMAIL PROTECTED] add - * Method. This method does nothing, since SpringLayout does not manage + * This method is usually only called by a [EMAIL PROTECTED] java.awt.Container}s add + * method. This method does nothing, since SpringLayout does not manage * String-indexed components. * * @param name the name.
Re: [cp-patches] Patch: RFC: generate collections.jar
Hi, On Fri, 2006-03-03 at 10:20 +0100, Mark Wielaard wrote: Nice. I am actually surprised the mkcollections.pl script still works with so little modification since it hasn't been used much in the past. Yes, I did the minimum changes required for the script to run. I didn't carefully compare Sun's collections.jar class list to ours but MegaMek's needs are satisfied so I consider the script OK for now. Please commit. Could you add a little thing to the NEWS file about this new --enable-collections configure option? Done. Patch committed. Tom
[cp-patches] FYI: FlowView fixlet
Here comes a fixlet for FlowView which adds a check for a bordercase. 2006-03-03 Roman Kennke [EMAIL PROTECTED] * javax/swing/text/FlowView.java (FlowStrategy.layoutRow): Added check for rowCount == 0. (FlowStrategy.getLogicalView): Made method protected. /Roman Index: javax/swing/text/FlowView.java === RCS file: /cvsroot/classpath/classpath/javax/swing/text/FlowView.java,v retrieving revision 1.9 diff -u -r1.9 FlowView.java --- javax/swing/text/FlowView.java 21 Feb 2006 13:56:15 - 1.9 +++ javax/swing/text/FlowView.java 3 Mar 2006 19:37:52 - @@ -127,7 +127,7 @@ * * @return the logical view of the managed codeFlowView/code */ -public View getLogicalView(FlowView fv) +protected View getLogicalView(FlowView fv) { return fv.layoutPool; } @@ -210,7 +210,10 @@ int flowSpan = fv.getFlowSpan(axis); adjustRow(fv, rowIndex, flowSpan, flowStart); int rowViewCount = row.getViewCount(); - offset = row.getView(rowViewCount - 1).getEndOffset(); + if (rowViewCount 0) +offset = row.getView(rowViewCount - 1).getEndOffset(); + else +offset = -1; } return offset != pos ? offset : -1; }
[cp-patches] FYI: Toolkit fixlet
This adds a default implementation for Toolkit.getScreenInsets(). This enables newer versions of the SwingSet2 demo to start up. Try the JDK1.4 version for example. 2006-03-03 Roman Kennke [EMAIL PROTECTED] * java/awt/Toolkit.java (getScreenInsets): Return (0,0,0,0) here. /Roman Index: java/awt/Toolkit.java === RCS file: /cvsroot/classpath/classpath/java/awt/Toolkit.java,v retrieving revision 1.34 diff -u -r1.34 Toolkit.java --- java/awt/Toolkit.java 28 Feb 2006 11:27:15 - 1.34 +++ java/awt/Toolkit.java 3 Mar 2006 19:47:51 - @@ -473,7 +473,7 @@ */ public Insets getScreenInsets(GraphicsConfiguration gc) { -return null; +return new Insets(0, 0, 0, 0); } /**
[cp-patches] [generics] Patch: FYI: genericize java.beans
I'm checking this in on the generics branch. I've had this patch for a while but forgot to check it in. This genericizes some things in java.beans. Tom 2006-03-03 Tom Tromey [EMAIL PROTECTED] * java/beans/EventSetDescriptor.java (EventSetDescriptor): Genericized. (getListenerType): Likewise. * java/beans/Introspector.java (getBeanInfo): Genericized. * java/beans/DefaultPersistenceDelegate.java (initialize): Genericized. Index: DefaultPersistenceDelegate.java === RCS file: /cvsroot/classpath/classpath/java/beans/DefaultPersistenceDelegate.java,v retrieving revision 1.1.2.2 diff -u -r1.1.2.2 DefaultPersistenceDelegate.java --- DefaultPersistenceDelegate.java 2 Mar 2006 09:33:56 - 1.1.2.2 +++ DefaultPersistenceDelegate.java 3 Mar 2006 20:48:50 - @@ -154,8 +154,8 @@ return new Expression(oldInstance, oldInstance.getClass(), new, args); } - protected void initialize(Class type, Object oldInstance, Object newInstance, -Encoder out) + protected void initialize(Class? type, Object oldInstance, +Object newInstance, Encoder out) { // Calling the supertype's implementation of initialize makes it // possible that descendants of classes like AbstractHashMap Index: EventSetDescriptor.java === RCS file: /cvsroot/classpath/classpath/java/beans/EventSetDescriptor.java,v retrieving revision 1.6.2.5 diff -u -r1.6.2.5 EventSetDescriptor.java --- EventSetDescriptor.java 2 Mar 2006 09:33:56 - 1.6.2.5 +++ EventSetDescriptor.java 3 Mar 2006 20:48:51 - @@ -164,8 +164,8 @@ * 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) + public EventSetDescriptor(Class? eventSourceClass, String eventSetName, +Class? listenerType, String listenerMethodName) throws IntrospectionException { setName(eventSetName); @@ -225,8 +225,8 @@ * 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, + public EventSetDescriptor(Class? eventSourceClass, String eventSetName, +Class? listenerType, String[] listenerMethodNames, String addListenerMethodName, String removeListenerMethodName) throws IntrospectionException @@ -287,8 +287,8 @@ * found or are invalid. * @since 1.4 */ - public EventSetDescriptor(Class eventSourceClass, String eventSetName, -Class listenerType, String[] listenerMethodNames, + public EventSetDescriptor(Class? eventSourceClass, String eventSetName, +Class? listenerType, String[] listenerMethodNames, String addListenerMethodName, String removeListenerMethodName, String getListenerMethodName) @@ -357,7 +357,7 @@ * methods are invalid. * @since 1.4 */ - public EventSetDescriptor(String eventSetName, Class listenerType, + public EventSetDescriptor(String eventSetName, Class? listenerType, Method[] listenerMethods, Method addListenerMethod, Method removeListenerMethod, Method getListenerMethod) @@ -402,7 +402,7 @@ * if the listenerType is not an EventListener, or any of the * methods are invalid. */ - public EventSetDescriptor(String eventSetName, Class listenerType, + public EventSetDescriptor(String eventSetName, Class? listenerType, Method[] listenerMethods, Method addListenerMethod, Method removeListenerMethod) throws IntrospectionException @@ -449,7 +449,7 @@ * if the listenerType is not an EventListener, or any of the * methods are invalid. */ - public EventSetDescriptor(String eventSetName, Class listenerType, + public EventSetDescriptor(String eventSetName, Class? listenerType, MethodDescriptor[] listenerMethodDescriptors, Method addListenerMethod, Method removeListenerMethod) @@ -484,7 +484,7 @@ /** Returns the class that contains the event firing methods. */ - public Class getListenerType() + public Class? getListenerType() {
[cp-patches] [generics] Patch: FYI: genericize in AWT
I'm checking this in on the generics branch. This genericizes a method in AWT. Tom 2006-03-03 Tom Tromey [EMAIL PROTECTED] * java/awt/MenuBar.java (shortcuts): Genericized. Index: java/awt/MenuBar.java === RCS file: /cvsroot/classpath/classpath/java/awt/MenuBar.java,v retrieving revision 1.10.2.7 diff -u -r1.10.2.7 MenuBar.java --- java/awt/MenuBar.java 2 Mar 2006 09:33:55 - 1.10.2.7 +++ java/awt/MenuBar.java 3 Mar 2006 22:03:09 - @@ -267,7 +267,7 @@ * * @return a list of all shortcuts for the menus in this menu bar */ - public synchronized Enumeration shortcuts() + public synchronized EnumerationMenuShortcut shortcuts() { Vector shortcuts = new Vector(); Enumeration e = menus.elements();
[cp-patches] FYI: TableModelListener API docs
I added some API docs to this interface: 2006-03-03 David Gilbert [EMAIL PROTECTED] * javax/swing/event/TableModelListener.java: Updated API docs. Regards, Dave Index: javax/swing/event/TableModelListener.java === RCS file: /sources/classpath/classpath/javax/swing/event/TableModelListener.java,v retrieving revision 1.3 diff -u -r1.3 TableModelListener.java --- javax/swing/event/TableModelListener.java 2 Jul 2005 20:32:50 - 1.3 +++ javax/swing/event/TableModelListener.java 3 Mar 2006 22:27:12 - @@ -1,5 +1,5 @@ /* TableModelListener.java -- - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -40,16 +40,21 @@ import java.util.EventListener; /** - * TableModelListener public interface + * A codeTableModelListener/code can register with a + * [EMAIL PROTECTED] javax.swing.table.TableModel} and receive notification of updates to + * the model. + * * @author Andrew Selkirk */ -public interface TableModelListener extends EventListener { +public interface TableModelListener extends EventListener +{ - /** -* Table changed -* @param event Table Model Event -*/ - void tableChanged(TableModelEvent event); + /** + * Called to notify the listener that the + * [EMAIL PROTECTED] javax.swing.table.TableModel} has been updated. + * + * @param event contains details of the update. + */ + void tableChanged(TableModelEvent event); - -} // TableModelListener +}
[cp-patches] FYI: TableColumnModelEvent - reformatted
I committed this patch: 2006-03-03 David Gilbert [EMAIL PROTECTED] * javax/swing/event/TableColumnModelEvent.java: Reformatted. Regards, Dave Index: javax/swing/event/TableColumnModelEvent.java === RCS file: /sources/classpath/classpath/javax/swing/event/TableColumnModelEvent.java,v retrieving revision 1.3 diff -u -r1.3 TableColumnModelEvent.java --- javax/swing/event/TableColumnModelEvent.java2 Jul 2005 20:32:50 - 1.3 +++ javax/swing/event/TableColumnModelEvent.java3 Mar 2006 22:44:33 - @@ -1,5 +1,5 @@ /* TableColumnModelEvent.java -- - Copyright (C) 2002, 2004 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,60 +46,48 @@ * TableColumnModelEvent * @author Andrew Selkirk */ -public class TableColumnModelEvent extends EventObject { +public class TableColumnModelEvent extends EventObject +{ - //- - // Variables -- - //- - - /** -* fromIndex -*/ - protected int fromIndex = 0; - - /** -* toIndex -*/ - protected int toIndex = 0; - - - //- - // Initialization - - //- - - /** -* Constructor TableColumnModelEvent -* @param source Source TableColumnModel -* @param from From index -* @param to To index -*/ - public TableColumnModelEvent(TableColumnModel source, - int from, int to) { - super(source); - fromIndex = from; - toIndex = to; - } // TableColumnModelEvent() - - - //- - // Methods - //- - - /** -* getFromIndex. -* @returns From index -*/ - public int getFromIndex() { - return fromIndex; - } // getFromIndex() - - /** -* getToIndex. -* @returns To index -*/ - public int getToIndex() { - return toIndex; - } // getToIndex() + /** + * fromIndex + */ + protected int fromIndex = 0; + + /** + * toIndex + */ + protected int toIndex = 0; + + /** + * Constructor TableColumnModelEvent + * @param source Source TableColumnModel + * @param from From index + * @param to To index + */ + public TableColumnModelEvent(TableColumnModel source, int from, int to) + { +super(source); +fromIndex = from; +toIndex = to; + } + + /** + * getFromIndex. + * @returns From index + */ + public int getFromIndex() + { +return fromIndex; + } + + /** + * getToIndex. + * @returns To index + */ + public int getToIndex() + { +return toIndex; + } - -} // TableColumnModelEvent +} \ No newline at end of file
[cp-patches] Patch: FYI: javax.naming warnings
I'm checking this in. This fixes a bunch of javax.naming warnings. One is a javadoc buglet, the rest are missing serialVersionUIDs. Tom 2006-03-03 Tom Tromey [EMAIL PROTECTED] * javax/naming/NamingException.java (getExplanation): Javadoc fix. * javax/naming/spi/ResolveResult.java, javax/naming/event/NamingExceptionEvent.java, javax/naming/event/NamingEvent.java, javax/naming/directory/SearchResult.java, javax/naming/directory/SearchControls.java, javax/naming/directory/SchemaViolationException.java, javax/naming/directory/NoSuchAttributeException.java, javax/naming/directory/ModificationItem.java, javax/naming/directory/InvalidSearchFilterException.java, javax/naming/directory/InvalidSearchControlsException.java, javax/naming/directory/InvalidAttributesException.java, javax/naming/directory/InvalidAttributeIdentifierException.java, javax/naming/directory/AttributeModificationException.java, javax/naming/directory/AttributeInUseException.java, javax/naming/TimeLimitExceededException.java, javax/naming/SizeLimitExceededException.java, javax/naming/PartialResultException.java, javax/naming/Reference.java, javax/naming/ServiceUnavailableException.java, javax/naming/OperationNotSupportedException.java, javax/naming/NotContextException.java, javax/naming/NoPermissionException.java, javax/naming/NoInitialContextException.java, javax/naming/NameNotFoundException.java, javax/naming/NameAlreadyBoundException.java, javax/naming/NameClassPair.java, javax/naming/MalformedLinkException.java, javax/naming/LinkLoopException.java, javax/naming/LinkException.java, javax/naming/LimitExceededException.java, javax/naming/InvalidNameException.java, javax/naming/InterruptedNamingException.java, javax/naming/InsufficientResourcesException.java, javax/naming/ContextNotEmptyException.java, javax/naming/ConfigurationException.java, javax/naming/CannotProceedException.java, javax/naming/CommunicationException.java, javax/naming/Binding.java, javax/naming/AuthenticationNotSupportedException.java, javax/naming/AuthenticationException.java: Added serialVersionUID. Index: javax/naming/AuthenticationException.java === RCS file: /cvsroot/classpath/classpath/javax/naming/AuthenticationException.java,v retrieving revision 1.3 diff -u -r1.3 AuthenticationException.java --- javax/naming/AuthenticationException.java 2 Jul 2005 20:32:45 - 1.3 +++ javax/naming/AuthenticationException.java 3 Mar 2006 22:46:16 - @@ -1,5 +1,5 @@ /* AuthenticationException.java -- - Copyright (C) 2000, 2004 Free Software Foundation, Inc. + Copyright (C) 2000, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -41,6 +41,8 @@ public class AuthenticationException extends NamingSecurityException { + private static final long serialVersionUID = 3678497619904568096L; + public AuthenticationException () { super (); Index: javax/naming/AuthenticationNotSupportedException.java === RCS file: /cvsroot/classpath/classpath/javax/naming/AuthenticationNotSupportedException.java,v retrieving revision 1.3 diff -u -r1.3 AuthenticationNotSupportedException.java --- javax/naming/AuthenticationNotSupportedException.java 2 Jul 2005 20:32:45 - 1.3 +++ javax/naming/AuthenticationNotSupportedException.java 3 Mar 2006 22:46:16 - @@ -1,5 +1,5 @@ /* AuthenticationNotSupportedException.java -- - Copyright (C) 2000, 2004 Free Software Foundation, Inc. + Copyright (C) 2000, 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -42,6 +42,8 @@ public class AuthenticationNotSupportedException extends NamingSecurityException { + private static final long serialVersionUID = - 7149033933259492300L; + public AuthenticationNotSupportedException () { super (); Index: javax/naming/Binding.java === RCS file: /cvsroot/classpath/classpath/javax/naming/Binding.java,v retrieving revision 1.3 diff -u -r1.3 Binding.java --- javax/naming/Binding.java 2 Jul 2005 20:32:45 - 1.3 +++ javax/naming/Binding.java 3 Mar 2006 22:46:16 - @@ -1,5 +1,5 @@ /* Binding.java -- - Copyright (C) 2001, 2005 Free Software Foundation, Inc. + Copyright (C) 2001, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -44,6 +44,8 @@ */ public class Binding extends NameClassPair { + private static final long serialVersionUID = 8839217842691845890L; + public Binding (String name, Object obj) {
[cp-patches] FYI: (was: RFC/RFT: HTTP header handling rewrite.)
David Daney wrote: PR libgcj/26487 shows problems with our existing header handling. I hacked up the attached patch, which needs more testing (please test it!) The basic problem is that the headers were being held in a map which scrambled them up if there were more than one header of the same name. My change was to just hold the headers in a list. This makes some searching operations less efficient, but seems the best way to keep the headers from being combined. Let me know what you think. This is what I committed after a couple of suggestions from Wolfgang Baer: 2006-03-03 David Daney [EMAIL PROTECTED] * gnu/java/net/protocol/http/HTTPURLConnection.java (getRequestProperties): Rewrote. (addRequestProperty): Rewrote. (getHeaderFields): Rewrote. (getHeaderField): Rewrote. (getHeaderFieldKey): Rewrote. (getHeaderField): Removed useless cast. * gnu/java/net/protocol/http/Headers.java: Entire class rewritten. * gnu/java/net/protocol/http/Request.java (dispatch): Use new Headers interface. (notifyHeaderHandlers): Use new Headers interface. Index: gnu/java/net/protocol/http/HTTPURLConnection.java === RCS file: /sources/classpath/classpath/gnu/java/net/protocol/http/HTTPURLConnection.java,v retrieving revision 1.22 diff -c -p -r1.22 HTTPURLConnection.java *** gnu/java/net/protocol/http/HTTPURLConnection.java 27 Feb 2006 23:37:20 - 1.22 --- gnu/java/net/protocol/http/HTTPURLConnection.java 3 Mar 2006 23:04:04 - *** public class HTTPURLConnection *** 422,441 if (connected) throw new IllegalStateException(Already connected); ! HashMap m = new HashMap(requestHeaders); ! Iterator it = m.entrySet().iterator(); ! while (it.hasNext()) ! { ! Map.Entry e = (Map.Entry)it.next(); ! String s = (String)e.getValue(); ! String sa[] = s.split(,); ! ArrayList l = new ArrayList(sa.length); ! for (int i = 0; i sa.length; i++) ! { ! l.add(sa[i].trim()); ! } ! e.setValue(Collections.unmodifiableList(l)); ! } return Collections.unmodifiableMap(m); } --- 422,428 if (connected) throw new IllegalStateException(Already connected); ! Map m = requestHeaders.getAsMap(); return Collections.unmodifiableMap(m); } *** public class HTTPURLConnection *** 449,464 public void addRequestProperty(String key, String value) { super.addRequestProperty(key, value); ! ! String old = requestHeaders.getValue(key); ! if (old == null) ! { ! requestHeaders.put(key, value); ! } ! else ! { ! requestHeaders.put(key, old + , + value); ! } } public OutputStream getOutputStream() --- 436,442 public void addRequestProperty(String key, String value) { super.addRequestProperty(key, value); ! requestHeaders.addValue(key, value); } public OutputStream getOutputStream() *** public class HTTPURLConnection *** 533,549 return null; } } ! Headers headers = response.getHeaders(); ! LinkedHashMap ret = new LinkedHashMap(); ! ret.put(null, Collections.singletonList(getStatusLine(response))); ! for (Iterator i = headers.entrySet().iterator(); i.hasNext(); ) ! { ! Map.Entry entry = (Map.Entry) i.next(); ! String key = (String) entry.getKey(); ! String value = (String) entry.getValue(); ! ret.put(key, Collections.singletonList(value)); ! } ! return Collections.unmodifiableMap(ret); } String getStatusLine(Response response) --- 511,519 return null; } } ! Map m = response.getHeaders().getAsMap(); ! m.put(null, Collections.singletonList(getStatusLine(response))); ! return Collections.unmodifiableMap(m); } String getStatusLine(Response response) *** public class HTTPURLConnection *** 571,590 { return getStatusLine(response); } ! Iterator i = response.getHeaders().entrySet().iterator(); ! Map.Entry entry; ! int count = 1; ! do ! { ! if (!i.hasNext()) ! { ! return null; ! } ! entry = (Map.Entry) i.next(); ! count++; ! } ! while (count = index); ! return (String) entry.getValue(); } public String getHeaderFieldKey(int index) --- 541,547 { return getStatusLine(response); } ! return response.getHeaders().getHeaderValue(index - 1); } public String getHeaderFieldKey(int index) *** public class HTTPURLConnection *** 600,623 return null; } } ! if (index ==
[cp-patches] Patch: FYI: add method to Insets
I'm checking this in. This adds a trivial new 1.5 method to java.awt.Insets. It also adds a missing @since. Tom 2006-03-03 Tom Tromey [EMAIL PROTECTED] * java/awt/Insets.java (set): New method. (equals): Added @since. Index: java/awt/Insets.java === RCS file: /cvsroot/classpath/classpath/java/awt/Insets.java,v retrieving revision 1.8 diff -u -r1.8 Insets.java --- java/awt/Insets.java2 Jul 2005 20:32:25 - 1.8 +++ java/awt/Insets.java3 Mar 2006 23:18:42 - @@ -100,11 +100,31 @@ } /** + * Set the contents of this Insets object to the specified values. + * + * @param top the top inset + * @param left the left inset + * @param bottom the bottom inset + * @param right the right inset + * + * @since 1.5 + */ + public void set(int top, int left, int bottom, int right) + { +this.top = top; +this.left = left; +this.bottom = bottom; +this.right = right; + } + + /** * Tests whether this object is equal to the specified object. The other * object must be an instance of Insets with identical field values. * * @param obj the object to test against * @return true if the specified object is equal to this one + * + * @since 1.1 */ public boolean equals(Object obj) {
[cp-patches] FYI: javax.swing.event.* - reformatting and API doc warning fixes
I committed this patch to fix some API doc warnings and do some reformatting: 2006-03-03 David Gilbert [EMAIL PROTECTED] * javax/swing/event/CaretEvent.java: Reformatting and fixed API doc warnings, * javax/swing/event/DocumentEvent.java: Likewise, * javax/swing/event/EventListenerList.java: Likewise, * javax/swing/event/MenuDragMouseEvent.java: Likewise, * javax/swing/event/MenuKeyEvent.java: Likewise, * javax/swing/event/TableColumnModelEvent.java: Likewise, * javax/swing/event/TreeExpansionEvent.java: Likewise, * javax/swing/event/TreeModelEvent.java: Likewise, * javax/swing/event/TreeSelectionEvent.java: Likewise, * javax/swing/event/UndoableEditEvent.java: Likewise. Regards, Dave Index: javax/swing/event/CaretEvent.java === RCS file: /sources/classpath/classpath/javax/swing/event/CaretEvent.java,v retrieving revision 1.2 diff -u -r1.2 CaretEvent.java --- javax/swing/event/CaretEvent.java 2 Jul 2005 20:32:50 - 1.2 +++ javax/swing/event/CaretEvent.java 3 Mar 2006 23:31:16 - @@ -1,5 +1,5 @@ /* CaretEvent.java -- - Copyright (C) 2002 Free Software Foundation, Inc. + Copyright (C) 2002, 2006, Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -37,43 +37,34 @@ package javax.swing.event; -// Imports import java.util.EventObject; /** * CaretEvent * @author Andrew Selkirk */ -public abstract class CaretEvent extends EventObject { +public abstract class CaretEvent extends EventObject +{ - //- - // Initialization - - //- - - /** -* CaretEvent constructor -* @param source Source object -*/ - public CaretEvent(Object source) { - super(source); - } // CaretEvent() - - - //- - // Methods - //- - - /** -* Get caret location -* @returns the dot -*/ - public abstract int getDot(); - - /** -* Get mark -* @returns the mark -*/ - public abstract int getMark(); + /** + * CaretEvent constructor + * @param source Source object + */ + public CaretEvent(Object source) + { +super(source); + } + + /** + * Get caret location + * @return the dot + */ + public abstract int getDot(); + + /** + * Get mark + * @return the mark + */ + public abstract int getMark(); - -} // CaretEvent +} Index: javax/swing/event/DocumentEvent.java === RCS file: /sources/classpath/classpath/javax/swing/event/DocumentEvent.java,v retrieving revision 1.9 diff -u -r1.9 DocumentEvent.java --- javax/swing/event/DocumentEvent.java27 Jan 2006 10:26:35 - 1.9 +++ javax/swing/event/DocumentEvent.java3 Mar 2006 23:31:16 - @@ -1,5 +1,5 @@ /* DocumentEvent.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. @@ -54,25 +54,25 @@ { /** * getIndex - * @returns int + * @return int */ int getIndex(); /** * getElement - * @returns Element + * @return Element */ Element getElement(); /** * getChildrenRemoved - * @returns Element[] + * @return Element[] */ Element[] getChildrenRemoved(); /** * getChildrenAdded - * @returns Element[] + * @return Element[] */ Element[] getChildrenAdded(); @@ -114,7 +114,7 @@ /** * toString - * @returns String + * @return String */ public String toString() { @@ -124,32 +124,32 @@ /** * getType - * @returns EventType + * @return EventType */ EventType getType(); /** * getOffset - * @returns int + * @return int */ int getOffset(); /** * getLength - * @returns int + * @return int */ int getLength(); /** * getDocument - * @returns Document + * @return Document */ Document getDocument(); /** * getChange * @param element TODO - * @returns ElementChange + * @return ElementChange */ ElementChange getChange(Element element); Index: javax/swing/event/EventListenerList.java === RCS file: /sources/classpath/classpath/javax/swing/event/EventListenerList.java,v retrieving revision 1.14 diff -u -r1.14 EventListenerList.java ---
[cp-patches] Patch: FYI: missing java.security constructors
I'm checking this in. This adds a bunch of constructors to java.security which are new with 1.5. Tom 2006-03-03 Tom Tromey [EMAIL PROTECTED] * java/security/SignatureException.java (SignatureException): New constructors. * java/security/ProviderException.java (ProviderException): New constructors. * java/security/NoSuchAlgorithmException.java (NoSuchAlgorithmException): New constructors. * java/security/KeyStoreException.java (KeyStoreException): New constructors. * java/security/KeyManagementException.java (KeyManagementException): New constructors. * java/security/InvalidKeyException.java (InvalidKeyException): New constructors. * java/security/KeyException.java (KeyException): New constructors. * java/security/InvalidAlgorithmParameterException.java (InvalidAlgorithmParameterException): New constructors. * java/security/DigestException.java (DigestException): New constructors. * java/security/GeneralSecurityException.java (GeneralSecurityException): New constructors. Index: java/security/DigestException.java === RCS file: /cvsroot/classpath/classpath/java/security/DigestException.java,v retrieving revision 1.7 diff -u -r1.7 DigestException.java --- java/security/DigestException.java 2 Jul 2005 20:32:40 - 1.7 +++ java/security/DigestException.java 3 Mar 2006 23:40:46 - @@ -1,5 +1,5 @@ /* DigestException.java -- A generic message digest exception - 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. @@ -67,4 +67,26 @@ { super(msg); } + + /** + * Create a new instance with a descriptive error message and + * a cause. + * @param s the descriptive error message + * @param cause the cause + * @since 1.5 + */ + public DigestException(String s, Throwable cause) + { +super(s, cause); + } + + /** + * Create a new instance with a cause. + * @param cause the cause + * @since 1.5 + */ + public DigestException(Throwable cause) + { +super(cause); + } } Index: java/security/GeneralSecurityException.java === RCS file: /cvsroot/classpath/classpath/java/security/GeneralSecurityException.java,v retrieving revision 1.7 diff -u -r1.7 GeneralSecurityException.java --- java/security/GeneralSecurityException.java 2 Jul 2005 20:32:40 - 1.7 +++ java/security/GeneralSecurityException.java 3 Mar 2006 23:40:46 - @@ -1,5 +1,5 @@ /* GeneralSecurityException.java -- Common superclass of security exceptions - 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. @@ -72,4 +72,26 @@ { super(msg); } + + /** + * Create a new instance with a descriptive error message and + * a cause. + * @param s the descriptive error message + * @param cause the cause + * @since 1.5 + */ + public GeneralSecurityException(String s, Throwable cause) + { +super(s, cause); + } + + /** + * Create a new instance with a cause. + * @param cause the cause + * @since 1.5 + */ + public GeneralSecurityException(Throwable cause) + { +super(cause); + } } Index: java/security/InvalidAlgorithmParameterException.java === RCS file: /cvsroot/classpath/classpath/java/security/InvalidAlgorithmParameterException.java,v retrieving revision 1.7 diff -u -r1.7 InvalidAlgorithmParameterException.java --- java/security/InvalidAlgorithmParameterException.java 2 Jul 2005 20:32:40 - 1.7 +++ java/security/InvalidAlgorithmParameterException.java 3 Mar 2006 23:40:46 - @@ -1,6 +1,6 @@ /* InvalidAlgorithmParameterException.java -- an invalid parameter to a security algorithm - Copyright (C) 2000, 2002, 2005 Free Software Foundation, Inc. + Copyright (C) 2000, 2002, 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -70,4 +70,26 @@ { super(msg); } + + /** + * Create a new instance with a descriptive error message and + * a cause. + * @param s the descriptive error message + * @param cause the cause + * @since 1.5 + */ + public InvalidAlgorithmParameterException(String s, Throwable cause) + { +super(s, cause); + } + + /** + * Create a new instance with a cause. + * @param cause the cause + * @since 1.5 + */ + public InvalidAlgorithmParameterException(Throwable cause) + { +super(cause); + } } Index: java/security/InvalidKeyException.java === RCS file:
[cp-patches] Patch: FYI: more java.security exception constructors
I'm checking this in. This adds some more new 1.5 constructors in java.security. Tom 2006-03-03 Tom Tromey [EMAIL PROTECTED] * java/security/spec/InvalidKeySpecException.java (InvalidKeySpecException): New constructors. * java/security/cert/CertificateParsingException.java (CertificateParsingException): New constructors. * java/security/cert/CertificateEncodingException.java (CertificateEncodingException): New constructors. * java/security/cert/CertificateException.java (CertificateException): New constructors. * java/security/cert/CRLException.java (CRLException): New constructors. Index: java/security/cert/CRLException.java === RCS file: /cvsroot/classpath/classpath/java/security/cert/CRLException.java,v retrieving revision 1.5 diff -u -r1.5 CRLException.java --- java/security/cert/CRLException.java2 Jul 2005 20:32:40 - 1.5 +++ java/security/cert/CRLException.java3 Mar 2006 23:56:07 - @@ -1,5 +1,5 @@ /* CRLException.java -- Certificate Revocation List Exception - Copyright (C) 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -45,7 +45,7 @@ * * @author Mark Benvenuto * @since 1.2 - * @status updated to 1.4 + * @status updated to 1.5 */ public class CRLException extends GeneralSecurityException { @@ -70,4 +70,26 @@ { super(msg); } + + /** + * Create a new instance with a descriptive error message and + * a cause. + * @param s the descriptive error message + * @param cause the cause + * @since 1.5 + */ + public CRLException(String s, Throwable cause) + { +super(s, cause); + } + + /** + * Create a new instance with a cause. + * @param cause the cause + * @since 1.5 + */ + public CRLException(Throwable cause) + { +super(cause); + } } Index: java/security/cert/CertificateEncodingException.java === RCS file: /cvsroot/classpath/classpath/java/security/cert/CertificateEncodingException.java,v retrieving revision 1.5 diff -u -r1.5 CertificateEncodingException.java --- java/security/cert/CertificateEncodingException.java2 Jul 2005 20:32:41 - 1.5 +++ java/security/cert/CertificateEncodingException.java3 Mar 2006 23:56:07 - @@ -1,5 +1,5 @@ /* CertificateEncodingException.java -- Certificate Encoding Exception - Copyright (C) 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -43,7 +43,7 @@ * * @author Mark Benvenuto * @since 1.2 - * @status updated to 1.4 + * @status updated to 1.5 */ public class CertificateEncodingException extends CertificateException { @@ -68,4 +68,26 @@ { super(msg); } + + /** + * Create a new instance with a descriptive error message and + * a cause. + * @param s the descriptive error message + * @param cause the cause + * @since 1.5 + */ + public CertificateEncodingException(String s, Throwable cause) + { +super(s, cause); + } + + /** + * Create a new instance with a cause. + * @param cause the cause + * @since 1.5 + */ + public CertificateEncodingException(Throwable cause) + { +super(cause); + } } Index: java/security/cert/CertificateException.java === RCS file: /cvsroot/classpath/classpath/java/security/cert/CertificateException.java,v retrieving revision 1.5 diff -u -r1.5 CertificateException.java --- java/security/cert/CertificateException.java2 Jul 2005 20:32:41 - 1.5 +++ java/security/cert/CertificateException.java3 Mar 2006 23:56:07 - @@ -1,5 +1,5 @@ /* CertificateException.java -- Certificate Exception - Copyright (C) 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -46,7 +46,7 @@ * @author Mark Benvenuto * @see Certificate * @since 1.2 - * @status updated to 1.4 + * @status updated to 1.5 */ public class CertificateException extends GeneralSecurityException { @@ -71,4 +71,26 @@ { super(msg); } + + /** + * Create a new instance with a descriptive error message and + * a cause. + * @param s the descriptive error message + * @param cause the cause + * @since 1.5 + */ + public CertificateException(String s, Throwable cause) + { +super(s, cause); + } + + /** + * Create a new instance with a cause. + * @param cause the cause + * @since 1.5 + */ + public CertificateException(Throwable cause) + { +super(cause); + } } Index: java/security/cert/CertificateParsingException.java ===
[cp-patches] Patch: FYI: constructors in javax.net.ssl
I'm checking this in. This adds some new 1.5 constructors in javax.net.ssl. It also adds a missing serialVersionUID. Tom 2006-03-03 Tom Tromey [EMAIL PROTECTED] * javax/net/ssl/SSLException.java (SSLException): New constructors. (serialVersionUID): New field. Index: javax/net/ssl/SSLException.java === RCS file: /cvsroot/classpath/classpath/javax/net/ssl/SSLException.java,v retrieving revision 1.2 diff -u -r1.2 SSLException.java --- javax/net/ssl/SSLException.java 2 Jul 2005 20:32:45 - 1.2 +++ javax/net/ssl/SSLException.java 4 Mar 2006 00:01:41 - @@ -1,5 +1,5 @@ /* SSLException.java -- generic SSL exception. - Copyright (C) 2004 Free Software Foundation, Inc. + Copyright (C) 2004, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. @@ -48,6 +48,7 @@ */ public class SSLException extends IOException { + private static final long serialVersionUID = 4511006460650708967L; // Constructor. // -- @@ -56,4 +57,16 @@ { super(message); } + + public SSLException(String message, Throwable cause) + { +super(message); +initCause(cause); + } + + public SSLException(Throwable cause) + { +super(cause == null ? null : cause.toString()); +initCause(cause); + } }
[cp-patches] Patch: FYI: update SSLException
I'm checking this in. I realized after I committed my last SSLException patch that I needed to have an '@since 1.5' on the new constructors. This adds that, adds javadoc to the other constructor, and adds an @since for the class. Tom 2006-03-03 Tom Tromey [EMAIL PROTECTED] * javax/net/ssl/SSLException.java: Added missing @since. Wrote javadoc. Index: javax/net/ssl/SSLException.java === RCS file: /cvsroot/classpath/classpath/javax/net/ssl/SSLException.java,v retrieving revision 1.3 diff -u -r1.3 SSLException.java --- javax/net/ssl/SSLException.java 4 Mar 2006 00:03:05 - 1.3 +++ javax/net/ssl/SSLException.java 4 Mar 2006 00:08:27 - @@ -45,6 +45,8 @@ * exception is thrown instead of this exception. * * @author Casey Marshall ([EMAIL PROTECTED]) + * + * @since 1.4 */ public class SSLException extends IOException { @@ -53,17 +55,34 @@ // Constructor. // -- + /** + * Create a new instance with a descriptive error message. + * + * @param message the descriptive error message + */ public SSLException(String message) { super(message); } + /** + * Create a new instance with a descriptive error message and + * a cause. + * @param message the descriptive error message + * @param cause the cause + * @since 1.5 + */ public SSLException(String message, Throwable cause) { super(message); initCause(cause); } + /** + * Create a new instance with a cause. + * @param cause the cause + * @since 1.5 + */ public SSLException(Throwable cause) { super(cause == null ? null : cause.toString());
[cp-patches] FYI: StyleConstants - mark fields final
This patch (committed) marks a bunch of fields as final (pointed out by JAPI): 2006-03-04 David Gilbert [EMAIL PROTECTED] * javax/swing/text/StyleConstants.java (CharacterConstants.Background): Marked final, (CharacterConstants.BidiLevel): Likewise, (CharacterConstants.Bold): Likewise, (CharacterConstants.ComponentAttribute): Likewise, (CharacterConstants.Family): Likewise, (CharacterConstants.Size): Likewise, (CharacterConstants.Foreground): Likewise, (CharacterConstants.IconAttribute): Likewise, (CharacterConstants.Italic): Likewise, (CharacterConstants.StrikeThrough): Likewise, (CharacterConstants.Subscript): Likewise, (CharacterConstants.Superscript): Likewise, (CharacterConstants.Underline): Likewise, (ColorConstants.Foreground): Likewise, (ColorConstants.Background): Likewise, (FontConstants.Bold): Likewise, (FontConstants.Family): Likewise, (FontConstants.Italic): Likewise, (FontConstants.Size): Likewise, (ParagraphConstants.Alignment): Likewise, (ParagraphConstants.FirstLineIndent): Likewise, (ParagraphConstants.LeftIndent): Likewise, (ParagraphConstants.LineSpacing): Likewise, (ParagraphConstants.Orientation): Likewise, (ParagraphConstants.RightIndent): Likewise, (ParagraphConstants.SpaceAbove): Likewise, (ParagraphConstants.SpaceBelow): Likewise, (ParagraphConstants.TabSet): Likewise. Regards, Dave Index: javax/swing/text/StyleConstants.java === RCS file: /sources/classpath/classpath/javax/swing/text/StyleConstants.java,v retrieving revision 1.10 diff -u -r1.10 StyleConstants.java --- javax/swing/text/StyleConstants.java17 Jan 2006 10:58:32 - 1.10 +++ javax/swing/text/StyleConstants.java4 Mar 2006 05:39:09 - @@ -877,7 +877,8 @@ * * @see #getTabSet(AttributeSet) */ - public static void setTabSet(MutableAttributeSet a, javax.swing.text.TabSet tabs) + public static void setTabSet(MutableAttributeSet a, + javax.swing.text.TabSet tabs) { a.addAttribute(StyleConstants.TabSet, tabs); } @@ -918,43 +919,46 @@ } /** An alias for [EMAIL PROTECTED] ColorConstants#Background}. */ -public static Object Background = ColorConstants.Background; +public static final Object Background = ColorConstants.Background; /** A key for the bidi level character attribute. */ -public static Object BidiLevel = new CharacterConstants(bidiLevel); +public static final Object BidiLevel = new CharacterConstants(bidiLevel); /** An alias for [EMAIL PROTECTED] FontConstants#Bold}. */ -public static Object Bold = FontConstants.Bold; +public static final Object Bold = FontConstants.Bold; /** A key for the component character attribute. */ -public static Object ComponentAttribute = new CharacterConstants(component); +public static final Object ComponentAttribute += new CharacterConstants(component); /** An alias for [EMAIL PROTECTED] FontConstants#Family}. */ -public static Object Family = FontConstants.Family; +public static final Object Family = FontConstants.Family; /** An alias for [EMAIL PROTECTED] FontConstants#Size}. */ -public static Object Size = FontConstants.Size; +public static final Object Size = FontConstants.Size; /** An alias for [EMAIL PROTECTED] ColorConstants#Foreground}. */ -public static Object Foreground = ColorConstants.Foreground; +public static final Object Foreground = ColorConstants.Foreground; /** A key for the icon character attribute. */ -public static Object IconAttribute = new CharacterConstants(icon); +public static final Object IconAttribute = new CharacterConstants(icon); /** A key for the italic character attribute. */ -public static Object Italic = FontConstants.Italic; +public static final Object Italic = FontConstants.Italic; /** A key for the strike through character attribute. */ -public static Object StrikeThrough = new CharacterConstants(strikethrough); +public static final Object StrikeThrough += new CharacterConstants(strikethrough); /** A key for the subscript character attribute. */ -public static Object Subscript = new CharacterConstants(subscript); +public static final Object Subscript = new CharacterConstants(subscript); /** A key for the superscript character attribute. */ -public static Object Superscript = new CharacterConstants(superscript); +public static final Object Superscript += new CharacterConstants(superscript); /** A key for the underline character attribute. */ -public static Object Underline = new
[cp-patches] FYI: GapContent.getArray() marked as final
I committed this patch - JAPI points out that the method should be final: 2006-03-04 David Gilbert [EMAIL PROTECTED] * javax/swing/text/GapContent.java (getArray): Mark as final. Regards, Dave
Re: [cp-patches] FYI: GapContent.getArray() marked as final
Patch attached. Regards, Dave David Gilbert wrote: I committed this patch - JAPI points out that the method should be final: 2006-03-04 David Gilbert [EMAIL PROTECTED] * javax/swing/text/GapContent.java (getArray): Mark as final. Regards, Dave Index: javax/swing/text/GapContent.java === RCS file: /sources/classpath/classpath/javax/swing/text/GapContent.java,v retrieving revision 1.40 diff -u -r1.40 GapContent.java --- javax/swing/text/GapContent.java21 Feb 2006 11:29:18 - 1.40 +++ javax/swing/text/GapContent.java4 Mar 2006 06:21:10 - @@ -607,7 +607,7 @@ * * @return the allocated buffer array */ - protected Object getArray() + protected final Object getArray() { return buffer; }
[cp-testresults] FAIL: generics classpath build on Thu Mar 2 21:45:05 UTC 2006
Adding java source files from srcdir '../../classpath'. Adding java source files from VM directory ../../classpath/vm/reference Adding generated files in builddir '..'. /usr/local/bin/ecj -1.5 -warn:-deprecation,serial,typeHiding,unchecked,unused,varargsCast -proceedOnError -bootclasspath '' -classpath ../../classpath/vm/reference:../../classpath:../../classpath/external/w3c_dom:../../classpath/external/sax:../../classpath/external/relaxngDatatype:.: -d . @classes -- 1. WARNING in ../../classpath/javax/swing/tree/DefaultTreeCellEditor.java (at line 120) public void EditorContainer() ^ This method has a constructor name -- -- 2. WARNING in ../../classpath/external/sax/org/xml/sax/helpers/ParserAdapter.java (at line 564) atts.addAttribute (nsSupport.XMLNS, prefix, ^^^ The static field NamespaceSupport.XMLNS should be accessed in a static way -- 2 problems (2 warnings)touch compile-classes if ! [ -e gnu ]; then mkdir gnu; fi if ! [ -e gnu/java ]; then mkdir gnu/java; fi if ! [ -e gnu/java/locale ]; then mkdir gnu/java/locale; fi if ! [ -e gnu/javax/swing/plaf/gtk/icons ]; then mkdir -p gnu/javax/swing/plaf/gtk/icons; fi touch resources if test /usr/bin/zip != ; then /usr/bin/zip -r -D glibj.zip gnu java javax org META-INF /dev/null; fi if test @FASTJAR@ != ; then @FASTJAR@ cf glibj.zip gnu java javax org META-INF; fi /bin/sh: line 1: @FASTJAR@: command not found make[1]: *** [glibj.zip] Error 127 make[1]: Leaving directory `/home/cpdev/Nightly/generics/build/lib' make: *** [all-recursive] Error 1 ___ Classpath-testresults mailing list Classpath-testresults@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-testresults
[cp-testresults] FAIL: regressions for mauve-jamvm on Tue Feb 28 21:05:58 UTC 2006
Baseline from: Tue Feb 28 16:10:20 UTC 2006 Regressions: FAIL: gnu.testlet.java.lang.Thread.sleep: Interrupted sleep (number 2) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure1: after first insertion (number 4) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure1: after fourth insertion (number 1) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure1: after second insertion (number 4) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure1: after third insertion (number 4) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure4: after first insertion (number 5) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure5: ElementBuffer insertUpdate: first insertion (number 14) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure6: ElementBuffer insertUpdate: first insertion (number 16) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure6: ElementBuffer insertUpdate: first insertion (number 17) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.ElementStructure8: ElementBuffer insertUpdate: first insertion (number 14) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument1: second doc event (number 8) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.StyledDocument5: second doc event (number 8) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.insert: testEndTag1 (number 8) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.insert: testEndTag2 (number 8) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.insert: testEndTag3 (number 9) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.insert: testEndTag4 (number 14) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.insert: testEndTag5 (number 11) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.ElementBuffer.insert: testJoinNext3 (number 8) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.insertString: insertEqualAttributes (number 2) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.insertString: insertEqualAttributes (number 5) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.insertString: insertEqualAttributes (number 8) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.insertString: insertModifiedAttributes (number 12) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.insertString: insertModifiedAttributes (number 2) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.insertString: insertModifiedAttributes (number 5) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.insertString: insertNewline (number 2) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.insertString: insertNewline (number 3) New fails: FAIL: gnu.testlet.gnu.javax.crypto.key.dh.TestOfDHKeyAgreements abnormal termination 142 CRASH or TIMEOUT FAIL: gnu.testlet.gnu.javax.swing.text.html.parser.support.Parser.HTML_randomTable: Exception: java.lang.Exception: 'htmlhead/headbodytabletr tdC_0_0 /td tdC_0_1 td C_0_2/td tdC_0_3trtd C_1_0 /td tdC_1_1td C_1_2 /tdtd C_1_3 /td tr td C_2_0/tdtdC_2_1trtdC_3_0 /td tdC_3_1/tdtdC_3_2/td td C_3_3 /tdtdC_3_4/tdtrtdC_4_0/td/tbody/table/body/html' - 'htmlhead/headbodytabletbodytrtd'C_0_0'/tdtd'C_0_1'/tdtd'C_0_2'/tdtd'C_0_3'/td/trtrtd'C_1_0'/tdtd'C_1_1'/tdtd'C_1_2'/tdtd'C_1_3'/td/trtrtd'C_2_0'/tdtd'C_2_1'/td/trtrtd'C_3_0'/tdtd'C_3_1'/tdtd'C_3_2'/tdtd'C_3_3'/tdtd'C_3_4'/td/trtrtd'C_4_0'/td/tbody/tr/tbody/table/body/html' expected 'htmlhead/headbodytabletbodytrtd'C_0_0'/tdtd'C_0_1'/tdtd'C_0_2'/tdtd'C_0_3'/td/trtrtd'C_1_0'/tdtd'C_1_1'/tdtd'C_1_2'/tdtd'C_1_3'/td/trtrtd'C_2_0'/tdtd'C_2_1'/td/trtrtd'C_3_0'/tdtd'C_3_1'/tdtd'C_3_2'/tdtd'C_3_3'/tdtd'C_3_4'/td/trtrtd'C_4_0'/td/tr/tbody/table/body/html' (number 1) FAIL: gnu.testlet.javax.swing.text.DefaultStyledDocument.insertString: uncaught exception at insertNewline number 7: java.lang.NullPointerException FAIL: gnu.testlet.javax.swing.text.html.HTML.ElementTagAttributeTest: Exception caught (number 1) Totals: PASS: 29970 XPASS: 0 FAIL: 313 XFAIL: 0 ___ Classpath-testresults mailing list Classpath-testresults@gnu.org http://lists.gnu.org/mailman/listinfo/classpath-testresults
Re: Building and Running MegaMek under Classpath + Cacao CVS HEAD
Hi, On Thu, 2006-03-02 at 12:05 -0500, Thomas Fitzsimmons wrote: On Thu, 2006-03-02 at 00:06 -0500, James Damour wrote: Lillian Angel has done a truely remarkable job squashing rendering problems, so what once looked like [1] now looks like [2]. [...] There are still a few little bugs (which appear to depend on one's operating environment:-( ). I'll be writing up Bugzilla reports over the next few days/weeks to help run down the last few problems. Great, thanks. Yes thanks for your support! It looks like MegaMek is actually playable now on our free stack. I look forward to it being bundled with the different distributions. Although I am afraid what it will do to the productivity of our hackers :) I also looked into the compatability between MegaMek clients and servers running on proprietary and free VMs. There was an initial hiccup where I was getting incompatable serialVersionUID, but I quickly realized that the problem was caused by my compiling MegaMek twice, once with Sun tools, and once with Free tools. When I gave both VMs the same set of classes (or JAR file), they could connect without difficulty. Isn't this the point of serialVersionUID though? If someone builds and runs MegaMek with Sun's tools and another person builds and runs MegaMek with free tools, the two MegaMek instances should be able to serialize and unserialize each other's data. Where this isn't the case don't we need to update our serialVersionUID fields? Yes, and if we did our homework right then this is the case. See also our hacking guide http://www.gnu.org/software/classpath/docs/hacking.html#SEC19 If a class has a field (of any accessibility) named serialVersionUID of type long, that is what serialver uses. Otherwise it computes a value using some sort of hash function on the names of all method signatures in the .class file. The fact that different compilers create different synthetic method signatures, such as access$0() if an inner class needs access to a private member of an enclosing class, make it impossible for two distinct compilers to reliably generate the same serial #, because their .class files differ. However, once you have a .class file, its serial # is unique, and the computation will give the same result no matter what platform you execute on. But unfortunately that also needs to be done for the application code if it wants to be serializable between versions compiled with different tools. The best design for code you want to have Serializable is to think (and document!) the serialized form/fields and how the different methods interact with possible future extensions (through readObject() and writeObject() if necessary) and then add a fixed serialVersionUID to the class (if you already have deployed code compiled with a particular toolset then you should adopt the serialver number of this deployed version). Cheers, Mark -- Escape the Java Trap with GNU Classpath! http://www.gnu.org/philosophy/java-trap.html Join the community at http://planet.classpath.org/ signature.asc Description: This is a digitally signed message part
J2ME, the 2nd
Hi! As I already mentioned at Fosdem, we have a new student who will be doing a J2ME port of GNU Classpath. His name is Michal Revucky and he's currently reading the spec AFAIK. He's already subscribed to this list and did some work for gforth in the past, with appropriate FSF paperwork. What is the current status of the J2ME discussion? I remember someone talking about he already has some code... but maybe I'm wrong. TWISTI
Re: dacapo xalan
On Wed, 2006-03-01 at 10:15 -0800, David Daney wrote: Andrew Haley wrote: Mark Wielaard writes: Does the dacapo xalan work for you with the following patch? diff -u -r1.36 ResourceBundle.java --- java/util/ResourceBundle.java 23 Oct 2005 17:04:46 - 1.36 +++ java/util/ResourceBundle.java 1 Mar 2006 10:59:59 - @@ -476,9 +476,7 @@ if (ResourceBundle.class.isAssignableFrom(rbClass)) bundle = (ResourceBundle) rbClass.newInstance(); } -catch (IllegalAccessException ex) {} -catch (InstantiationException ex) {} -catch (ClassNotFoundException ex) {} +catch (Throwable t) { /* Class initialization failed, no valid bundle. */ } Are you sure about this? Do you really want to catch VirtualMachineError here? Or ThreadDeath, or OutOfMemoryError, or StackOverflowError, or ... Well maybe some of those, but why not just catch those documented in Class.newInstance() and Class.forName()? Namely add LinkageError and ExceptionInInitializerError. Or maybe Exceptions in general but no Errors others than those explicitly documented. No I wasn't sure :) I just wanted to provide Christian with a quick and dirty patch to make sure treating exceptions thrown from a constructor as failed initialization of a ResourceBundle class was the thing that was going wrong. Jeroen did more testing and fixed it by just catching Exception. Unfortunately Class.newInstance() isn't guaranteed to wrap exceptions (even declared exceptions) thrown from the default constructor in an ExceptionInInitializer. Although that is what JikesRVM does, but that is a bug in JikesRVM - a bug that helped counter this bug it seems :) Cheers, Mark signature.asc Description: This is a digitally signed message part
Re: J2ME, the 2nd
Il giorno ven, 03/03/2006 alle 10.32 +0100, Christian Thalinger ha scritto: What is the current status of the J2ME discussion? I remember someone talking about he already has some code... but maybe I'm wrong. Hi! This is my first message on this list, so I would like to say hello and above all a great thank you to all the developers (and people involved) that make this project a reality. I am interested in the j2me area [1]. I would like to help, though I don't have much free time at the moment. Ciao, Mario [1] I work for a company that mainly does j2me stuff, and now is forking in two companies, one of which will specialize in software development, and, the good news, most of our project will be free software! -- Lima Software, SO.PR.IND. s.r.l. http://www.limasoftware.net/ pgp key: http://subkeys.pgp.net/ Please, support open standards: http://opendocumentfellowship.org/petition/ http://www.nosoftwarepatents.com/ -- Lima Software, SO.PR.IND. s.r.l. http://www.limasoftware.net/ pgp key: http://subkeys.pgp.net/ Please, support open standards: http://opendocumentfellowship.org/petition/ http://www.nosoftwarepatents.com/ signature.asc Description: This is a digitally signed message part
Re: eclipse regression
Hi Christian, On Fri, 2006-03-03 at 01:49 +0100, Christian Thalinger wrote: I'm unable to install some (any?) plugins in eclipse with CVS head. I already talked to tashiro on irc and it works with 0.20 release. The problem is in two places: * Software Updates - Find and install says: Current configuration problems * Software Updates - Manage Configuration does not allow to open Eclipse SDK, it only shows this entry. I hope i made myself clear (it's rather late). Yep. I am seeing the same thing. I was trying out http://developer.classpath.org/mediation/ClasspathHackingWithEclipse from scratch and trying to install the CDT plugin and it fails as you describe above. I haven't figured out since when this stopped working, but it clearly is a regression. If you installed the feature with a working version of classpath (0.20) and then try to use it with a CVS version you will get messages like: !ENTRY org.eclipse.update.configurator 2006-03-03 11:19:10.787 !MESSAGE Unable to parse file /tmp/eclipse/plugins/org.eclipse.cdt.core_3.0.2/plugin.xml. So I guess it is something going wrong with the parsing of xml files. But I haven't found the point yet where eclipse does this, or what the actual error is that occurs. Cheers, Mark signature.asc Description: This is a digitally signed message part
JNI calls that don't return
Hi, There is at least one JNI call that is designed not to return. This is that gtkMain native method in gnu.java.awt.peer.gtk.GtkToolkit. Some VMs require all Java threads to run upto a garbage collection barrier before garbage collection can be performed. If a Java thread never leaves JNI code then this will never happen and the VM deadlocks. A solution to this is to rewrite the gtkMain loop to something like what follows: in GtkTookit.java: public static void gtkMain() { try { while(true) { while(gtkEventsPending()) { gtkMainIteration(); } Thread.sleep(10); } } catch(InterruptedException e){} } public static native void gtkMainIteration(); private static native boolean gtkEventsPending(); in gnu_java_awt_peer_gtk_GtkToolkit.c (NB regenerate the JNI header files): JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkMainIteration (JNIEnv *env __attribute__((unused)), jclass obj __attribute__((unused))) { gdk_threads_enter (); gtk_main_iteration (); gdk_threads_leave (); } JNIEXPORT jboolean JNICALL Java_gnu_java_awt_peer_gtk_GtkToolkit_gtkEventsPending (JNIEnv *env __attribute__((unused)), jclass obj __attribute__((unused))) { gboolean pending; gdk_threads_enter (); pending = gtk_events_pending (); gdk_threads_leave (); return pending == TRUE ? JNI_TRUE : JNI_FALSE; } For performance the nested while loop could be moved into the JNI code. Is having all JNI code return an option for classpath? Thanks, Ian Rogers
Re: Classpath on Cygwin: HOWTO
On Thu, Mar 02, 2006 at 04:11:10PM +0100, Enrico Migliore wrote: Hi Mark and Dalibor, I've finally finished this detailed document, that explains how to build Classpath 0.20 on Cygwin. The following steps were tested on Windows XP Home and Win2000 Professional. Enrico 1. Download the latest version of the Cygwin installer -- http://www.cygwin.com/setup.exe 2. Run the installer: setup.exe - Choose Install from Internet and follow the instructions until the installer prompts a Windows named: Cygwin Setup - Select Packages The installer has already selected the base packages to download, now you need to add some more packages. 3. Add the following packages to the download list --- Archive/zip Devel/gcc-g++ Devel/make Devel/automake 1.9 Devel/autoconfig 2.1 Devel/libtool 1.5 Devel/pkgconfig Devel/atk 1.5 (all files) Devel/pango (all files) Graphics/gtk2-x11 (all files) X11/gtk+(all files) X11/gtk-engines X11/xorg-x11(all files) Note that some packages may have been already selected by the installer. 4. Download jikes-1.22 http://prdownloads.sourceforge.net/jikes/jikes-1.22.tar.bz2?download 5. Unzip jikes-1.22.tar.bz2 with one of the following utilities winrar (Windows utility) tar (Cygwin utility: $tar -xjf jikes-1.22.tar.bz2) 6. Apply the following patch to the file .src/platform.cpp http://sourceforge.net/tracker/index.php?func=detailaid=1202863group_id=128803atid=712760 The patch is reported here: Index: src/platform.cpp == RCS file: /cvsroot/jikes/jikes/src/platform.cpp,v retrieving revision 1.47 diff -u -r1.47 platform.cpp --- src/platform.cpp 23 Mar 2004 14:03:56 - 1.47 +++ src/platform.cpp 16 May 2005 14:28:13 - @@ -201,15 +201,6 @@ int SystemStat(const char* name, struct stat* stat_struct) { int result = ::stat(name, stat_struct); -#ifdef HAVE_SYS_CYGWIN_H - // - // Up through cygwin 1.3.10, the hash function which determines inodes - // was not strong enough, so java/net and java/nio occasionally get the - // same inode without this hack. - // - if (result == 0) - stat_struct - st_ino += name[strlen(name) - 1]; -#endif // HAVE_SYS_CYGWIN_H return result; } 7. Build jikes-1.22 --- $ ./configure $ make $ make install $ make clean you can save yourself steps 4-7, since jikes 1.22 is now part of cygwin. cheers, dalibor topic 8. Download Classpath-0.20 - http://www.gnu.org/software/classpath/ 9. Unzip classpath-0.20.tar.gz with one of the following utilities --- winrar (Windows utility) tar (Cygwin utility) 10. Build Classpth-0.20 $ ./configure --with-jikes --enable-gtk-peer $ make $ make install $ make clean The install process will print quite a few Java and C warnings. Note also that, since jni is enabled by default, ---enable-jni is not needed. 11. The building process will install the Classpath library here - /usr/local/classpath/share/classpath/glibj.zip - The End The time required to do everything is about 30 minutes on a 1 GHz PC. If you are a developer, you might want to install the following packages, which, by the way, are not required to build Classpath: Devel/gdb (all files) Devel/ddd (all files) Devel/subversion(all files) gdb is the GNU command line debugger, ddd is the GUI front-end of gdb, and subversion is a utility to check-out and check-in the source code of a versioned project.
RE: JNI calls that don't return
Ian Rogers wrote: Some VMs require all Java threads to run upto a garbage collection barrier before garbage collection can be performed. If a Java thread never leaves JNI code then this will never happen and the VM deadlocks. Why not fix the VM? Real world applications are likely to have this issue as well, besides how is this any different from blocking on I/O inside a JNI method for a very long time? Regards, Jeroen
Re: Classpath on Cygwin: HOWTO
7. Build jikes-1.22 --- $ ./configure $ make $ make install $ make clean you can save yourself steps 4-7, since jikes 1.22 is now part of cygwin. cheers, dalibor topic Hi Dalibor, good to know, thanks! I'll try that and then update this HOWTO ciao, Enrico
Re: JNI calls that don't return
Jeroen Frijters wrote: Some VMs require all Java threads to run upto a garbage collection barrier before garbage collection can be performed. If a Java thread never leaves JNI code then this will never happen and the VM deadlocks. Why not fix the VM? Real world applications are likely to have this issue as well, besides how is this any different from blocking on I/O inside a JNI method for a very long time? I agree.. any thread that's running JNI code is cannot possibly affect the state of the VM until if/when it either returns or invokes a JNI method. Therefore there's (in theory) no need to wait for it to return in order to do anything. -Archie __ Archie Cobbs *CTO, Awarix* http://www.awarix.com
Re: dacapo xalan
Mark Wielaard wrote: On Wed, 2006-03-01 at 10:15 -0800, David Daney wrote: Andrew Haley wrote: Mark Wielaard writes: Does the dacapo xalan work for you with the following patch? diff -u -r1.36 ResourceBundle.java --- java/util/ResourceBundle.java 23 Oct 2005 17:04:46 - 1.36 +++ java/util/ResourceBundle.java 1 Mar 2006 10:59:59 - @@ -476,9 +476,7 @@ if (ResourceBundle.class.isAssignableFrom(rbClass)) bundle = (ResourceBundle) rbClass.newInstance(); } -catch (IllegalAccessException ex) {} -catch (InstantiationException ex) {} -catch (ClassNotFoundException ex) {} +catch (Throwable t) { /* Class initialization failed, no valid bundle. */ } Are you sure about this? Do you really want to catch VirtualMachineError here? Or ThreadDeath, or OutOfMemoryError, or StackOverflowError, or ... Well maybe some of those, but why not just catch those documented in Class.newInstance() and Class.forName()? Namely add LinkageError and ExceptionInInitializerError. Or maybe Exceptions in general but no Errors others than those explicitly documented. No I wasn't sure :) I just wanted to provide Christian with a quick and dirty patch to make sure treating exceptions thrown from a constructor as failed initialization of a ResourceBundle class was the thing that was going wrong. Jeroen did more testing and fixed it by just catching Exception. Unfortunately Class.newInstance() isn't guaranteed to wrap exceptions (even declared exceptions) thrown from the default constructor in an ExceptionInInitializer. Although that is what JikesRVM does, but that is a bug in JikesRVM - a bug that helped counter this bug it seems :) We cannot violate the JLS! A method that throws a checked exception without declaring it is a bug. If Class.newInstance() throws a checked exception other than those that it declares, it is a bug. We cannot violate the JLS for any reason, not even to mimic bugs in other runtimes. My reading of the specification is: If the constructor throws an exception Class.newInstance must throw InstantiationException. If the Class static initializer throws then ExceptionInInitializerError. By catching all declared Errors and Exceptions, we should be safe. If we are not, then we should fix Class.newInstance(). David Daney.
RE: dacapo xalan
David Daney wrote: We cannot violate the JLS! A method that throws a checked exception without declaring it is a bug. Rubbish! There are several ways to throw checked exceptions: http://weblogs.java.net/blog/crazybob/archive/2004/09/dont_try_this_a.ht ml Regards, Jeroen
[Bug classpath/26410] javax.xml.parsers.DocumentBuilderFactory.java is missing {get, set}Feature
--- Comment #8 from konqueror at gmx dot de 2006-02-27 06:31 --- Subject: Re: javax.xml.parsers.DocumentBuilderFactory.java is missing {get, set}Feature On Wed, Feb 22, 2006 at 01:12:59PM -, bero at arklinux dot org wrote: --- Comment #5 from bero at arklinux dot org 2006-02-22 13:12 --- Are you sure re @since 1.5? This must have been around for a long time (maybe as an external add-on to 1.4 though) because Xalan 2.7.0 (which predates 1.5) already makes use of them. I checked SUNs 1.4.2 online javadocs. Both don't existed. That is all that counts. Xalan 2.7.0 is not part of JDK as far as I know. Also the sun docs at http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/parsers/DocumentBuilderFactory.html don't mention since 1.5 for getFeature/setFeature, but they do for getSchema/setSchema. Please file a bug against JDK at SUN for this. Cheers, Michael -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26410 ___ Bug-classpath mailing list Bug-classpath@gnu.org http://lists.gnu.org/mailman/listinfo/bug-classpath
[Bug classpath/26410] javax.xml.parsers.DocumentBuilderFactory.java is missing {get, set}Feature
-- pinskia at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |0.21 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26410 ___ Bug-classpath mailing list Bug-classpath@gnu.org http://lists.gnu.org/mailman/listinfo/bug-classpath
Re: Classpath on Cygwin: HOWTO
Enrico == Enrico Migliore [EMAIL PROTECTED] writes: Enrico good to know, thanks! I'll try that and then update this HOWTO I'm curious as to whether the instructions for building Classpath with Eclipse work on a Windows machine with Cygwin... Tom
[Bug xml/26324] AElfred: spurious extra newline notified
--- Comment #3 from dog at gnu dot org 2006-02-24 15:30 --- This bug was traced to CRLF detection in the CRLFInputStream class which has been fixed. -- dog at gnu dot org changed: What|Removed |Added Status|WAITING |RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26324 ___ Bug-classpath mailing list Bug-classpath@gnu.org http://lists.gnu.org/mailman/listinfo/bug-classpath
Re: dacapo xalan
Jeroen Frijters wrote: David Daney wrote: We cannot violate the JLS! A method that throws a checked exception without declaring it is a bug. Rubbish! There are several ways to throw checked exceptions: http://weblogs.java.net/blog/crazybob/archive/2004/09/dont_try_this_a.ht ml Rubbish does describe how I feel about that blog article. That was my exact point. Tell me if you disagree with this point: Point) It is the intent of the JLS (version 2 section 11.2) that methods only throw checked exceptions that they declare. The fact that it is possible to design a java implementation that violates this intent should not be surprising. We are all smart people, we can make it do pretty much anything we desire. Because it is directly in conflict with the intent of the JLS, I don't think we should violate the checked exception rule in order to mimic the behavior of broken implementations. The documentation (jdk 1.4.2) of Class.newInstance() says that InstantiationException is thrown if ... if the instantiation fails for some other reason. In my book throwing an exception falls under the catagory of some other reason David Daney.
Re: dacapo xalan
David == David Daney [EMAIL PROTECTED] writes: David The documentation (jdk 1.4.2) of Class.newInstance() says that David InstantiationException is thrown if ... if the instantiation fails David for some other reason. In my book throwing an exception falls under David the catagory of some other reason Read the 1.5 docs. They are explicit about passing through checked exceptions here. Though the docs still manage to be internally inconsistent; it looks like someone forgot to update an @throws. There's no question that this is a historical error. It does violate the JLS, which is bad, and is dumb in other ways too. But Sun's options for fixing this were pretty limited. Sometimes it really does make sense to just document a mistake and move on. Tom
Re: GtkComponentPeer realization
Hi Tom, On Mon, 2006-02-20 at 15:50 -0500, Thomas Fitzsimmons wrote: On Mon, 2006-02-20 at 17:47 +0100, Mark Wielaard wrote: Yes. We do defer creation of the gtk-peer till the actual addNotify() call. But then we also defer the parent/bound-setting if the container is already visible till the container is actually made valid. This is at least a problem with (sub) classes of Panel and Canvas where applications seem to expect to be able to paint on them before they are actually validated. This is a very strange requirement; they require the ability to draw on a Component that may not be sized correctly? Presumably that component will not be in that invalid state for long, and so will be repainted correctly when it is validated? I am not sure it is an requirement. But there are clearly programs that call paint(), update() and/or getGraphics() on Components at the weirdest times. Tom, do you have an example where the delayed realization of the gtk+ component was necessary/gave strange visual effects? I like to get to the bottom of this one. Yes, the problem was with adding a container of widgets to another already-showing container. Since we were force-realizing widgets on creation, each widget would be shown at 0,0 with size 1x1, then moved into place and resized upon validation. At the time there were bugs in the peer resizing code that made some widgets, including buttons, show up at their natural sizes. The result was that for a big button box in vte, you'd see all the buttons stack up at 0,0 at their natural sizes, then be moved and resized into the right spot. In an attempt to solve this, and to be more in-line with GTK conventions, I eliminated forced realization. The idea is that widgets should be realized when GTK decides to realize them: after they've been properly sized and parented. So with the current code, I leave realization up to GTK and I only set bounds and parents on the peer side after all the AWT validation has occurred, in GtkContainerPeer.endValidate(). Unfortunately, as Mark points out, this approach relies on validation to occur before getGraphics is called on a component, which (apparently) isn't guaranteed. In fact, getGraphics must work as soon as addNotify has been called on it which can happen anytime independent of validation. So delayed realization is unworkable and we should change back to forced-realization. OK, I did this and I tried to make the impact as little as possible. This patch handles the most common case where the Component bounds have not been set yet (so are zero) then it wont show the component yet. This doesn't solve all the cases as seen with vte when a Component is set to a particular size before being added though. (It does solve one other issue I was seeing where my app was hiding an Component by setting its size to 0, previously we would ignore such a reshape call...) I think this is the best we can do for now without doing something much more tricky such hooking into things like endLayout which we don't currently seem to support anyway. And it solve the crashes I was seeing which I think is a more important issue then the jumping components problem. 2006-03-03 Mark Wielaard [EMAIL PROTECTED] * gnu/java/awt/peer/gtk/GtkComponentPeer.java (GtkComponentPeer): Always call setParentAndBounds(). (setComponentBounds): Always call setBounds(). (setBounds): Call setVisible(). (setVisible): If no pixels are showing then don't make it visible. * gnu/java/awt/peer/gtk/GtkContainerPeer.java (endValidate): No need to call setParentAndBounds() anymore. What do you think? The hsqldb, VTE and MegaMek seem to look and work fine with this. Cheers, Mark Index: gnu/java/awt/peer/gtk/GtkComponentPeer.java === RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkComponentPeer.java,v retrieving revision 1.106 diff -u -r1.106 GtkComponentPeer.java --- gnu/java/awt/peer/gtk/GtkComponentPeer.java 23 Feb 2006 19:22:24 - 1.106 +++ gnu/java/awt/peer/gtk/GtkComponentPeer.java 3 Mar 2006 20:05:56 - @@ -145,12 +145,7 @@ Component parent = awtComponent.getParent (); -// Only set our parent on the GTK side if our parent on the AWT -// side is not showing. Otherwise the gtk peer will be shown -// before we've had a chance to position and size it properly. -if (awtComponent instanceof Window -|| (parent != null ! parent.isShowing ())) - setParentAndBounds (); +setParentAndBounds (); setNativeEventMask (); @@ -201,11 +196,6 @@ void setComponentBounds () { Rectangle bounds = awtComponent.getBounds (); - -if (bounds.x == 0 bounds.y == 0 - bounds.width == 0 bounds.height == 0) - return; - setBounds (bounds.x, bounds.y, bounds.width, bounds.height); } @@ -487,6 +477,10 @@ } setNativeBounds (new_x, new_y, width,
Re: GtkComponentPeer realization
On Fri, 2006-03-03 at 21:30 +0100, Mark Wielaard wrote: Hi Tom, On Mon, 2006-02-20 at 15:50 -0500, Thomas Fitzsimmons wrote: On Mon, 2006-02-20 at 17:47 +0100, Mark Wielaard wrote: Yes. We do defer creation of the gtk-peer till the actual addNotify() call. But then we also defer the parent/bound-setting if the container is already visible till the container is actually made valid. This is at least a problem with (sub) classes of Panel and Canvas where applications seem to expect to be able to paint on them before they are actually validated. This is a very strange requirement; they require the ability to draw on a Component that may not be sized correctly? Presumably that component will not be in that invalid state for long, and so will be repainted correctly when it is validated? I am not sure it is an requirement. But there are clearly programs that call paint(), update() and/or getGraphics() on Components at the weirdest times. Tom, do you have an example where the delayed realization of the gtk+ component was necessary/gave strange visual effects? I like to get to the bottom of this one. Yes, the problem was with adding a container of widgets to another already-showing container. Since we were force-realizing widgets on creation, each widget would be shown at 0,0 with size 1x1, then moved into place and resized upon validation. At the time there were bugs in the peer resizing code that made some widgets, including buttons, show up at their natural sizes. The result was that for a big button box in vte, you'd see all the buttons stack up at 0,0 at their natural sizes, then be moved and resized into the right spot. In an attempt to solve this, and to be more in-line with GTK conventions, I eliminated forced realization. The idea is that widgets should be realized when GTK decides to realize them: after they've been properly sized and parented. So with the current code, I leave realization up to GTK and I only set bounds and parents on the peer side after all the AWT validation has occurred, in GtkContainerPeer.endValidate(). Unfortunately, as Mark points out, this approach relies on validation to occur before getGraphics is called on a component, which (apparently) isn't guaranteed. In fact, getGraphics must work as soon as addNotify has been called on it which can happen anytime independent of validation. So delayed realization is unworkable and we should change back to forced-realization. OK, I did this and I tried to make the impact as little as possible. This patch handles the most common case where the Component bounds have not been set yet (so are zero) then it wont show the component yet. This doesn't solve all the cases as seen with vte when a Component is set to a particular size before being added though. (It does solve one other issue I was seeing where my app was hiding an Component by setting its size to 0, previously we would ignore such a reshape call...) I think this is the best we can do for now without doing something much more tricky such hooking into things like endLayout which we don't currently seem to support anyway. And it solve the crashes I was seeing which I think is a more important issue then the jumping components problem. Yes, I agree. This patch looks good, and even avoids force-realizing widgets with gtk_widget_realize, while satisfying the AWT's peer-creation criteria. One small request: that you expand Component.addNotify's javadocs to describe these criteria clearly for future reference. Thanks, Tom
Re: GtkComponentPeer realization
On Fri, 2006-03-03 at 16:05 -0500, Thomas Fitzsimmons wrote: Yes, I agree. This patch looks good, and even avoids force-realizing widgets with gtk_widget_realize, while satisfying the AWT's peer-creation criteria. One small request: that you expand Component.addNotify's javadocs to describe these criteria clearly for future reference. Good point. I only realized (pun intended) that setParent() would do the right thing in the constructor because of the way addNotify() is called. Documented as follows: 2006-03-03 Mark Wielaard [EMAIL PROTECTED] * java/awt/Component.java (addNotify): Expand documentation. diff -u -r1.104 Component.java --- java/awt/Component.java 28 Feb 2006 11:27:15 - 1.104 +++ java/awt/Component.java 3 Mar 2006 21:10:40 - @@ -3426,10 +3426,11 @@ } /** - * Called to inform this component it has been added to a container. - * A native peer - if any - is created at this time. This method is - * called automatically by the AWT system and should not be called by - * user level code. + * Called when the parent of this Component is made visible or when + * the Component is added to an already visible Container and needs + * to be shown. A native peer - if any - is created at this + * time. This method is called automatically by the AWT system and + * should not be called by user level code. * * @see #isDisplayable() * @see #removeNotify() signature.asc Description: This is a digitally signed message part
[Bug swing/26521] JTable does not initialise correctly, testcase included
--- Comment #3 from asraniel at fryx dot ch 2006-03-03 00:03 --- its true that its a strange bug. but i think it breaks my application i wrote one year ago for the final exams. i would show it to you, but its french, its about a subject that nobody (even i, i just had the task list and implemented it) understands and i dont know if im allowed to give it away because i did it at school for the school. if i have some time i'll try it out a little bit more -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26521 ___ Bug-classpath mailing list Bug-classpath@gnu.org http://lists.gnu.org/mailman/listinfo/bug-classpath
[commit-cp] classpath ./ChangeLog java/math/BigDecimal.java [generics-branch]
CVSROOT:/cvsroot/classpath Module name:classpath Branch: generics-branch Changes by: Anthony Balkissoon [EMAIL PROTECTED] 06/03/01 17:04:22 Modified files: . : ChangeLog java/math : BigDecimal.java Log message: 2006-03-01 Anthony Balkissoon [EMAIL PROTECTED] * java/math/BigDecimal.java: (remainder(BigDecimal)): New method. (divideAndRemainder(BigDecimal)): Likewise. (divideToIntegralValue(BigDecimal)): Likewise. (floor): New implementation method. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?only_with_tag=generics-branchtr1=1.2386.2.209tr2=1.2386.2.210r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/java/math/BigDecimal.java.diff?only_with_tag=generics-branchtr1=1.17.2.14tr2=1.17.2.15r1=textr2=text
[commit-cp] classpath ./ChangeLog javax/xml/validation/Sche...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Chris Burdess [EMAIL PROTECTED] 06/03/03 19:19:02 Modified files: . : ChangeLog javax/xml/validation: SchemaFactory.java Added files: gnu/xml/validation/relaxng: AnyNameNameClass.java AttributePattern.java ChoiceNameClass.java ChoicePattern.java DataPattern.java Define.java ElementPattern.java EmptyPattern.java FullSyntaxBuilder.java Grammar.java GrammarException.java GrammarValidator.java GroupPattern.java InterleavePattern.java ListPattern.java NSNameNameClass.java NameClass.java NameNameClass.java NotAllowedPattern.java OneOrMorePattern.java Param.java Pattern.java RELAXNGSchemaFactory.java RefPattern.java TextPattern.java ValuePattern.java gnu/xml/validation/xmlschema: AnyAttribute.java AttributeDeclaration.java AttributeUse.java ComplexType.java ElementDeclaration.java Particle.java ValidationException.java XMLSchema.java XMLSchemaAttributeTypeInfo.java XMLSchemaBuilder.java XMLSchemaElementTypeInfo.java XMLSchemaSchemaFactory.java XMLSchemaTypeInfo.java XMLSchemaTypeInfoProvider.java XMLSchemaValidator.java XMLSchemaValidatorHandler.java Log message: 2006-03-03 Chris Burdess [EMAIL PROTECTED] * gnu/xml/validation/relaxng/AnyNameNameClass.java, gnu/xml/validation/relaxng/AttributePattern.java, gnu/xml/validation/relaxng/ChoiceNameClass.java, gnu/xml/validation/relaxng/ChoicePattern.java, gnu/xml/validation/relaxng/DataPattern.java, gnu/xml/validation/relaxng/Define.java, gnu/xml/validation/relaxng/ElementPattern.java, gnu/xml/validation/relaxng/EmptyPattern.java, gnu/xml/validation/relaxng/FullSyntaxBuilder.java, gnu/xml/validation/relaxng/Grammar.java, gnu/xml/validation/relaxng/GrammarException.java, gnu/xml/validation/relaxng/GrammarValidator.java, gnu/xml/validation/relaxng/GroupPattern.java, gnu/xml/validation/relaxng/InterleavePattern.java, gnu/xml/validation/relaxng/ListPattern.java, gnu/xml/validation/relaxng/NSNameNameClass.java, gnu/xml/validation/relaxng/NameClass.java, gnu/xml/validation/relaxng/NameNameClass.java, gnu/xml/validation/relaxng/NotAllowedPattern.java, gnu/xml/validation/relaxng/OneOrMorePattern.java, gnu/xml/validation/relaxng/Param.java, gnu/xml/validation/relaxng/Pattern.java, gnu/xml/validation/relaxng/RELAXNGSchemaFactory.java, gnu/xml/validation/relaxng/RefPattern.java, gnu/xml/validation/relaxng/TextPattern.java, gnu/xml/validation/relaxng/ValuePattern.java: New RELAX NG grammar builder and data model. * gnu/xml/validation/xmlschema/AnyAttribute.java, gnu/xml/validation/xmlschema/AttributeDeclaration.java, gnu/xml/validation/xmlschema/AttributeUse.java, gnu/xml/validation/xmlschema/ComplexType.java, gnu/xml/validation/xmlschema/ElementDeclaration.java, gnu/xml/validation/xmlschema/Particle.java, gnu/xml/validation/xmlschema/ValidationException.java, gnu/xml/validation/xmlschema/XMLSchema.java, gnu/xml/validation/xmlschema/XMLSchemaAttributeTypeInfo.java, gnu/xml/validation/xmlschema/XMLSchemaBuilder.java, gnu/xml/validation/xmlschema/XMLSchemaElementTypeInfo.java, gnu/xml/validation/xmlschema/XMLSchemaSchemaFactory.java, gnu/xml/validation/xmlschema/XMLSchemaTypeInfo.java, gnu/xml/validation/xmlschema/XMLSchemaTypeInfoProvider.java, gnu/xml/validation/xmlschema/XMLSchemaValidator.java,
[commit-cp] classpath ./ChangeLog javax/swing/text/FlowView...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Roman Kennke [EMAIL PROTECTED]06/03/03 19:39:24 Modified files: . : ChangeLog javax/swing/text: FlowView.java Log message: 2006-03-03 Roman Kennke [EMAIL PROTECTED] * javax/swing/text/FlowView.java (FlowStrategy.layoutRow): Added check for rowCount == 0. (FlowStrategy.getLogicalView): Made method protected. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6583tr2=1.6584r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/swing/text/FlowView.java.diff?tr1=1.9tr2=1.10r1=textr2=text
[commit-cp] classpath/gnu/xml/validation/relaxng
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Chris Burdess [EMAIL PROTECTED] 06/03/03 19:05:13 classpath/gnu/xml/validation/relaxng Update of /cvsroot/classpath/classpath/gnu/xml/validation/relaxng In directory savannah:/tmp/cvs-serv19088/gnu/xml/validation/relaxng Log Message: Directory /cvsroot/classpath/classpath/gnu/xml/validation/relaxng added to the repository
[commit-cp] classpath javax/naming/AuthenticationNotSupport...
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Tom Tromey [EMAIL PROTECTED] 06/03/03 22:50:55 Modified files: javax/naming : AuthenticationNotSupportedException.java NameNotFoundException.java MalformedLinkException.java Binding.java NameClassPair.java InvalidNameException.java PartialResultException.java NoPermissionException.java InsufficientResourcesException.java TimeLimitExceededException.java CommunicationException.java NoInitialContextException.java ServiceUnavailableException.java NotContextException.java LimitExceededException.java LinkException.java InterruptedNamingException.java Reference.java OperationNotSupportedException.java ContextNotEmptyException.java LinkLoopException.java NameAlreadyBoundException.java AuthenticationException.java SizeLimitExceededException.java ConfigurationException.java CannotProceedException.java NamingException.java javax/naming/directory: InvalidAttributeIdentifierException.java SearchControls.java InvalidAttributesException.java InvalidSearchControlsException.java NoSuchAttributeException.java SearchResult.java SchemaViolationException.java AttributeModificationException.java InvalidSearchFilterException.java InvalidAttributeValueException.java AttributeInUseException.java ModificationItem.java javax/naming/spi: ResolveResult.java javax/naming/event: NamingExceptionEvent.java NamingEvent.java . : ChangeLog Log message: * javax/naming/NamingException.java (getExplanation): Javadoc fix. * javax/naming/spi/ResolveResult.java, javax/naming/event/NamingExceptionEvent.java, javax/naming/event/NamingEvent.java, javax/naming/directory/SearchResult.java, javax/naming/directory/SearchControls.java, javax/naming/directory/SchemaViolationException.java, javax/naming/directory/NoSuchAttributeException.java, javax/naming/directory/ModificationItem.java, javax/naming/directory/InvalidSearchFilterException.java, javax/naming/directory/InvalidSearchControlsException.java, javax/naming/directory/InvalidAttributesException.java, javax/naming/directory/InvalidAttributeIdentifierException.java, javax/naming/directory/AttributeModificationException.java, javax/naming/directory/AttributeInUseException.java, javax/naming/TimeLimitExceededException.java, javax/naming/SizeLimitExceededException.java, javax/naming/PartialResultException.java, javax/naming/Reference.java, javax/naming/ServiceUnavailableException.java, javax/naming/OperationNotSupportedException.java, javax/naming/NotContextException.java, javax/naming/NoPermissionException.java, javax/naming/NoInitialContextException.java, javax/naming/NameNotFoundException.java, javax/naming/NameAlreadyBoundException.java, javax/naming/NameClassPair.java, javax/naming/MalformedLinkException.java, javax/naming/LinkLoopException.java, javax/naming/LinkException.java, javax/naming/LimitExceededException.java, javax/naming/InvalidNameException.java, javax/naming/InterruptedNamingException.java, javax/naming/InsufficientResourcesException.java, javax/naming/ContextNotEmptyException.java, javax/naming/ConfigurationException.java, javax/naming/CannotProceedException.java, javax/naming/CommunicationException.java, javax/naming/Binding.java, javax/naming/AuthenticationNotSupportedException.java, javax/naming/AuthenticationException.java: Added serialVersionUID. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/naming/AuthenticationNotSupportedException.java.diff?tr1=1.3tr2=1.4r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/javax/naming/NameNotFoundException.java.diff?tr1=1.3tr2=1.4r1=textr2=text
[commit-cp] classpath ChangeLog NEWS
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Tom Tromey [EMAIL PROTECTED] 06/03/01 19:24:57 Modified files: . : ChangeLog NEWS Log message: * NEWS: Mention java.util.prefs update. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6549tr2=1.6550r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/NEWS.diff?tr1=1.115tr2=1.116r1=textr2=text
[commit-cp] classpath java/awt/Toolkit.java ./ChangeLog
CVSROOT:/cvsroot/classpath Module name:classpath Branch: Changes by: Roman Kennke [EMAIL PROTECTED]06/03/03 19:49:05 Modified files: java/awt : Toolkit.java . : ChangeLog Log message: 2006-03-03 Roman Kennke [EMAIL PROTECTED] * java/awt/Toolkit.java (getScreenInsets): Return (0,0,0,0) here. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/java/awt/Toolkit.java.diff?tr1=1.34tr2=1.35r1=textr2=text http://cvs.savannah.gnu.org/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.6584tr2=1.6585r1=textr2=text