Re: [cp-patches] __attribute__ patch (Was: Re: RFC: __attribute__ handling)

2005-10-06 Thread Christian Thalinger
On Wed, 2005-10-05 at 13:12 -0600, Tom Tromey wrote:
  Twisti == Christian Thalinger [EMAIL PROTECTED] writes:
 
 Twisti Here is the actual patch.  Tested on IRIX with MIPSPro compiler.
 
 I'm checking this in.
 
 FWIW a patch like this is easier to apply if you use 'cvs diff -N' to
 get the new files in the patch for real.  The 'cvsdo' utility can
 fake a cvs add if you don't have write permission...

Ahh, great!  That was my problem, thanks for the hint.

TWISTI



___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


[cp-patches] RFC: VMClassLoader : hashmap for jars from property java.boot.class.path

2005-10-06 Thread Nicolas Geoffray

Hi,

I improved the reference implementation of VMClassLoader.getRessources 
by adding a static HashMap which is filled when a boot zip is opened 
(typically glibj.zip). In the previous implementation, the code kept 
opening and closing the zip file.


Another solution would be to have a static initializer for VMClassLoader 
which would parse the java.boot.class.path property, and puts the files 
into a static Enumeration object. I tried this solution too, but 
performance isn't improved and it results in all boot files opened.


Comments welcomed

2005-10-06  Nicolas Geoffray  [EMAIL PROTECTED]

* vm/reference/java/lang/VMClassLoader.java
   (getResources): uses a new static field HashMap to
   store opened zip files from property java.boot.class.path.



Cheers,
Nicolas


--- classpath-0.18/vm/reference/java/lang/VMClassLoader.java	2005-10-06 10:26:34.0 +0200
+++ classpath-0.18-jnjvm/vm/reference/java/lang/VMClassLoader.java	2005-10-06 14:47:02.0 +0200
@@ -119,6 +119,9 @@
 return null;
   }
 
+  /** jars from property java.boot.class.path */
+  static final HashMap bootjars = new HashMap();
+  
   /**
* Helper to get a list of resources from the bootstrap class loader.
*
@@ -139,8 +142,9 @@
 	  {
 	try
 	  {
-		v.add(new URL(file://
-		  + new File(file, name).getAbsolutePath()));
+File f = new File(file, name);
+if(!f.exists()) continue;
+v.add(new URL(file:// + f.getAbsolutePath()));
 	  }
 	catch (MalformedURLException e)
 	  {
@@ -150,30 +154,28 @@
 	else if (file.isFile())
 	  {
 	ZipFile zip;
-	try
-	  {
-		zip = new ZipFile(file);
-	  }
-	catch (IOException e)
-	  {
-		continue;
-	  }
-	String zname = name.startsWith(/) ? name.substring(1) : name;
-	try
-	  {
-		if (zip.getEntry(zname) == null)
+synchronized(bootjars)
+  {
+zip = (ZipFile) bootjars.get(file.getName());
+  }
+if(zip == null)
+  {
+try
+	  {
+zip = new ZipFile(file);
+synchronized(bootjars)
+  {
+bootjars.put(file.getName(), zip);
+  }
+	  }
+	catch (IOException e)
+	  {
 		continue;
-	  }
-	finally
-	  {
-		try
-		  {
-		zip.close();
-		  }
-		catch (IOException e)
-		  {
-		  }
-	  }
+	  }
+  }
+	String zname = name.startsWith(/) ? name.substring(1) : name;
+	if (zip.getEntry(zname) == null)
+	  continue;
 	try
 	  {
 		v.add(new URL(jar:file://
___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


[cp-patches] [generics] Patch: FYI: minor java.util fixes

2005-10-06 Thread Tom Tromey
s
From:  Tom Tromey [EMAIL PROTECTED]
Reply-To:  [EMAIL PROTECTED]
BCC:  Tom Tromey [EMAIL PROTECTED]
X-Attribution:  Tom
Date: 06 Oct 2005 07:35:10 -0600
Message-ID: [EMAIL PROTECTED]
Lines: 319
User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii

I'm checking this in on the generics branch.

This fixes a few problems in java.util that were pointed out by japi.

Tom

2005-10-06  Tom Tromey  [EMAIL PROTECTED]

* java/util/ListResourceBundle.java (getKeys): Fixed return type.
* java/util/ResourceBundle.java (getKeys): Fixed return type.
* java/util/AbstractMap.java (entrySet): Fixed return type.
(clone): Updated.
(equals): Likewise.
(iterator): Likewise.
* java/util/Collections.java (fill): Fixed argument type.
(reverse): Likewise.
(unmodifiableCollection): Likewise.
(UnmodifiableCollection): Likewise.
(UnmodifiableIterator): Likewise.
(unmodifiableSet): Likewise.
(UnmodifiableSet): Likewise.
(unmodifiableList): Likewise.
* java/util/TreeSet.java (TreeSet(SortedSetT)): Fixed argument
type.
(headSet): Fixed return type.
* java/util/StringTokenizer.java: Implements EnumerationObject.

Index: java/util/AbstractMap.java
===
RCS file: /cvsroot/classpath/classpath/java/util/AbstractMap.java,v
retrieving revision 1.26.2.5
diff -u -r1.26.2.5 AbstractMap.java
--- java/util/AbstractMap.java  2 Aug 2005 20:12:29 -   1.26.2.5
+++ java/util/AbstractMap.java  6 Oct 2005 13:38:17 -
@@ -105,7 +105,7 @@
* @return the entry set
* @see Map.Entry
*/
-  public abstract Set entrySet();
+  public abstract SetMap.EntryK, V entrySet();
 
   /**
* Remove all entries from this Map (optional operation). This default
@@ -134,7 +134,7 @@
*/
   protected Object clone() throws CloneNotSupportedException
   {
-AbstractMap copy = (AbstractMap) super.clone();
+AbstractMapK, V copy = (AbstractMapK, V) super.clone();
 // Clear out the caches; they are stale.
 copy.keys = null;
 copy.values = null;
@@ -201,7 +201,7 @@
   {
 return (o == this
|| (o instanceof Map
-entrySet().equals(((Map) o).entrySet(;
+entrySet().equals(((MapK, V) o).entrySet(;
   }
 
   /**
@@ -310,7 +310,7 @@
 */
 public IteratorK iterator()
 {
-  return new Iterator()
+  return new IteratorK()
   {
/**
 * The iterator returned by codeentrySet()/code.
@@ -400,11 +400,14 @@
*/
   public void putAll(Map? extends K, ? extends V m)
   {
-IteratorMap.EntryK, V entries = ((MapK,V) m).entrySet().iterator();
+// FIXME: bogus circumlocution.
+Iterator entries2 = m.entrySet().iterator();
+IteratorMap.Entry? extends K, ? extends V entries
+  = (IteratorMap.Entry? extends K, ? extends V) entries2;
 int pos = m.size();
 while (--pos = 0)
   {
-Map.EntryK, V entry = entries.next();
+Map.Entry? extends K, ? extends V entry = entries.next();
 put(entry.getKey(), entry.getValue());
   }
   }
@@ -543,7 +546,7 @@
 */
 public IteratorV iterator()
 {
-  return new Iterator()
+  return new IteratorV()
   {
/**
 * The iterator returned by codeentrySet()/code.
Index: java/util/Collections.java
===
RCS file: /cvsroot/classpath/classpath/java/util/Collections.java,v
retrieving revision 1.28.2.16
diff -u -r1.28.2.16 Collections.java
--- java/util/Collections.java  20 Sep 2005 18:46:30 -  1.28.2.16
+++ java/util/Collections.java  6 Oct 2005 13:38:18 -
@@ -820,9 +820,9 @@
* @throws UnsupportedOperationException if l.listIterator() does not
* support the set operation.
*/
-  public static T void fill(ListT l, T val)
+  public static T void fill(List? super T l, T val)
   {
-ListIteratorT itr = l.listIterator();
+ListIterator? super T itr = l.listIterator();
 for (int i = l.size() - 1; i = 0; --i)
   {
itr.next();
@@ -1178,17 +1178,18 @@
* @throws UnsupportedOperationException if l.listIterator() does not
* support the set operation
*/
-  public static T void reverse(ListT l)
+  public static void reverse(List? l)
   {
-ListIteratorT i1 = l.listIterator();
+ListIterator i1 = l.listIterator();
 int pos1 = 1;
 int pos2 = l.size();
-ListIteratorT i2 = l.listIterator(pos2);
+ListIterator i2 = l.listIterator(pos2);
 while (pos1  pos2)
   {
-   T o = i1.next();
-   i1.set(i2.previous());
-   i2.set(o);
+   Object o1 = i1.next();
+Object o2 = i2.previous();
+   i1.set(o2);
+   i2.set(o1);
++pos1;
--pos2;
   }
@@ -4183,7 

Re: [cp-patches]: FYI: JTree fix

2005-10-06 Thread Lillian Angel
The click-area for a leaf was slightly off. Fixed.

2005-10-06  Lillian Angel  [EMAIL PROTECTED]

* javax/swing/plaf/basic/BasicTreeUI.java
(mousePressed): Shouldn't change x location for leaf.



On Wed, 2005-10-05 at 17:49 -0400, Lillian Angel wrote:
 Small fix. Added in a comment as a reminder to fix last bit of painting
 problem.
 
 2005-10-05  Lillian Angel  [EMAIL PROTECTED]
 
 * javax/swing/plaf/basic/BasicTreeUI.java
 (paintRow): Fixed indentation.
 (updateCurrentVisiblePath): Added FIXME
 comment.
 
 
 
 On Wed, 2005-10-05 at 17:28 -0400, Lillian Angel wrote:
  Fixed up BasicTreeUI because it was not efficent when painting.
  
  2005-10-05  Lillian Angel  [EMAIL PROTECTED]
  
  * javax/swing/plaf/metal/MetalTreeUI.java
  (installUI): Fixed to call toggleExpandState instead.
  * javax/swing/plaf/basic/BasicTreeUI.java
  (getPathForRow): Used currentVisiblePath to get Path.
  (getRowForPath): Used currentVisiblePath to get row.
  (getRowCount): Returned currentVisiblePath length.
  (updateLayoutCacheExpandedNodes): Took out unneeded code.
  (installUI): Fixed to call toggleExpandState instead.
  (getPreferredSize): Made more efficent by using 
  currentVisiblePath.
  (toggleExpandState): Called updateCurrentVisiblePath.
  (getCellLocation): Made more efficent.
  (paintNode): Removed.
  (paintRecursive): Made more efficent, changed paintNode calls to
  paintRow.
  (getNextVisibleNode): Reimplemented to use currentVisiblePath.
  (getPreviousVisibleNode): Likewise.
  (paintRow): Implemented.
  (updateCurrentVisiblePath): New helper used to cache the current
  visible path.
  
  ___
  Classpath-patches mailing list
  Classpath-patches@gnu.org
  http://lists.gnu.org/mailman/listinfo/classpath-patches
 ___
 Classpath-patches mailing list
 Classpath-patches@gnu.org
 http://lists.gnu.org/mailman/listinfo/classpath-patches
Index: javax/swing/plaf/basic/BasicTreeUI.java
===
RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicTreeUI.java,v
retrieving revision 1.86
diff -u -r1.86 BasicTreeUI.java
--- javax/swing/plaf/basic/BasicTreeUI.java	5 Oct 2005 21:50:17 -	1.86
+++ javax/swing/plaf/basic/BasicTreeUI.java	6 Oct 2005 13:43:00 -
@@ -2278,10 +2278,7 @@
   boolean cntlClick = isLocationInExpandControl(path, click.x, click.y);
   
   if (isLeaf(row))
-{
-  bounds.x -= rightChildIndent - 4;
   bounds.width += rightChildIndent + 4;
-}
   else if (tree.isExpanded(path)  expandedIcon != null)
   bounds.width += expandedIcon.getIconWidth() + 4;
   else if (collapsedIcon != null)
___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


[cp-patches] FYI: Completed BasicRootPaneUI

2005-10-06 Thread Roman Kennke
Hi,

I added the missing methods in BasicRootPaneUI.

2005-10-06  Roman Kennke  [EMAIL PROTECTED]

* javax/swing/plaf/basic/BasicRootPaneUI.java
(installUI): Call new hook methods.
(installDefaults): New hook method.
(installComponents): New hook method.
(installListeners): New hook method.
(installKeyboardActions): New hook method.
(uninstallUI): New method.
(uninstallDefaults): New hook method.
(uninstallComponents): New hook method.
(uninstallListeners): New hook method.
(uninstallKeyboardActions): New hook method.

/Roman
Index: javax/swing/plaf/basic/BasicRootPaneUI.java
===
RCS file: /cvsroot/classpath/classpath/javax/swing/plaf/basic/BasicRootPaneUI.java,v
retrieving revision 1.8
diff -u -r1.8 BasicRootPaneUI.java
--- javax/swing/plaf/basic/BasicRootPaneUI.java	2 Jul 2005 20:32:50 -	1.8
+++ javax/swing/plaf/basic/BasicRootPaneUI.java	6 Oct 2005 13:49:56 -
@@ -42,6 +42,7 @@
 import java.beans.PropertyChangeListener;
 
 import javax.swing.JComponent;
+import javax.swing.JRootPane;
 import javax.swing.UIManager;
 import javax.swing.plaf.ComponentUI;
 import javax.swing.plaf.RootPaneUI;
@@ -56,11 +57,126 @@
 
   public void installUI(JComponent c)
   {
-c.setBackground(UIManager.getColor(control));
 super.installUI(c);
+if (c instanceof JRootPane)
+  {
+JRootPane rp = (JRootPane) c;
+installDefaults(rp);
+installComponents(rp);
+installListeners(rp);
+installKeyboardActions(rp);
+  }
+  }
+
+  /**
+   * Installs the look and feel defaults for JRootPane.
+   *
+   * @param rp the root pane to install the defaults to
+   */
+  protected void installDefaults(JRootPane rp)
+  {
+// Is this ok?
+rp.setBackground(UIManager.getColor(control));
+  }
+
+  /**
+   * Installs additional look and feel components to the root pane.
+   *
+   * @param rp the root pane to install the components to
+   */
+  protected void installComponents(JRootPane rp)
+  {
+// All components are initialized in the JRootPane constructor, and since
+// the createXXXPane methods are protected, I see no reasonable way,
+// and no need to initialize them here. This method is here anyway
+// for compatibility and to provide the necessary hooks to subclasses.
+  }
+
+  /**
+   * Installs any look and feel specific listeners on the root pane.
+   *
+   * @param rp the root pane to install the listeners to
+   */
+  protected void installListeners(JRootPane rp)
+  {
+rp.addPropertyChangeListener(this);
+  }
+
+  /**
+   * Installs look and feel keyboard actions on the root pane.
+   *
+   * @param rp the root pane to install the keyboard actions to
+   */
+  protected void installKeyboardActions(JRootPane rp)
+  {
+// We currently do not install any keyboard actions here.
+// This method is here anyway for compatibility and to provide
+// the necessary hooks to subclasses.
   }
 
   public void propertyChange(PropertyChangeEvent event)
   {
+  }
+
+  /**
+   * Uninstalls this UI from the root pane. This calls
+   * [EMAIL PROTECTED] #uninstallDefaults}, [EMAIL PROTECTED] #uninstallComponents},
+   * [EMAIL PROTECTED] #uninstallListeners}, [EMAIL PROTECTED] #uninstallKeyboardActions}
+   * in this order.
+   *
+   * @param c the root pane to uninstall the UI from
+   */
+  public void uninstallUI(JComponent c)
+  {
+super.uninstallUI(c);
+if (c instanceof JRootPane)
+  {
+JRootPane rp = (JRootPane) c;
+uninstallDefaults(rp);
+uninstallComponents(rp);
+uninstallListeners(rp);
+uninstallKeyboardActions(rp);
+  }
+  }
+
+  /**
+   * Uninstalls the look and feel defaults that have been installed in
+   * [EMAIL PROTECTED] #installDefaults}.
+   *
+   * @param rp the root pane to uninstall the defaults from
+   */
+  protected void uninstallDefaults(JRootPane rp)
+  {
+// We do nothing here.
+  }
+
+  /**
+   * Uninstalls look and feel components from the root pane.
+   *
+   * @param rp the root pane to uninstall the components from
+   */
+  protected void uninstallComponents(JRootPane rp)
+  {
+// We do nothing here.
+  }
+
+  /**
+   * Uninstalls any look and feel specific listeners from the root pane.
+   *
+   * @param rp the root pane to uninstall the listeners from
+   */
+  protected void uninstallListeners(JRootPane rp)
+  {
+rp.removePropertyChangeListener(this);
+  }
+
+  /**
+   * Uninstalls look and feel keyboard actions from the root pane.
+   *
+   * @param rp the root pane to uninstall the keyboard actions from
+   */
+  protected void uninstallKeyboardActions(JRootPane rp)
+  {
+// We do nothing here.
   }
 }___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


[cp-patches] FYI: JLabel fixlet

2005-10-06 Thread Roman Kennke
A mauve test that I just committed shows that JLabels should have an
alignmentX of 0.0F. Fixed.

2005-10-06  Roman Kennke  [EMAIL PROTECTED]

* javax/swing/JLabel.java
(JLabel): Set alignmentX value to 0.0F.


/Roman
Index: javax/swing/JLabel.java
===
RCS file: /cvsroot/classpath/classpath/javax/swing/JLabel.java,v
retrieving revision 1.26
diff -u -r1.26 JLabel.java
--- javax/swing/JLabel.java	22 Sep 2005 14:48:05 -	1.26
+++ javax/swing/JLabel.java	6 Oct 2005 19:42:53 -
@@ -400,6 +400,7 @@
 this.text = text;
 this.icon = icon;
 this.horizontalAlignment = horizontalAlignment;
+setAlignmentX(0.0F);
 updateUI();
   }
 ___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


[cp-patches] FYI: locking implemented for AbstractDocument

2005-10-06 Thread Anthony Balkissoon
This patch implements locking for AbstractDocument.  Note that other
classes that extend this and override methods like insertString and
remove, or classes that in other ways alter the Document, should call
writeLock() before altering the Document and writeUnlock() after doing
so.  This isn't currently done and will need to be fixed shortly.

2005-10-06  Anthony Balkissoon  [EMAIL PROTECTED]

* javax/swing/text/AbstractDocument.java: Implemeted locking.
(insertString): Obtain write lock before altering document.
(readLock): Implemented.
(readUnlock): Implemented.
(remove): Obtain write lock before altering document.
(render): Implemented.
(writeLock): Implemented.
(writeUnlock): Implemented.
(getCurrentWriter): Implemented.

--Tony
Index: javax/swing/text/AbstractDocument.java
===
RCS file: /cvsroot/classpath/classpath/javax/swing/text/AbstractDocument.java,v
retrieving revision 1.32
diff -u -r1.32 AbstractDocument.java
--- javax/swing/text/AbstractDocument.java	5 Oct 2005 15:19:47 -	1.32
+++ javax/swing/text/AbstractDocument.java	6 Oct 2005 19:49:22 -
@@ -127,8 +127,29 @@
* Manages event listeners for this codeDocument/code.
*/
   protected EventListenerList listenerList = new EventListenerList();
+  
+  /**
+   * Stores the current writer thread.  Used for locking.
+   */ 
+  private Thread currentWriter = null;
+  
+  /**
+   * The number of readers.  Used for locking.
+   */
+  private int numReaders = 0;
+  
+  /**
+   * Tells if there are one or more writers waiting.
+   */
+  private int numWritersWaiting = 0;  
 
   /**
+   * A condition variable that readers and writers wait on.
+   */
+  Object documentCV = new Object();
+
+  
+  /**
* Creates a new codeAbstractDocument/code with the specified
* [EMAIL PROTECTED] Content} model.
*
@@ -347,8 +368,7 @@
*/
   protected Thread getCurrentWriter()
   {
-// FIXME: Implement locking!
-return null;
+return currentWriter;
   }
 
   /**
@@ -520,7 +540,10 @@
   new DefaultDocumentEvent(offset, text.length(),
 			   DocumentEvent.EventType.INSERT);
 
+writeLock();
 UndoableEdit temp = content.insertString(offset, text);
+writeUnlock();
+
 GapContent.UndoInsertString changes = null;
 if (content instanceof GapContent)
   changes = (GapContent.UndoInsertString) temp;
@@ -587,10 +610,28 @@
   }
 
   /**
-   * Blocks until a read lock can be obtained.
+   * Blocks until a read lock can be obtained.  Must block if there is
+   * currently a writer modifying the codeDocument/code.
*/
   public void readLock()
   {
+if (currentWriter != null  currentWriter.equals(Thread.currentThread()))
+  return;
+synchronized (documentCV)
+  {
+while (currentWriter != null || numWritersWaiting  0)
+  {
+try
+  {
+documentCV.wait();
+  }
+catch (InterruptedException ie)
+  {
+throw new Error(interrupted trying to get a readLock);
+  }
+  }
+  numReaders++;
+  }
   }
 
   /**
@@ -599,6 +640,40 @@
*/
   public void readUnlock()
   {
+// Note we could have a problem here if readUnlock was called without a
+// prior call to readLock but the specs simply warn users to ensure that
+// balance by using a finally block:
+// readLock()
+// try
+// { 
+//   doSomethingHere 
+// }
+// finally
+// {
+//   readUnlock();
+// }
+
+// All that the JDK seems to check for is that you don't call unlock
+// more times than you've previously called lock, but it doesn't make
+// sure that the threads calling unlock were the same ones that called lock
+
+// FIXME: the reference implementation throws a 
+// javax.swing.text.StateInvariantError here
+if (numReaders == 0)
+  throw new IllegalStateException(document lock failure);
+
+synchronized (documentCV)
+{
+  // If currentWriter is not null, the application code probably had a 
+  // writeLock and then tried to obtain a readLock, in which case 
+  // numReaders wasn't incremented
+  if (currentWriter == null)
+{
+  numReaders --;
+  if (numReaders == 0  numWritersWaiting != 0)
+documentCV.notify();
+}
+}
   }
 
   /**
@@ -633,7 +708,9 @@
 added[0] = root.getElement(start);
 boolean shouldFire = content.getString(offset, length).length() != 0;
 
+writeLock();
 UndoableEdit temp = content.remove(offset, length);
+writeUnlock();
 
 postRemoveUpdate(event);
 
@@ -764,7 +841,15 @@
*/
   public void render(Runnable runnable)
   {
-// FIXME: Implement me!
+readLock();
+try
+{
+  runnable.run();
+}
+finally
+{
+  readUnlock();
+}
   }
 
   /**
@@ 

[cp-patches] FYI: some styled text fixes

2005-10-06 Thread Roman Kennke
Hi,

I hacked some more in the views in javax.swing.text, and now we can
display some styled text again:

http://kennke.org/~roman/styledtext.png

2005-10-06  Roman Kennke  [EMAIL PROTECTED]
* javax/swing/text/BoxView.java
(paint): Only call paintChild if child allocation is not empty.
(layout): Don't store the width and height fields here.
(setSize): Store the width and height fields here. *
javax/swing/text/CompositeView.java
(getViewIndexAtPosition): Reworked child view searching.
(getInsideAllocation): Fixed insets calculation.
* javax/swing/text/FlowView.java
(FlowStrategy.layoutRow): Return an offset of -1 if no more child
views are in the logical view.
(FlowStrategy.createView): If there are no more child views,
then return null.
(LogicalView.getViewIndex): New method. Implements child view
searching for the LogicalView.
* javax/swing/text/GlyphView.java
(DefaultGlyphPainter.getHeight): Use Toolkit FontMetrics instead
of parent containers FontMetrics.
(DefaultGlyphPainter.getSpan): Use Toolkit FontMetrics instead
of parent containers FontMetrics.
* javax/swing/text/Utilities.java
(getTabbedTextOffset): Check for 0 in the char array and stop
there.
* javax/swing/text/View.java
(getContainer): If there's no parent, don't throw an Error, instead
return null as specified.

/RomanIndex: javax/swing/text/BoxView.java
===
RCS file: /cvsroot/classpath/classpath/javax/swing/text/BoxView.java,v
retrieving revision 1.5
diff -u -r1.5 BoxView.java
--- javax/swing/text/BoxView.java	5 Oct 2005 21:46:41 -	1.5
+++ javax/swing/text/BoxView.java	6 Oct 2005 20:14:51 -
@@ -295,18 +295,19 @@
   {
 // Adjust size if the size is changed.
 Rectangle bounds = a.getBounds();
+
 if (bounds.width != getWidth() || bounds.height != getHeight())
   setSize(bounds.width, bounds.height);
 
 Rectangle inside = getInsideAllocation(a);
-
 Rectangle copy = new Rectangle(inside);
 int count = getViewCount();
 for (int i = 0; i  count; ++i)
   {
 copy.setBounds(inside);
 childAllocation(i, copy);
-paintChild(g, copy, i);
+if (!copy.isEmpty())
+  paintChild(g, copy, i);
   }
   }
 
@@ -522,9 +523,6 @@
*/
   protected void layout(int width, int height)
   {
-this.width = width;
-this.height = height;
-
 baselineLayout(width, X_AXIS, offsetsX, spansX);
 baselineLayout(height, Y_AXIS, offsetsY, spansY);
   }
@@ -614,6 +612,9 @@
   layoutChanged(X_AXIS);
 if (this.height != (int) height)
   layoutChanged(Y_AXIS);
+
+this.width = (int) width;
+this.height = (int) height;
 
 Rectangle outside = new Rectangle(0, 0, this.width, this.height);
 Rectangle inside = getInsideAllocation(outside);
Index: javax/swing/text/CompositeView.java
===
RCS file: /cvsroot/classpath/classpath/javax/swing/text/CompositeView.java,v
retrieving revision 1.6
diff -u -r1.6 CompositeView.java
--- javax/swing/text/CompositeView.java	13 Sep 2005 23:44:49 -	1.6
+++ javax/swing/text/CompositeView.java	6 Oct 2005 20:14:51 -
@@ -434,10 +434,16 @@
*/
   protected int getViewIndexAtPosition(int pos)
   {
-// We have one child view allocated for each child element in
-// loadChildren(), so this should work.
-Element el = getElement();
-int index = el.getElementIndex(pos);
+int index = -1;
+for (int i = 0; i  children.length; i++)
+  {
+if (children[i].getStartOffset() = pos
+ children[i].getEndOffset()  pos)
+  {
+index = i;
+break;
+  }
+  }
 return index;
   }
 
@@ -474,8 +480,8 @@
 insideAllocation = inside;
   }
   }
-inside.x = alloc.x - insets.left;
-inside.y = alloc.y - insets.top;
+inside.x = alloc.x + insets.left;
+inside.y = alloc.y + insets.top;
 inside.width = alloc.width - insets.left - insets.right;
 inside.height = alloc.height - insets.top - insets.bottom;
 return inside;
Index: javax/swing/text/FlowView.java
===
RCS file: /cvsroot/classpath/classpath/javax/swing/text/FlowView.java,v
retrieving revision 1.2
diff -u -r1.2 FlowView.java
--- javax/swing/text/FlowView.java	25 Aug 2005 19:11:50 -	1.2
+++ javax/swing/text/FlowView.java	6 Oct 2005 20:14:51 -
@@ -42,6 +42,7 @@
 import java.awt.Graphics;
 import java.awt.Rectangle;
 import java.awt.Shape;
+import java.util.Iterator;
 import java.util.Vector;
 
 import javax.swing.event.DocumentEvent;
@@ -183,11 +184,17 @@
 {
   View child = createView(fv, offset, spanLeft, rowIndex);
   if (child == null)
-   

[cp-patches] FYI: complete javax.imageio.metadata.IIOMetadata

2005-10-06 Thread Thomas Fitzsimmons
Hi,

This patch completes the 1.5 API coverage for
javax.imageio.metadata.IIOMetadata.  I added the general description
javadocs but not per-method javadocs.

Tom

2005-10-06  Thomas Fitzsimmons  [EMAIL PROTECTED]

* javax/imageio/metadata/IIOMetadata.java: Complete.

Index: javax/imageio/metadata/IIOMetadata.java
===
RCS file: /cvsroot/classpath/classpath/javax/imageio/metadata/IIOMetadata.java,v
retrieving revision 1.3
diff -u -r1.3 IIOMetadata.java
--- javax/imageio/metadata/IIOMetadata.java	2 Jul 2005 20:32:45 -	1.3
+++ javax/imageio/metadata/IIOMetadata.java	6 Oct 2005 20:43:14 -
@@ -38,8 +38,41 @@
 
 package javax.imageio.metadata;
 
+import org.w3c.dom.Node;
+
 /**
+ * Represents metadata that describe an image or an image stream.
+ * Each ImageIO plugin will represent image data using an opaque
+ * object but all such objects should expose their internal
+ * information as a tree of IIOMetadataNodes.
+ *
+ * There are three formats of metadata that a plugin can support:
+ *
+ * ul
+ *   lia native format/li
+ *   lia custom format/li
+ *   lia standard plugin-neutral format/li
+ * /ul
+ *
+ * If a plugin supports more than one format of metadata, the other
+ * formats can be retrieved by calling getMetadataFormatNames.
+ *
+ * The native format is used to transfer metadata from one image to
+ * another image of the same type, losslessly.
+ *
+ * The custom format describes the image metadata and exposes a tree
+ * of IIOMetadataNodes but its internal representation is specific to
+ * this plugin.
+ *
+ * The plugin-neutral format uses a generic tree structure as its
+ * internal representation.
+ *
+ * ImageTranscoders may be used to convert metadata understood by one
+ * plugin to metadata understood by another, however the conversion
+ * may be lossy.
+ *
  * @author Michael Koch ([EMAIL PROTECTED])
+ * @author Thomas Fitzsimmons ([EMAIL PROTECTED])
  */
 public abstract class IIOMetadata
 {
@@ -52,7 +85,7 @@
   protected boolean standardFormatSupported;
 
   /**
-   * Creates a codeIIOMetaData/code object.
+   * Construct an IIOMetadata object.
*/
   protected IIOMetadata()
   {
@@ -60,7 +93,7 @@
   }
 
   /**
-   * Creates a codeIIOMetaData/code object with the given arguments.
+   * Construct an IIOMetadata object.
*
* @param standardMetadataFormatSupported
* @param nativeMetadataFormatName
@@ -209,5 +242,82 @@
   public void setController(IIOMetadataController controller)
   {
 this.controller = controller;
+  }
+
+  public abstract Node getAsTree (String formatName);
+
+  protected IIOMetadataNode getStandardChromaNode ()
+  {
+return null;
+  }
+
+  protected IIOMetadataNode getStandardCompressionNode ()
+  {
+return null;
+  }
+
+  protected IIOMetadataNode getStandardDataNode ()
+  {
+return null;
+  }
+
+  protected IIOMetadataNode getStandardDimensionNode ()
+  {
+return null;
+  }
+
+  protected IIOMetadataNode getStandardDocumentNode ()
+  {
+return null;
+  }
+
+  protected IIOMetadataNode getStandardTextNode ()
+  {
+return null;
+  }
+
+  protected IIOMetadataNode getStandardTileNode ()
+  {
+return null;
+  }
+
+  protected IIOMetadataNode getStandardTransparencyNode ()
+  {
+return null;
+  }
+
+  private void appendChild (IIOMetadataNode node,
+			IIOMetadataNode child)
+  {
+if (child != null)
+  node.appendChild(child);
+  }
+
+  protected final IIOMetadataNode getStandardTree ()
+  {
+IIOMetadataNode node = new IIOMetadataNode();
+
+appendChild (node, getStandardChromaNode());
+appendChild (node, getStandardCompressionNode());
+appendChild (node, getStandardDataNode());
+appendChild (node, getStandardDimensionNode());
+appendChild (node, getStandardDocumentNode());
+appendChild (node, getStandardTextNode());
+appendChild (node, getStandardTileNode());
+appendChild (node, getStandardTransparencyNode());
+
+return node;
+  }
+
+  public abstract void mergeTree (String formatName,
+  Node root)
+throws IIOInvalidTreeException;
+
+  public void setFromTree (String formatName, Node root)
+throws IIOInvalidTreeException
+  {
+reset();
+
+mergeTree (formatName, root);
   }
 }
___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


[cp-patches] FYI: fixlet for PlainView

2005-10-06 Thread Anthony Balkissoon
This fix spans 2 commits because I made some errors in my first one.

Both patches are attached, the one with the 2 at the end of the name
is the second one. 

This fixes an NPE in PlainView by basically doing a ( != null) check.

(second patch)
2005-10-06  Anthony Balkissoon  [EMAIL PROTECTED]

* javax/swing/text/PlainView.java:
(determineMaxLength): Avoid NPE by checking the Segment that getText
returns.  No need to return Math.max (0, maxLineLength) because
maxLineLength is guaranteed to be 0 or greater.

(first patch)
2005-10-06  Anthony Balkissoon  [EMAIL PROTECTED]

* javax/swing/text/PlainView.java:
(determineMaxLength): If maxLineLength is -1 we should return 0.
(insertOrRemoveUpdate): Avoid NPE by checking the Segment that 
getText returns.

--Tony
Index: javax/swing/text/PlainView.java
===
RCS file: /cvsroot/classpath/classpath/javax/swing/text/PlainView.java,v
retrieving revision 1.15
diff -u -r1.15 PlainView.java
--- javax/swing/text/PlainView.java	5 Oct 2005 18:12:16 -	1.15
+++ javax/swing/text/PlainView.java	6 Oct 2005 20:43:21 -
@@ -250,7 +250,7 @@
   }
   }
 maxLineLength = span;
-return maxLineLength;
+return Math.max(maxLineLength, 0);
   }
   
   public float getPreferredSpan(int axis)
@@ -348,6 +348,10 @@
 catch (BadLocationException ex)
   {
   }
+
+
+if (seg == null || seg.array == null || seg.count == 0)
+  continue;
 
 int width = metrics.charsWidth(seg.array, seg.offset, seg.count);
 if (width  longestNewLength)
Index: javax/swing/text/PlainView.java
===
RCS file: /cvsroot/classpath/classpath/javax/swing/text/PlainView.java,v
retrieving revision 1.16
diff -u -r1.16 PlainView.java
--- javax/swing/text/PlainView.java	6 Oct 2005 20:45:12 -	1.16
+++ javax/swing/text/PlainView.java	6 Oct 2005 20:48:10 -
@@ -242,6 +242,10 @@
 catch (BadLocationException ex)
   {
   }
+
+if (seg == null || seg.array == null || seg.count == 0)
+  continue;
+
 int width = metrics.charsWidth(seg.array, seg.offset, seg.count);
 if (width  span)
   {
@@ -250,7 +254,7 @@
   }
   }
 maxLineLength = span;
-return Math.max(maxLineLength, 0);
+return maxLineLength;
   }
   
   public float getPreferredSpan(int axis)
___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


Re: [cp-patches] Patch: FYI: fix SetOfIntegerSyntax

2005-10-06 Thread Wolfgang Baer

Hi Tom,

Tom Tromey wrote:

I'm checking this in.

I happened to notice that SetOfIntegerSyntax was mostly stubs.
I implemented the class for real, and added the missing constructor.


I started already implementation of javax.print.attribute.standard and
some other stuff for javax.print.*

I am currently waiting for the FSF paperwork to be done.

So if you intend to work more on the javax.print package please contact
me so we do not duplicate work.

Wolfgang


___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


[cp-patches] [RFC] XML - fix for XMLParser's URL problem

2005-10-06 Thread Robert Schuster
Hi,
here is probably a fix for PR classpath/24249 [0].

2005-10-07  Robert Schuster  [EMAIL PROTECTED]

* gnu/xml/aelfred2/SAXDriver.java:
(absolutize): Replaced URL.toString() with explicit
calls to build a new URL.
* gnu/xml/dom/ls/DomLSParser.java:
(getInputSource): dito.

Please have a deep long thought about this and tell me whether this is a valid
fix. For me this solves the problem I formerly had, of course.

cu
Robert

[0] - http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24249
Index: gnu/xml/aelfred2/SAXDriver.java
===
RCS file: /cvsroot/classpath/classpath/gnu/xml/aelfred2/SAXDriver.java,v
retrieving revision 1.7
diff -u -r1.7 SAXDriver.java
--- gnu/xml/aelfred2/SAXDriver.java	2 Jul 2005 20:32:15 -	1.7
+++ gnu/xml/aelfred2/SAXDriver.java	7 Oct 2005 02:39:21 -
@@ -751,7 +751,14 @@
   }
 else
   {
-return new URL(new URL(baseURI), systemId).toString();
+URL url = new URL(new URL(baseURI), systemId);
+
+// Note: The following line contains a workaround for a specific behavior
+// of the URL class where
+// new URL(new URL(file:foo/baz.xml).toString()).getHost().equals(foo)
+// would be true although it is technically wrong
+// (foo is a part of the filename).
+return url.getProtocol() + :// + url.getHost() + url.getFile();
   }
   }
 catch (MalformedURLException e)
Index: gnu/xml/dom/ls/DomLSParser.java
===
RCS file: /cvsroot/classpath/classpath/gnu/xml/dom/ls/DomLSParser.java,v
retrieving revision 1.3
diff -u -r1.3 DomLSParser.java
--- gnu/xml/dom/ls/DomLSParser.java	2 Jul 2005 20:32:16 -	1.3
+++ gnu/xml/dom/ls/DomLSParser.java	7 Oct 2005 02:39:21 -
@@ -397,7 +397,13 @@
   new File(baseFile, systemId).toURL();
   }
 in = url.openStream();
-systemId = url.toString();
+// Note: The following line contains a workaround for a specific behavior
+// of the URL class where
+// new URL(new URL(file:foo/baz.xml).toString()).getHost().equals(foo)
+// would be true although it is technically wrong
+// (foo is a part of the filename).
+systemId = url.getProtocol() + :// + url.getHost() + url.getFile();
+
 source = new InputSource(in);
 source.setSystemId(systemId);
   }
___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


[cp-patches] FYI: dssi control handling, midi demo, INSTALL and LICENSE additions

2005-10-06 Thread Anthony Green
I'm about to check in the following patch collection, most of which I've
already posted to the list for comment.

Thanks,

AG



2005-10-06  Anthony Green  [EMAIL PROTECTED]

* INSTALL: Describe midi provider dependencies.

* native/jni/midi-dssi/README: New file.
* LICENSE (terms): Add notice about code copied from the DSSI
distribution.

* examples/gnu/classpath/examples/midi/Demo.java: New file.

* native/jni/midi-dssi/dssi_data.h (dssi_data): Add control_count,
control_port_map, control_value_map, sample_rate, and
control_values fields.
* native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c
(DEBUG_DSSI_PROVIDER): New macro.
(get_port_default): New function.
(set_control): New function.
(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1): Remove
debug output.  Reformat.  Allocate the control ports and assign
proper default values.
(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_noteOn_1): Use
JLONG_TO_PTR.
(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_noteOff_1): Ditto.
* gnu/javax/sound/midi/dssi/DSSISynthesizer.java
(Channel.controlChange): Implement.
(controlChange_): New native method.
* include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: Rebuilt.

* gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java: Make
instance final.


Index: LICENSE
===
RCS file: /cvsroot/classpath/classpath/LICENSE,v
retrieving revision 1.7
diff -u -r1.7 LICENSE
--- LICENSE 2 Jul 2005 20:32:07 -   1.7
+++ LICENSE 7 Oct 2005 02:47:11 -
@@ -284,3 +284,17 @@
   shall not be used in advertising or otherwise to promote the sale, use
   or other dealings in these Data Files or Software without prior
   written authorization of the copyright holder.
+
+
+The file native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c
+contains two functions (get_port_default and set_control) derived from
+example code in the DSSI distribution (http://dssi.sourceforge.net).
+The original DSSI example code is distributed under the following
+terms:
+
+ Copyright 2004 Chris Cannam, Steve Harris and Sean Bolton.
+ 
+ Permission to use, copy, modify, distribute, and sell this software
+ for any purpose is hereby granted without fee, provided that the
+ above copyright notice and this permission notice are included in
+ all copies or substantial portions of the software.
Index: gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java
===
RCS file: 
/cvsroot/classpath/classpath/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java,v
retrieving revision 1.1
diff -u -r1.1 AlsaMidiSequencerDevice.java
--- gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java  3 Oct 2005 
01:53:12 -   1.1
+++ gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java  7 Oct 2005 
02:47:12 -
@@ -64,7 +64,7 @@
 public class AlsaMidiSequencerDevice implements Sequencer
 {
   // The singleton instance.
-  public static AlsaMidiSequencerDevice instance = new 
AlsaMidiSequencerDevice();
+  public final static AlsaMidiSequencerDevice instance = new 
AlsaMidiSequencerDevice();
   
   // A pointer to a native chunk of memory
   private long nativeState;
Index: gnu/javax/sound/midi/dssi/DSSISynthesizer.java
===
RCS file: 
/cvsroot/classpath/classpath/gnu/javax/sound/midi/dssi/DSSISynthesizer.java,v
retrieving revision 1.1
diff -u -r1.1 DSSISynthesizer.java
--- gnu/javax/sound/midi/dssi/DSSISynthesizer.java  3 Oct 2005 01:53:12 
-   1.1
+++ gnu/javax/sound/midi/dssi/DSSISynthesizer.java  7 Oct 2005 02:47:12 
-
@@ -85,6 +85,10 @@
   else
 channels[smessage.getChannel()].noteOff(smessage.getData1());
   break;
+case ShortMessage.CONTROL_CHANGE:
+  channels[smessage.getChannel()].controlChange(smessage.getData1(),
+smessage.getData2());
+  break;
 default:
   System.out.println (Unhandled message:  + message.getStatus());
   break;
@@ -106,6 +110,7 @@
   static native void noteOff_(long handle, int channel, int noteNumber, int 
velocity);  
   static native void setPolyPressure_(long handle, int channel, int 
noteNumber, int pressure);
   static native int getPolyPressure_(long handle, int channel, int noteNumber);
+  static native void controlChange_(long handle, int channel, int control, int 
value);
   static native void open_(long handle);
   static native void close_(long handle);
   
@@ -184,13 +189,10 @@
   return 0;
 }
 
-/* (non-Javadoc)
- * @see javax.sound.midi.MidiChannel#controlChange(int, int)
- */
+/* @see 

[cp-patches] FYI: ignore unmapped DSSI controls

2005-10-06 Thread Anthony Green
Some DSSI controls aren't mapped to MIDI controls.  This patch ignores
them.  I'm checking it in.

Thanks,

AG


2005-10-06  Anthony Green  [EMAIL PROTECTED]

* native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c
(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1): Ignore
controllers that aren't mapped to MIDI controls.


Index: native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c
===
RCS file: 
/cvsroot/classpath/classpath/native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c,v
retrieving revision 1.3
diff -u -r1.3 gnu_javax_sound_midi_dssi_DSSISynthesizer.c
--- native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c7 Oct 
2005 03:21:05 -   1.3
+++ native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c7 Oct 
2005 05:08:37 -
@@ -263,7 +263,8 @@
 Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1 
   (JNIEnv *env, jclass clazz __attribute__((unused)), jlong handle)
 {
-  unsigned int port_count, j, cindex, controller = 0;
+  unsigned int port_count, j, cindex;
+  int controller = 0;
   dssi_data *data = (dssi_data *) (long) handle;
   if ((data-jack_client = jack_client_new (data-desc-LADSPA_Plugin-Label)) 
== 0)
 {
@@ -347,19 +348,19 @@
controller = data-desc-
  get_midi_controller_for_port(data-plugin_handle, j);
 
-   if (DSSI_IS_CC(controller))
+   if ((controller != DSSI_NONE)  DSSI_IS_CC(controller))
  {
data-control_value_map[DSSI_CC_NUMBER(controller)] = 
cindex;
data-control_port_map[DSSI_CC_NUMBER(controller)] = j;
- }
- }
 
 #ifdef DEBUG_DSSI_PROVIDER
-   printf (MIDI Controller 0x%x [%s] = %g\n, 
-   DSSI_CC_NUMBER(controller),
-   data-desc-LADSPA_Plugin-PortNames[j],
-   data-control_values[cindex]);
+   printf (MIDI Controller 0x%x [%s] = %g\n, 
+   DSSI_CC_NUMBER(controller),
+   data-desc-LADSPA_Plugin-PortNames[j],
+   data-control_values[cindex]);
 #endif
+ }
+ }
 
cindex++;
  }




___
Classpath-patches mailing list
Classpath-patches@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath-patches


Re: request for testing AWT/SWING

2005-10-06 Thread Meskauskas Audrius
I think, the new list would be ok, because this is a new category of 
information. Or maybe the header could have some specific signature 
(people receiving many messages per day from several projects use 
automated sorting).


IMO it would be very great to get this working.

Tom Tromey wrote:


Paul However I wonder if cross reference against daily mauve regressions
Paul would help identify and fix these more quickly?

Yes.

Tom
 





___
Classpath mailing list
Classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath


example programs

2005-10-06 Thread theUser BL

Hi!

I think, that the example program SliderDemo.java is incomplete:
http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/classpath/classpath/examples/gnu/classpath/examples/swing/SliderDemo.java?rev=1.1content-type=text/plain

For example, there are not icons included.
I have found a demo in a book, which you can find at:
http://user.web-gear.com/theuserbl/Sliders.zip
(unzip it, and start SwingExample)

With Java5 and Java6 it looks like:
http://user.web-gear.com/theuserbl/Sliders.png

An other point is, that I think, that it would be nice, if all 
example-programs in examples.zip becomes a demo-startplace.

I have created one at:
http://user.web-gear.com/theuserbl/examples.jar
The source code is included. But it is tinkered by using snippets and 
code-examples from other programs. So the copyright of this program and the 
program in Sliders.zip is unclear.


Be sure, that if your JVM is not called java to create a symlink in the 
same directory where the JVM is.

For example
ln -s $HOME/jamvm/bin/jamvm $HOME/jamvm/bin/java
java and jamvm must be in the same directory in $JAVA_HOME/bin

Then you can try examples.jar by
java -jar examples.jar

I think, that somethink like this, would make it easyer to start the demo 
programs.

It is easyer then input for every demo program
java gnu.classpath.examples



An other point is about the JamVM:
I think, the property of java.vendor.url is wrong.
There stand http://gnu.classpath.org;
But this side don't exists.
There existing only http://www.classpath.org; and
http://www.gnu.org/software/classpath/;

Greatings
theuserbl




___
Classpath mailing list
Classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath


Re: example programs

2005-10-06 Thread Robert Lougher
Hi,

On 10/6/05, theUser BL [EMAIL PROTECTED] wrote:

 An other point is about the JamVM:
 I think, the property of java.vendor.url is wrong.
 There stand http://gnu.classpath.org;
 But this side don't exists.
 There existing only http://www.classpath.org; and
 http://www.gnu.org/software/classpath/;


Yes, it's wrong (well spotted).  I'll correct it in CVS and it'll be
in the next release.

Thanks,

Rob.

 Greatings
 theuserbl




 ___
 Classpath mailing list
 Classpath@gnu.org
 http://lists.gnu.org/mailman/listinfo/classpath



___
Classpath mailing list
Classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/classpath


Classpath Meeting Minutes (2005-10-07)

2005-10-06 Thread Robert Schuster
---

GNU Classpath Meeting Minutes from 2005-10-07 17:00 UTC

---

No fireworks. Just smiling happy hackers wondering when they could get back to
business and add some new code...
 -- Mark Wielaard about the meeting

This evening at 17:00 UTC GNU Classpath held its first official meeting!

It was suggested by Mark because he thought that a little bit of (real-time)
coordination would be nice due to the development taking place at such a high
pace these times.

The following agenda was adopted:

- Intro/Why a meeting?
- Next release (when/what)
- Testing setup?
- Anyone blocked on something?
- Random thoughts.

No further topics have been suggested.

Intro/Why a meeting?

Basically, Mark explained, he could not believe that everything is going on
smoothly. He studied Apache's procedures and asked the attendents whether these
would be useful for Classpath, too.

However everybody seemed happy with the way it is and Mark was a surprized that
people seem so happy to hack on GNU Classpath while the project has no real
formal structure.

Next release:
-

No change is being done to the current bi-monthly release schedule. The next
snapshot release will be in November 2005.

Mark was worried about introducing dependencies on Gtk+-2.8 and Cairo-1.0.0 .
These would be a necessity of the AWT rework[0]. Sven added that he does not
expect these changes before 0.19 .

Unfortunately Thomas was not present to discuss the item so we remained at
postponing any major AWT rework to a time after the November release.


Intermission


Before we advanced to the next topic everyone thanked Audrius for his truly
amazing work on the CORBA implementation.

Testing setup?
--

Before each and every release Mark does a lot of manual Mauve runs and wondered
why this could not be automated. Tom already has some basics for an automated
test environment but needs a destination for result notifications. Mark's
proposal to create a new mailing list called 'classpath-testresults' was
accepted immediately.

Having developer.classpath.org and a new box set up by Jim Pick would provide
enough resources for an automated Mauve and GUMP run. The latter is already
running on one of Apache's machines with Kaffe. Mark reminded himself to ask Leo
about sending results to the new testresult mailing list.

A short discussion about which testresults should be on the list concluded with
the idea to not filter anything in the beginning and refine the involved scripts
over time.

Additionally Tom's script will be published at some point making it possible for
everyone to run fully automated tests.


Anyone blocked on something?


Integration of GNU Crypto was mentioned and that we have to wait for Casey's
rewrite of it. Mark stated that Casey would be the only one being able to do the
integration nicely.

Random thoughts
---

Mark wanted that people go through the bug list from time to time and clean it 
up.

David pleaded for more Mauve tests.

Which brought Sven to the idea to ask for more quality control on the tests as
he had some problems with broken tests before. He reminds to be extra wary if
any test fails on the JDK. Some of them may be correct but sometimes it would be
a bit easy to jump to the conclusion that the JDK is wrong, when it is actually
ambiguity in the spec.
(If the spec is ambiguous, then whatever the JDK does has to be viewed as
'correct').

Mark liked the idea of the FreeSwingApplications page[1] which Robert set up. He
hoped to see more lists of free software applications (running on GNU 
Classpath).

James Damour, one of MegaMek's[2] project maintainers and advocate of GNU
Classpath, suggested to contact the projects listed on the FreeSwingApplications
page to let them know that we are working on getting their programs to run.
@James: It would be nice if the authors could add some information about the
kind of Swing components they use.

Finally James is hoping that there will be more volunteers to help!

As this came up after the meeting: If you wonder whether you are tainted or not.
The ClasspathFirstSteps page[3] has the appropriate information. Nevertheless
having seen parts of the core library does not hinder you from writing (and/or
maintaining) Mauve[4] test cases or Classpath demo applications.

That was it - Everybody seemed to have enjoyed the meeting. In fact people we in
such a good mood that nobody asked for the date of the next meeting. Perhaps
this will be solved on the main discussion mailing list.

cu
Robert

[0] - http://developer.classpath.org/mediation/ClasspathGraphicsImagesText
[1] - http://developer.classpath.org/mediation/FreeSwingTestApps
[2] - http://megamek.sf.net
[3] - http://developer.classpath.org/mediation/ClasspathFirstSteps
[4] - http://sources.redhat.com/mauve/



[commit-cp] classpath java/util/PropertyResourceBundle.java... [generics-branch]

2005-10-06 Thread Tom Tromey
CVSROOT:/cvsroot/classpath
Module name:classpath
Branch: generics-branch
Changes by: Tom Tromey [EMAIL PROTECTED]  05/10/06 13:41:53

Modified files:
java/util  : PropertyResourceBundle.java 
 ListResourceBundle.java ResourceBundle.java 
 StringTokenizer.java AbstractMap.java 
 Collections.java TreeSet.java 
.  : ChangeLog 

Log message:
* java/util/ListResourceBundle.java (getKeys): Fixed return type.
* java/util/ResourceBundle.java (getKeys): Fixed return type.
* java/util/AbstractMap.java (entrySet): Fixed return type.
(clone): Updated.
(equals): Likewise.
(iterator): Likewise.
* java/util/Collections.java (fill): Fixed argument type.
(reverse): Likewise.
(unmodifiableCollection): Likewise.
(UnmodifiableCollection): Likewise.
(UnmodifiableIterator): Likewise.
(unmodifiableSet): Likewise.
(UnmodifiableSet): Likewise.
(unmodifiableList): Likewise.
* java/util/TreeSet.java (TreeSet(SortedSetT)): Fixed argument
type.
(headSet): Fixed return type.
* java/util/StringTokenizer.java: Implements EnumerationObject.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/util/PropertyResourceBundle.java.diff?only_with_tag=generics-branchtr1=1.14.2.1tr2=1.14.2.2r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/util/ListResourceBundle.java.diff?only_with_tag=generics-branchtr1=1.10.2.2tr2=1.10.2.3r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/util/ResourceBundle.java.diff?only_with_tag=generics-branchtr1=1.24.2.6tr2=1.24.2.7r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/util/StringTokenizer.java.diff?only_with_tag=generics-branchtr1=1.12.2.2tr2=1.12.2.3r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/util/AbstractMap.java.diff?only_with_tag=generics-branchtr1=1.26.2.5tr2=1.26.2.6r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/util/Collections.java.diff?only_with_tag=generics-branchtr1=1.28.2.16tr2=1.28.2.17r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/java/util/TreeSet.java.diff?only_with_tag=generics-branchtr1=1.15.2.7tr2=1.15.2.8r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/ChangeLog.diff?only_with_tag=generics-branchtr1=1.2386.2.156tr2=1.2386.2.157r1=textr2=text





[commit-cp] classpath ./ChangeLog javax/swing/JTree.java ja...

2005-10-06 Thread Lillian Angel
CVSROOT:/cvsroot/classpath
Module name:classpath
Branch: 
Changes by: Lillian Angel [EMAIL PROTECTED]   05/10/06 19:26:31

Modified files:
.  : ChangeLog 
javax/swing: JTree.java 
javax/swing/plaf/basic: BasicTreeUI.java 

Log message:
2005-10-06  Lillian Angel  [EMAIL PROTECTED]

* javax/swing/plaf/basic/BasicTreeUI.java
(startEditing): Should always change the bounds, whenever
we start editing.
(paintRow): Fixed location where editing component should
be drawn. The constant takes care of the space around the
icon.
* javax/swing/JTree.java
(JTree): Called updateUI first so currentVisiblePath is
cached right away. Prevents NPEs.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.5136tr2=1.5137r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/javax/swing/JTree.java.diff?tr1=1.43tr2=1.44r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/javax/swing/plaf/basic/BasicTreeUI.java.diff?tr1=1.87tr2=1.88r1=textr2=text





[commit-cp] classpath ./ChangeLog javax/swing/text/Abstract...

2005-10-06 Thread Anthony Balkissoon
CVSROOT:/cvsroot/classpath
Module name:classpath
Branch: 
Changes by: Anthony Balkissoon [EMAIL PROTECTED]  05/10/06 19:53:34

Modified files:
.  : ChangeLog 
javax/swing/text: AbstractDocument.java 

Log message:
2005-10-06  Anthony Balkissoon  [EMAIL PROTECTED]

* javax/swing/text/AbstractDocument.java: Implemeted locking.
(insertString): Obtain write lock before altering document.
(readLock): Implemented.
(readUnlock): Implemented.
(remove): Obtain write lock before altering document.
(render): Implemented.
(writeLock): Implemented.
(writeUnlock): Implemented.
(getCurrentWriter): Implemented.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.5138tr2=1.5139r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/javax/swing/text/AbstractDocument.java.diff?tr1=1.32tr2=1.33r1=textr2=text





[commit-cp] classpath ./ChangeLog javax/imageio/metadata/II...

2005-10-06 Thread Thomas Fitzsimmons
CVSROOT:/cvsroot/classpath
Module name:classpath
Branch: 
Changes by: Thomas Fitzsimmons [EMAIL PROTECTED]  05/10/06 20:44:17

Modified files:
.  : ChangeLog 
javax/imageio/metadata: IIOMetadata.java 

Log message:
2005-10-06  Thomas Fitzsimmons  [EMAIL PROTECTED]

* javax/imageio/metadata/IIOMetadata.java: Complete.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.5140tr2=1.5141r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/javax/imageio/metadata/IIOMetadata.java.diff?tr1=1.3tr2=1.4r1=textr2=text





[commit-cp] classpath ./INSTALL ./LICENSE include/gnu_javax...

2005-10-06 Thread Anthony Green
CVSROOT:/cvsroot/classpath
Module name:classpath
Branch: 
Changes by: Anthony Green [EMAIL PROTECTED]   05/10/07 03:21:06

Modified files:
.  : INSTALL LICENSE 
include: gnu_javax_sound_midi_dssi_DSSISynthesizer.h 
native/jni/midi-dssi: dssi_data.h 
  gnu_javax_sound_midi_dssi_DSSISynthesizer.c 
gnu/javax/sound/midi/alsa: AlsaMidiSequencerDevice.java 
gnu/javax/sound/midi/dssi: DSSISynthesizer.java 
Added files:
examples/gnu/classpath/examples/midi: Demo.java 
native/jni/midi-dssi: README 

Log message:
2005-10-06  Anthony Green  [EMAIL PROTECTED]

* INSTALL: Describe midi provider dependencies.

* native/jni/midi-dssi/README: New file.
* LICENSE (terms): Add notice about code copied from the DSSI
distribution.

* examples/gnu/classpath/examples/midi/Demo.java: New file.

* native/jni/midi-dssi/dssi_data.h (dssi_data): Add control_count,
control_port_map, control_value_map, sample_rate, and
control_values fields.
* native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c
(DEBUG_DSSI_PROVIDER): New macro.
(get_port_default): New function.
(set_control): New function.
(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1): Remove
debug output.  Reformat.  Allocate the control ports and assign
proper default values.
(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_noteOn_1): Use
JLONG_TO_PTR.
(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_noteOff_1): Ditto.
* gnu/javax/sound/midi/dssi/DSSISynthesizer.java
(Channel.controlChange): Implement.
(controlChange_): New native method.
* include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h: Rebuilt.

* gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java: Make
instance final.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/INSTALL.diff?tr1=1.32tr2=1.33r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/LICENSE.diff?tr1=1.7tr2=1.8r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/examples/gnu/classpath/examples/midi/Demo.java?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/include/gnu_javax_sound_midi_dssi_DSSISynthesizer.h.diff?tr1=1.1tr2=1.2r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/native/jni/midi-dssi/README?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/native/jni/midi-dssi/dssi_data.h.diff?tr1=1.2tr2=1.3r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c.diff?tr1=1.2tr2=1.3r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/gnu/javax/sound/midi/alsa/AlsaMidiSequencerDevice.java.diff?tr1=1.1tr2=1.2r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/gnu/javax/sound/midi/dssi/DSSISynthesizer.java.diff?tr1=1.1tr2=1.2r1=textr2=text





[commit-cp] classpath ./ChangeLog native/jni/midi-dssi/gnu_...

2005-10-06 Thread Anthony Green
CVSROOT:/cvsroot/classpath
Module name:classpath
Branch: 
Changes by: Anthony Green [EMAIL PROTECTED]   05/10/07 05:12:29

Modified files:
.  : ChangeLog 
native/jni/midi-dssi: 
  gnu_javax_sound_midi_dssi_DSSISynthesizer.c 

Log message:
2005-10-06  Anthony Green  [EMAIL PROTECTED]

* native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c
(Java_gnu_javax_sound_midi_dssi_DSSISynthesizer_open_1): Ignore
controllers that aren't mapped to MIDI controls.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/ChangeLog.diff?tr1=1.5144tr2=1.5145r1=textr2=text
http://savannah.gnu.org/cgi-bin/viewcvs/classpath/classpath/native/jni/midi-dssi/gnu_javax_sound_midi_dssi_DSSISynthesizer.c.diff?tr1=1.3tr2=1.4r1=textr2=text