[Bug awt/30106] JDK-1.0-style logical font names

2006-12-13 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #3 from hendrich at informatik dot uni-hamburg dot de  
2006-12-14 07:57 ---
(In reply to comment #2)

 I disagree. TimesRoman etc are not logical font names, but 'physical' font
 names. (Logical names are Serif, SansSerif, Monospaced, Dialog, and 
 DialogInput
 -- refer to the API docs for java.awt.Font for more details). 

Well, Sun has corrected their mistake by now. My point is that they _did_
use TimesRoman, Helvetica, and Courier as the logical fonts names
in JDK 1.0. Admittedly, there was little difference between logical and
physical font names back then. Unfortunately, I have no copy of the 1.0.2
API docs lying around anymore to prove that, but the test case shows that 
the JDKs still acknowledge the old names.


So, the question is whether we want bug-compatibility with Sun in this
case, or not. 

I vote for compatibility. Adding the extra outdated font name checks fixes 
the compatibility issue, and applications that use the new logical font 
names will not see any difference.



 these work with the JDK is not strict backwards-compatibility, but only caused
 by Sun bundling these fonts with JREs. I don't think that we should map these
 names internally, as it is not at all correct. If one requests TimesRoman, he
 would expect the font 'TimesRoman' be loaded.

Excatly. An (outdated) application that requests TimesRoman or Courier
expects to get those, but with current classpath its gets Dialog in both
cases. 



 I guess that this would even work with GNU Classpath if you happen to have the
 Microsoft TTF fonts installed and registered with fontconfig. There are
 packages for many distros that pull in these (non-free) fonts.

I don't see how this could happen. The logical font name is not recognized, 
and Dialog is substituted, regardless of what fonts are installed. Am I 
missing something?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30106



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/29865] New: wrong clip in JScrollpane repainting

2006-11-16 Thread hendrich at informatik dot uni-hamburg dot de
One of the recent RepaintManager/repaint updates breaks JScrollPane 
in my image-viewer application [1]. See attached image for an example.
A cvs checkout from 2006.11.06 worked fine, while checkouts from
2006.11.13 and 2006.11.16 both show the same problem.

Note that JScrollPane seems to work fine with most standard clients
like JTree. It also works fine with my ImageViewer whenever a full
repaint is performed (like un-obscuring the scrollpane, changing the
size, etc.).

The bug only occurs after typing the cursor down key, which is
handled twice: it tells Niffler to load and display the next image,
but it is also intercepted by the JScrollPane which scrolls up one
line-increment. As you can see, the new image is loaded and mostly
painted, but one line-increment-part of the old image is blitted
into it. This can be repeated for some fun.

To reproduce the bug, you need images that are larger than the
scrollpane size and to disable the zoom-to-fit option (menu-
view-zoom fit after loading), in order to make the scrollbars
appear.



[1] tams-www.informatik.uni-hamburg.de/people/alumni/hendrich/niffler


-- 
   Summary: wrong clip in JScrollpane repainting
   Product: classpath
   Version: 0.93
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: swing
AssignedTo: roman at kennke dot org
ReportedBy: hendrich at informatik dot uni-hamburg dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29865



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/29865] wrong clip in JScrollpane repainting

2006-11-16 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #1 from hendrich at informatik dot uni-hamburg dot de  
2006-11-16 08:37 ---
Created an attachment (id=12629)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12629action=view)
screenshot showing the repaint issue


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29865



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/29566] New: NPEs from JTree repainting

2006-10-23 Thread hendrich at informatik dot uni-hamburg dot de
Hello Roman,

here are two more NPEs resulting from JTree repainting. I got these
while running a slide-show in Niffler under rather high system load
(heap memory almost exhausted, nominal 30 msec pause between images, 
both tree and image canvas visible). Classpath cvs 2006.10.20 with
jamvm on Linux x86.

This might well be a result of the high system load with lots of
garbage-collection. Still, it shouldn't happen, and might be worth 
checking:


Exception during event dispatch:
java.lang.NullPointerException
   at javax.swing.plaf.basic.BasicTreeUI.isLastChild(BasicTreeUI.java:1623)
   at javax.swing.plaf.basic.BasicTreeUI.paint(BasicTreeUI.java:1572)
   at javax.swing.plaf.metal.MetalTreeUI.paint(MetalTreeUI.java:248)
   at javax.swing.plaf.ComponentUI.update(ComponentUI.java:193)
   at javax.swing.JComponent.paintComponent(JComponent.java:2069)
   at javax.swing.JComponent.paint(JComponent.java:1834)
   at javax.swing.JViewport.paintSimple(JViewport.java:794)
   at javax.swing.JViewport.paintBackingStore(JViewport.java:850)
   at javax.swing.JViewport.paint(JViewport.java:495)
   at javax.swing.JComponent.paintChildren(JComponent.java:1969)
   at javax.swing.JComponent.paint(JComponent.java:1837)
   at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:2349)
   at javax.swing.JComponent.paintImmediately2(JComponent.java:2266)
   at javax.swing.JComponent.paintImmediately(JComponent.java:2105)
   at javax.swing.JComponent.paintImmediately(JComponent.java:2131)
   at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:594)
   at javax.swing.RepaintManager$RepaintWorker.run(RepaintManager.java:170)
   at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:200)
   at
javax.swing.RepaintManager$RepaintWorkerEvent.dispatch(RepaintManager.java:114)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:609)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)




Exception during event dispatch:
java.lang.NullPointerException
   at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:2332)
   at javax.swing.JComponent.paint(JComponent.java:1794)
   at
javax.swing.tree.DefaultTreeCellRenderer.paint(DefaultTreeCellRenderer.java:532)
   at javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:189)
   at javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:219)
   at javax.swing.CellRendererPane.paintComponent(CellRendererPane.java:237)
   at javax.swing.plaf.basic.BasicTreeUI.paintRow(BasicTreeUI.java:3892)
   at javax.swing.plaf.basic.BasicTreeUI.paint(BasicTreeUI.java:1603)
   at javax.swing.plaf.metal.MetalTreeUI.paint(MetalTreeUI.java:248)
   at javax.swing.plaf.ComponentUI.update(ComponentUI.java:193)
   at javax.swing.JComponent.paintComponent(JComponent.java:2069)
   at javax.swing.JComponent.paint(JComponent.java:1834)
   at javax.swing.JViewport.paintSimple(JViewport.java:794)
   at javax.swing.JViewport.paintBackingStore(JViewport.java:861)
   at javax.swing.JViewport.paint(JViewport.java:495)
   at javax.swing.JComponent.paintDoubleBuffered(JComponent.java:2349)
   at javax.swing.JComponent.paintImmediately2(JComponent.java:2266)
   at javax.swing.JComponent.paintImmediately(JComponent.java:2105)
   at javax.swing.JComponent.paintImmediately(JComponent.java:2131)
   at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:594)
   at javax.swing.RepaintManager$RepaintWorker.run(RepaintManager.java:170)
   at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:200)
   at
javax.swing.RepaintManager$RepaintWorkerEvent.dispatch(RepaintManager.java:114)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:609)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)


-- 
   Summary: NPEs from JTree repainting
   Product: classpath
   Version: 0.93
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: swing
AssignedTo: roman at kennke dot org
ReportedBy: hendrich at informatik dot uni-hamburg dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29566



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug awt/29420] OutOfMemory in image handling

2006-10-23 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #6 from hendrich at informatik dot uni-hamburg dot de  
2006-10-23 17:24 ---
(In reply to comment #5)
 No, nothing since the 20'th.  I'm assuming these images should not be in 
 memory
 concurrently (slideshow loads one, then moves on to the next, and the original
 image *should* be freed) - so a memory leak somewhere?


Yes. Either a leak or memory corruption, probably in the JNI/GTK parts.
(A while ago, after I last reported similar OOME problems, Mark fixed 
several leaks in the GTK code. But I have no idea whether and where 
current cvs might trigger those anew.)

The image viewer really only keeps one reference to the current image,
and a temporary reference to the image it is next loading. I also had
the thumbnails panel disabled for these tests; but the slideshow
wait interval was so low that the JVM was continually loading new images.
(When thumbnails generation and display is on, niffler also keeps a cache
of the thumbnail images. But the thumbnails are really small, and the
cache is cleared when memory runs low.)


With cp cvs 2006.10.20, slideshows usually survive at least 200 images 
(jamvm with -Xmx300m), but the VM seems to get very unstable beyond that. 
Most often, the VM just crashes with a segfault, but here is one of the 
OOME stacktraces I got:

java.lang.OutOfMemoryError
   at gnu.java.awt.peer.gtk.GtkImage.getPixels(Native Method)
   at gnu.java.awt.peer.gtk.CairoSurface.init(CairoSurface.java:181)
   at
gnu.java.awt.peer.gtk.CairoSurface.getBufferedImage(CairoSurface.java:261)
   at gnu.java.awt.peer.gtk.GtkToolkit.createImage(GtkToolkit.java:255)
   at java.awt.Toolkit.createImage(Toolkit.java:661)
   at niffler.ImageUtils.loadImageViaToolkit(ImageUtils.java:253)
   at niffler.ImageUtils.loadImageViaToolkit(ImageUtils.java:211)
   at niffler.Niffler.loadImage(Niffler.java:1622)
   ...
   at niffler.SlideshowManager.run(SlideshowManager.java:82)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29420



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/28769] Regression:JTree and JTable mouse-wheel scrolling

2006-10-19 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #15 from hendrich at informatik dot uni-hamburg dot de  
2006-10-19 08:47 ---
 Could you please retest?

Just tested current cvs (2006.10.19). Mouse-wheel scrolling seems to work 
on JTree now, at least in my test applications. Fixed!

Note: I got a new (apparently harmless) NPE from repaint() today:

java.lang.NullPointerException
   at javax.swing.JComponent.repaint(JComponent.java:2889)
   at
javax.swing.plaf.basic.BasicTreeUI$FocusHandler.repaintLeadRow(BasicTreeUI
.java:2338)
   at
javax.swing.plaf.basic.BasicTreeUI$FocusHandler.focusGained(BasicTreeUI.ja
va:2315)
   at java.awt.Component.processFocusEvent(Component.java:3740)
   at java.awt.Component.processEvent(Component.java:3661)
   at java.awt.Container.processEvent(Container.java:1027)
   at java.awt.Component.dispatchEventImpl(Component.java:5737)
   at java.awt.Container.dispatchEventImpl(Container.java:1922)
   at java.awt.Component.dispatchEvent(Component.java:2836)
   at
java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:11
03)
   at
java.awt.DefaultKeyboardFocusManager.handleFocusGained(DefaultKeyboardFocu
sManager.java:274)
   at
java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusMan
ager.java:188)
   at java.awt.Component.dispatchEventImpl(Component.java:5724)
   at java.awt.Container.dispatchEventImpl(Container.java:1922)
   at java.awt.Window.dispatchEventImpl(Window.java:621)
   at java.awt.Component.dispatchEvent(Component.java:2836)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:618)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)


-- 

hendrich at informatik dot uni-hamburg dot de changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28769



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/29513] New: JTree.scrollPathToVisible/expandPath buglet

2006-10-19 Thread hendrich at informatik dot uni-hamburg dot de
A corner case in JTree behaviour:

One of my test applications does the following to ensure that the 
tree node selected by the user becomes visible:

...
TreePath   treepath = new TreePath( node.getPath() );
fileListTree.setSelectionPath( treepath );
fileListTree.scrollPathToVisible( treepath );
fileListTree.expandPath( treepath ); // FIXME: required?

When the selected subtree has more leaf nodes than fit on screen,
classpath (cvs 2006.10.19) scrolls the tree to show the path from
root-node to selected subtree, but the currently selected leaf node
might become invisible. The JDK scrolls the tree to always show the
selected leaf node, which is better.

Note that the above code might be questionable, because the call to
expandPath() after scrollPathToVisible() is redundant. I probably
added it to get an earlier version of classpath or the JDK (1.3.x?)
to work...


-- 
   Summary: JTree.scrollPathToVisible/expandPath buglet
   Product: classpath
   Version: 0.93
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: swing
AssignedTo: roman at kennke dot org
ReportedBy: hendrich at informatik dot uni-hamburg dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29513



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/28769] Regression:JTree and JTable mouse-wheel scrolling

2006-10-18 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #9 from hendrich at informatik dot uni-hamburg dot de  
2006-10-18 15:15 ---
Hello Roman and Audrius,

first of all, thanks for working on Swing in general, and my bugs in
particular. Please don't quarrel about the bugs or the exact state of them.
By now, I am pretty experienced in re-opening bugs when necessary - for
example, right now :-)


 (In reply to comment #8)
 I have just tested the JTree scrolling with fresh CVS check. The scrolling in
 both components with mouse wheel works correctly. Scrolling both up and down 
 is possible, and even the boundary adjustment works as required. 
 The user likely
 tested with the outdated version. I am closing this as no longer
 unreproducible.

Well, I just tested with a fresh cvs checkout again to make sure. This is
on Linux x86 with jamvm and cacao, with my image viewer (Niffler) as
the text application.

Playing with a large tree with about 4000 nodes (max depth six levels)
shows that expanding and collapsing nodes in the tree works. However,
I also sometimes get NPEs [1] from repaint(), but the tree looks ok.

Basic mouse-wheel scrolling does indeed work now, both up and down,
but scrolling down to the very bottom often resets the scrollbar thumb, 
and one can scroll down again... Doesn't happen when scrolling up.
This doesn't happen always. My initial theory is that it happens 
when I use mouse-scrolling after expanding a new subtree, while it
gets fixed when I click or drag the scrollbar.

Is this an effect of the JTree layout cache? If so, please feel free
to close the bug again :-)

(If you bother to test this with my image viewer, please make sure to 
keep the mouse in motion... Otherwise, the HideCursorManager might trigger
and hide the mouse cursor on the image canvas, which wrongly also hides
the cursor in the JTree. I report this as a new bug.)


[1] NPE from repaint:
java.lang.NullPointerException
   at javax.swing.JComponent.repaint(JComponent.java:2889)
   at javax.swing.JTree$TreeSelectionRedirector.valueChanged(JTree.java:1287)
   at
javax.swing.tree.DefaultTreeSelectionModel.fireValueChanged(DefaultTreeSelectionModel.java:769)
   at
javax.swing.tree.DefaultTreeSelectionModel.notifyPathChange(DefaultTreeSelectionModel.java:1163)
   at
javax.swing.tree.DefaultTreeSelectionModel.setSelectionPaths(DefaultTreeSelectionModel.java:461)
   at
javax.swing.tree.DefaultTreeSelectionModel.setSelectionPath(DefaultTreeSelectionModel.java:338)
   at javax.swing.JTree.setSelectionPath(JTree.java:2211)
   at
javax.swing.plaf.basic.BasicTreeUI.selectPathForEvent(BasicTreeUI.java:2095)
   at
javax.swing.plaf.basic.BasicTreeUI$MouseHandler.handleEvent(BasicTreeUI.java:2543)
   at
javax.swing.plaf.basic.BasicTreeUI$MouseHandler.mousePressed(BasicTreeUI.java:2469)
   at java.awt.Component.processMouseEvent(Component.java:3808)
   at java.awt.Component.processEvent(Component.java:3670)
   at java.awt.Container.processEvent(Container.java:1027)
   at java.awt.Component.dispatchEventImpl(Component.java:5737)
   at java.awt.Container.dispatchEventImpl(Container.java:1922)
   at java.awt.Component.dispatchEvent(Component.java:2836)
   at java.awt.LightweightDispatcher.redispatch(LightweightDispatcher.java:325)
   at
java.awt.LightweightDispatcher.handleMouseEvent(LightweightDispatcher.java:151)
   at
java.awt.LightweightDispatcher.dispatchEvent(LightweightDispatcher.java:115)
   at java.awt.Container.dispatchEventImpl(Container.java:1911)
   at java.awt.Window.dispatchEventImpl(Window.java:607)
   at java.awt.Component.dispatchEvent(Component.java:2836)
   at java.awt.EventQueue.dispatchEvent(EventQueue.java:618)
   at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)


-- 

hendrich at informatik dot uni-hamburg dot de changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|WORKSFORME  |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28769



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/29500] New: setCursor modifies wrong JComponent

2006-10-18 Thread hendrich at informatik dot uni-hamburg dot de
My image viewer [1] uses a background thread to hide the cursor on the
main image canvas after some seconds of inactivity. This is done by a 
call to setCursor() with a custom transparent cursor.

Testing with classpath cvs 2006.08.18 shows that hiding the cursor and
restoring the original cursor basically works. However, the call to
ImageCanvas.setCursor() also changes (hides) the cursor of different 
parts of the GUI, namely the navigation tree and thumbnails preview panels,
and even the main menus.

A mouse-exit event on a component seems to reset the cursor in most cases.
However, entering the main image canvas re-enables the MouseHideManager,
and the cursor gets hidden again on whatever component it is positioned on.
Might be a problem with JSplitPane, JComponent, or even Component (AWT),
but I don't have a small testcase yet.

[1] http://tams-www.informatik.uni-hamburg.de/people/alumni/hendrich/niffler/


-- 
   Summary: setCursor modifies wrong JComponent
   Product: classpath
   Version: 0.93
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: swing
AssignedTo: roman at kennke dot org
ReportedBy: hendrich at informatik dot uni-hamburg dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29500



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


Torturing image ops and Swing

2006-08-03 Thread hendrich

Hello all,

anyone interested in torturing our Swing, awt.image and javax.image operations
a bit? Long text with a question buried at the end. Sorry, but I had  
to get this

off my soul; feeling much better already :-)



I have just uploaded a new, completely re-written version of my image  
viewer to

http://tams-www.informatik.uni-hamburg.de/personal/hendrich/niffler/index.html

Unlike the previous version with its deeply-nested popup-menu, the new version
uses a more traditional user-interface. It also adds image histogram,  
EXIF support,

and basic image editing based on get/setRGB, get/setRaster, ConvolveOp, and
ShortLookupOp (ByteLookupOp would be faster, but is broken on the JDK/Linux).


Download niffler-exif.jar (or the sources and build it yourself; you  
will need the
metadata-extractor library from www.drewnoakes.com for building the  
exif stuff).


jamvm -Xmx300m -Xms100m niffler.Niffler

1. Select menu  File  Open image directory...  and select a directory with
   some images. This is the first challenge, because JFileChooser is still
   about as user-unfriendly as possible. (I somewhat fear that many first-time
   classpath users might give up after trying to use JFileChooser. This is
   unfortunate, because the rest of Swing works pretty well these days.)

2. By default, Niffler also includes subdirectories in its search.  
Don't select

   your home directory or this can take a long time (about one minute with
   jamvm+cvs in my home directory, with 93.000+ files. For some reason,
   cacao 0.96 crashes after listing about 15.000 files. Smaller  
directories work.)


3. Loading small to medium-sized images works fine. Navigation works fine
   (type 'space' or 'n' for next image, 'p' for previous image, or  
use the menu).
   Zooming works fine ('f' for zoom-fit, 'g' for original-size,  
etc.). Mouse dragging

   works fine. The navigation tree, thumbnails preview, and histogram all work
   as they should (a little slow, perhaps, but jamvm is an  
interpreter, after all).

   Nitpicking: the splitpane dividers look bad.

4a. Loading typical digicam images with 4+ Mpixels is somewhat slower,  
but still

   almost acceptable. jamvm needs about 5 seconds for a 3000x2000 JPEG for
   image loading, plus about 7 seconds for calculating the histogram  
(when enabled).
   JDK 1.5 needs about 1.5 seconds for loading plus 0.3 secs for the  
histogram.


4b. Cacao calculates the histogram much faster (almost as fast as the  
JDK), but
 unfortunately it leaks memory and crashes after loading a few  
4+Mpixel images

 (with -Xmx300m and top reporting about 320M RSS actually used.)

 It seems that cacao 0.96 never garbage-collects image data?

4c. I didn't test with gcj yet, neither did I try jcvm.

---

For the following, use smaller images (800x600 or so) to avoid frustration.

5. Select Tools  Sharpen  Laplace 3x3. Simple convolution filter implemented
with ConvolveOp and applied to a BufferedImage TYPE_INT_RGB.

   java.lang.ArrayIndexOutOfBoundsException: 3
   at java.awt.image.ColorModel.getComponentSize(ColorModel.java:200)
   at java.awt.image.ColorModel.coerceData(ColorModel.java:641)
   at java.awt.image.DirectColorModel.coerceData(DirectColorModel.java:405)
   at java.awt.image.BufferedImage.coerceData(BufferedImage.java:288)
   at java.awt.image.ConvolveOp.filter(ConvolveOp.java:126)

   This worked a week ago, but very slowly. Try the Tools  Edges  Mexican
   Hat 13x13 filter, if you don't believe me. The JDK seems to include some
   optimizations for such (separable?) kernels.

   OK, lets try something else:

6. Select Tools  Negative Image. Obvious implementation based on
LookupOp. Works. Performance is ok (1 sec for 800x600). The result is
a BufferedImage.TYPE_INT_RGB.

BUT repainting suddenly takes 3 seconds for each paintComponent,
and the application is pretty much dead. For comparison, a repaint of the
BufferedImage before the filtering took about 10 msec.

For 3000x2000 images, each repaint takes 40 seconds on my system.
Any ideas about what I am doing wrong here are HIGHLY appreciated.

Load a new image. Repainting time is back to the millisecond range.

7. Perhaps LookupOp and ConvolveOp are bad? Select Tools  Rotate
image left (or right). Implemented 'by hand' via getRGB and setRGB.
Much slower than LookupOp, about 4 seconds on my system at 800x600.

But again, repainting suddenly takes many seconds.

8. What about ImageIO instead of java.awt.Toolkit?  Just select
Edit  Load images via ImageIO.

Loading a 800x600 JPEG takes about 200 msecs with Toolkit, and about
7 seconds with Toolkit. Loading a 3000x2000 JPEG takes 200+ seconds.

The imageio GIF reader is much faster (4 seconds at 3000x2000), but now
the conversion to BufferedImage.TYPE_INT_RGB takes 90+ seconds...

Images returned by the PNG reader render as transparent.

9. Select Help  Commands...  A simple JTextArea in a JScrollPanel

Re: Torturing image ops and Swing

2006-08-03 Thread hendrich

Hello Sven,

thanks for your detailed answers to my questions!  New Niffler version  
uploaded

and available right now (niffler-exif.jar and niffler-src.zip).



Right. BufferedImages created with Component.createImage(int, int) are
backed by a Cairo surface. Ones created directly by BufferedImage are
not. Again, this is one of these things that needs to be fixed,
basically so that all BufferedImages can have some native backing
buffer.)


Hmmm... ok.

I added a special classpath workaround to Niffler that checks for  
java.vendor

and calls ImageUtils.getCairoBackedImage( bufferedImage) before rendering when
GNU something is detected. This adds another image conversion (BufferedImage
drawn into an Image created by Component.createImage()), but makes the editing
operations useable with jamvm. Good.



7. Perhaps LookupOp and ConvolveOp are bad? Select Tools  Rotate
 image left (or right). Implemented 'by hand' via getRGB and setRGB.
 Much slower than LookupOp, about 4 seconds on my system at 800x600.


They can probably be faster, but I don't think they're the main problem
if the times you're measuring also include the repaint time.


Nope;  the times I quoted were the raw processing times, as reported by
System.currentTimeMillis() before and after the operation. Repainting times
are extra...



 Loading a 800x600 JPEG takes about 200 msecs with Toolkit, and about
 7 seconds with Toolkit. Loading a 3000x2000 JPEG takes 200+ seconds.


Too slow.


Yep. Please excuse my typo there; the 7 and 200+ seconds are for jamvm and
classpath loading a 800x600 or 3000x2000 JPEG via the imageio JPEG plugin.
You can try the 10+ MPixel images from the Brussels' mort subite for  
yourself...




 The imageio GIF reader is much faster (4 seconds at 3000x2000), but now
 the conversion to BufferedImage.TYPE_INT_RGB takes 90+ seconds...


Really? That sounds too fast, almost. How do you mean conversion?
Running it through a filter, or just drawing the image returned by
IIO onto the the aforementioned BufferedImagE?


You consider, 4+90 seconds too fast for 3000x2000?  Wait for next years'
digicams and cellphone cams :-)

But yes; I use the same code-path for images loaded by AWT or IIO; the
ImageUtils.getBufferedImage() method creates a BufferedImage.TYPE_INT_RGB
and draws the input image into that (unless the input image already is RGB).
Otherwise, I would need a PixelGrabber to get at the pixels for the histogram.



 Images returned by the PNG reader render as transparent.
9. Select Help  Commands...  A simple JTextArea in a JScrollPanel, but
 with about 700 lines of text. Try scrolling. Painfully slow.   
The vertical

 scrollbar only scrolls down on click event (but dragging works).


I'll have to check this out. drawString is fairly slow nowadays.
However, drawGlyphVector (and by extension TextLayout.draw) are quite
snappy, comparable to the JDK in speed. We might need to tune
Swing here.


Should I submit another bug for this?  Once upon a time, this used to be
PR24152...

I guess we need some technique to include performance-related tests in
Mauve for regular regression testing. Unfortunately, I don't know how to
do this, because both raw system speed and user picky-ness seem to
differ greatly between different systems...



Perhaps even better you could use VolatileImage (== an X pixmap). These
objects are slower to draw onto, but render to the screen as fast as
they possibly could, really. (Assuming X is doing a good job)
So if your intention is to draw-onto-bitmap-once, display-bitmap-many,
then it should make things many many times faster.


OK. I last tried VolatimeImage when JDK 1.4 came out, and it didn't seem
like a great idea to me back then... Perhaps it's time to give VolatileImage
another chance, now...

Thanks,
  Norman






[Bug awt/28369] BufferedImage.getRGB returns bad pixel data

2006-07-14 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #7 from hendrich at informatik dot uni-hamburg dot de  
2006-07-14 09:55 ---
Subject: Re:  BufferedImage.getRGB returns bad pixel data

 Ok, fixed now. 

Confirmed (cvs 2006.70.14). 


 Just FYI: We've got a pure-java GIF decoder for IIO now which is pretty fast.
 (by which I mean over an order of magnitude faster than the GdkPixubufDecoder
 one) Try it out!

Yeah, I have looked at this already (because I would need a pnm/ppm 
provider, and I wanted to see how much work this might be. Or could
we just import the freehep pnm stuff?).


BTW: javax/image/package.html still claims imageio to be based on 
ImageMagick, and it took me some time to figure out that gdk-pixbuf 
is used now...






But I use my image viewer mostly for JPEGs, and 
the ImageIO JPEG provider takes 10+ seconds for 500x700 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28369



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


gconf needs ORBit?!

2006-06-19 Thread Norman Hendrich
Hello all,

another build surprise, and another stupid question. Sorry.

Obviously, classpath cvs now depends on gconf, which depends on something
called ORBit that I have never heard of, and that I don't have. 

Well, building with --disable-gconf-peer now. (Another undocumented 
switch, but I am getting better at grepping configure scripts.)


Unfortunately, Google returns thousands of unrelated links for ORBit
and only unuseable links for the search ORBit-2.0. So, where do I
find this? Do I really want it?  (for linux x86)

Best, Norman

(BTW, the gconf home page is no help either, it still links to 1.2.x 
instead of 2.14.x ...)




[Bug awt/27947] Graphics2D buglet with rotated text

2006-06-19 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #3 from hendrich at informatik dot uni-hamburg dot de  
2006-06-19 10:03 ---
(In reply to comment #2)
 How does it rotate the text? I'm not seeing any problems when using
 Graphics2D.rotate(). 

Could you run jfig3.jar and confirm that creating rotated texts works for
you? This would probably indicate a problem with my freetype or my fonts.

http://tams-www.informatik.uni-hamburg.de/applets/jfig/archive/jfig3.jar

1. java -jar jfig3.jar
2. Load the attached .fig file (fonttest.jar) - this segfaults for me.

1. java -jar jfig3.jar
2. Click the T (text mode) button on the left
3. Select one of the fonts via the font button on the bottom.
   (Helvetica and Courier work on my system, Times does not).
4. Click the rotation angle button a few times (rightmost button on the
   bottom attributes control panel) to select a non-zero rotation angle.
5. Click the left mouse button anywhere on the drawing canvas to place the
   text object.
6. Type some text (including digits and special chars etc) and verify that
   it is rotated.





The relevant code looks like this, where createCompoundTransform calls
preconcatenate:

  ...
  AffineTransform tmpTrafo =
 FigTools2D.createCompoundTransform( origTrafo, trafo );
  tmpTrafo.translate( basePoint.x,
  basePoint.y );
  tmpTrafo.rotate( -attribs.fig_angle );
  tmpTrafo.translate( left, 0 );
  g2D.setTransform( tmpTrafo );

  if (s.length()  0) {
g2D.setColor( attribs.lineColor );
g2D.setFont( font );
g2D.drawString( s, 0, 0 );
  }


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27947



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug awt/27947] Graphics2D buglet with rotated text

2006-06-19 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #4 from hendrich at informatik dot uni-hamburg dot de  
2006-06-19 10:05 ---
Created an attachment (id=11696)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11696action=view)
figure file with rotated text objects


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27947



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


Re: gconf needs ORBit?!

2006-06-19 Thread Norman Hendrich
Hello Roman,

thanks for your quick reply.


 Orbit is usually installed as part of Gnome. Of which gconf is the
 configuration management. So if you have gconf you usually also have
 Gnome and with it you'll have Orbit.

OK. So far, I only have those parts of gnome required to building 
classpath. So much for my priorities :-)


classpath configure now requires gconf = 2.11.2:

./configure --with-jikes --disable-plugin --prefix=/opt/classpath
[...]
checking for gconf-2.0 = 2.11.2... Package gconf-2.0 was not found in the 
pkg-config search path.
Perhaps you should add the directory containing `gconf-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gconf-2.0' found


while building gconf 2.11.92 fails with

./configure
No package 'ORBit-2.0' found
configure: error: Package requirements (gmodule-2.0 = 2.7.0 gobject-2.0 = 
2.7.0 ORBit-2.0 = 2.4.0) were not met.


and building a fresh gconf 2.14.0 fails with:

./configure
checking for DEPENDENT... Requested 'glib-2.0  2.9.0' but version of GLib is 
2.8.6
configure: error: Package requirements (glib-2.0  2.9.0 gmodule-2.0 = 2.7.0 
gobject-2.0 = 2.7.0 ORBit-2.0 = 2.4.0) were not met:

I don't use GNOME. Seems like --disable-gconf-peer is the way to go.
What are the gconf peers supposed to do anyway?

Thanks, Norman








[Bug swing/28061] New: JTree issues and regressions

2006-06-16 Thread hendrich at informatik dot uni-hamburg dot de
At the moment, the state of JTree is much worse than some time ago...
Run the free swing demo and select tree demo.


1. clicking on the switches does nothing. It should expand/collapse the
   corresponding subtree.

2. double-clicking an intermediate node correctly expands its subtree,
   but double-clicking again does not collapse the subtree. As a result 
   of 1. and 2., we can never collapse a subtree again.

3. clicking the text label a node correctly selects that node, but double-
   clicking the label of an node does nothing. The reference implementation
   expands/collapses the subtree of an intermediate node (and users will
   expect this).

4. The JTree ignores the cursor-key navigation: cursor-up and -down should
   move one node up and down, cursor-right and cursor-left on an intermediate
   node should expand/collapse the subtree. This was working sometime ago.

5. doesn't look that nice (switches just ugly, a little too much spacing).

6. scrollPathToVisible( treepath ) does not work.

I also attach the first version of a class, whose more polished version
might make it into the free swing demo later on... JTree on the left,
with lots of nodes in it (repainting slow because of the JTextArea).


-- 
   Summary: JTree issues and regressions
   Product: classpath
   Version: 0.92
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: swing
AssignedTo: roman at kennke dot org
ReportedBy: hendrich at informatik dot uni-hamburg dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28061



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/28061] JTree issues and regressions

2006-06-16 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #1 from hendrich at informatik dot uni-hamburg dot de  
2006-06-16 14:50 ---
Created an attachment (id=11680)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11680action=view)
testcase

A simple testcase that embeds JTree inside a JSplitPane, with quite a few
nodes. Scrolling the tree works fine, but subtrees can only be expanded,
never collapsed.

Will add new event handling (node selection, scrollPathToVisible, etc.)
later.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28061



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug awt/27917] Massive memory leak in Graphics2D image operations

2006-06-08 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #9 from hendrich at informatik dot uni-hamburg dot de  
2006-06-08 12:25 ---
(In reply to comment #8)
 This seems to be a deadlock happening when the HideCursorManager sets the
 cursor  at some inconvenient time. I haven't debugged it fully yet. 

Good catch! This sounds very possible. When I tried gdb on this, I just got
lots of waiting threads, but didn't notice any of the cursor hiding stuff.


 It probably
 deserves its own bug report. Is there an easy way to disable the
 HideCursorManager?

Not yet...  (it is probably easiest to uncomment all setCursor calls in
Niffler.java).

I hope that get/setCursor is considered a thread-safe AWT operation. Using
SwingUtilities.invokeLater would probably not help, or would it?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27917



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug awt/27929] New: RoundRect2D buglet

2006-06-07 Thread hendrich at informatik dot uni-hamburg dot de
Another corner-case bug: the rendering of rounded rectangles is broken when the
corner radius gets large (i.e. larger than the width/height of the rectangle
itself). The JDK falls back to a kind of ellipse in those cases. See attached
screenshots for a few examples rendered with cacao+classpath and JDK 1.4.2.


-- 
   Summary: RoundRect2D buglet
   Product: classpath
   Version: 0.92
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: awt
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hendrich at informatik dot uni-hamburg dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27929



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug awt/27917] New: Massive memory leak in Graphics2D image operations

2006-06-06 Thread hendrich at informatik dot uni-hamburg dot de
My image viewer application shows a massive memory leak when running on jamvm
with classpath cvs (2006.06.06) - about 10..30 MBytes of memory per
medium-sized image. 

Goto http://tams-www.informatik.uni-hamburg.de/personal/hendrich/niffler/
and download niffler.jar and optionally the sources. Run the jar and specify
the name of a directory with lots of images in it:

jamvm -jar niffler.jar /home/hendrich/images/

The app should start up now (note that it also might just crash immediately
after the first repaint; jamvm just hangs) and displays the first image.

Move the mouse over the image, activate the popup menu and deselect 
popup  thumbnails  enable thumbnails, because creating the thumbnails 
may take a long time.

Open the popup menu and select popup  slideshow  start slideshow (linear)
or type F9. Optionally, type i or select popup  slideshow  half interval
to reduce the delay between images.

Observe memory consumption...



I have no simple testcase yet, because some image operations seem to happen
asynchronously. I suspect that the loaded images are never garbage-collected.
(It also might be the scaled image drawImage(x y w h x y w h), but this seems
to work in my circuit simulator.)


-- 
   Summary: Massive memory leak in Graphics2D image operations
   Product: classpath
   Version: 0.92
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: awt
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hendrich at informatik dot uni-hamburg dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27917



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


Re: Build failure: mozilla-plugin

2006-05-11 Thread Norman Hendrich
Hello Tom,

 Try --disable-plugin.

oops... ok, works. Thanks.

Guess I should have grep'ed for plugin instead of mozilla 
in ChangeLog*. Perhaps a better error message is in order?

- Norman




[Bug awt/26486] Graphics.fillRect extremely slow

2006-03-10 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #22 from hendrich at informatik dot uni-hamburg dot de  
2006-03-10 10:17 ---
Subject: Re:  Graphics.fillRect extremely slow

 Please disregard the numbers in Comments 18 and 19.  Because of a bug in GNU
 Classpath's build machinery (PR 26623), I was testing the same patch both
 times.  Here are the actual results for GCJ:

one bug report almost always triggers the next ;-)


 I think these results are pretty conclusive.

yep. Thanks for fixing this; applications using lots of drawing should 
run much faster now.


 - oneslime.net hardly flickers at all but feels sluggish.
 - oneslime.net flickers badly but is fast and playable
 - oneslime.net is unplayably choppy

Do you have the source code for oneslime?  

I tried to look at the source code, but failed to find a download.
If you don't have the source code, I am not sure that oneslime is
the best reference application for gcj/classpath - except for its
historical value of being the first applet/game ever running with
classpath, of course. I have received (mild) flak on gcj/classpath 
lists for using non-open-source apps as tests myself...

Using javap on the class files shows that there is a paint() method,
but no update() method. The flickering indicates that oneslime doesn't
use its own double-buffering. Therefore, the lack of update() is a 
strong indication of a broken design - prone to flicker.

Perhaps we can find another reference app for testing and benchmarking
animations?

- Norman


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26486



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug awt/26486] Graphics.fillRect extremely slow

2006-03-07 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #11 from hendrich at informatik dot uni-hamburg dot de  
2006-03-07 13:15 ---
Created an attachment (id=10981)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10981action=view)
testcase with animation based on AWT

The AWT variant of my previous Swing-based GameOfLife testcase.
(Both the JDK and JamVM+classpath show extreme flickering, as no
double-buffering is used.)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26486



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug awt/26486] Graphics.fillRect extremely slow

2006-03-07 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #12 from hendrich at informatik dot uni-hamburg dot de  
2006-03-07 13:27 ---
As an experiment, I rewrote the Swing-based animation to a pure AWT-based
animation (without double-buffering). I tried running with the JDK and
jamvm+classpath (with and without the gdk_flush()). Observations:

* the animation shows horrible flickering with the JDK and with classpath:
  all fillRect() calls are done directly on on-screen buffers. (Obviously,
  I forgot that double-buffering had to be done manually in the AWT...)

* with the gdk_flush() calls after each fillRect(), jamvm+classpath runs
  even slower than the Swing version. One can literally watch jamvm 
  painting individual rectangles. (The Swing RepaintManager seems to do
  a good job to coalesce repaints).

* jamvm+classpath does NOT call update() but only paint(). This seems wrong.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26486



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug awt/26486] Graphics.fillRect extremely slow

2006-03-07 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #6 from hendrich at informatik dot uni-hamburg dot de  
2006-03-06 08:51 ---
Created an attachment (id=10974)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10974action=view)
improved testcase with frames/second counter


-- 

hendrich at informatik dot uni-hamburg dot de changed:

   What|Removed |Added

  Attachment #10925|0   |1
is obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26486



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug awt/26594] AWT repaint fails to call update() for Lightweights

2006-03-07 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #1 from hendrich at informatik dot uni-hamburg dot de  
2006-03-07 13:48 ---
Created an attachment (id=10982)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10982action=view)
testcase to demonstrate the bug


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26594



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug awt/26486] Graphics.fillRect extremely slow

2006-03-07 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #13 from hendrich at informatik dot uni-hamburg dot de  
2006-03-07 13:53 ---
Created an attachment (id=10983)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10983action=view)
improved AWT-based testcase

An improved version of the testcase submitted a few minutes ago.
I finally remembered how flicker-free AWT-based animations were 
supposed to work via update() and paint(). Unfortunately, this
uncovered another buglet, #26594...


-- 

hendrich at informatik dot uni-hamburg dot de changed:

   What|Removed |Added

  Attachment #10981|0   |1
is obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26486



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug awt/26486] Graphics.fillRect extremely slow

2006-03-07 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #5 from hendrich at informatik dot uni-hamburg dot de  
2006-03-06 08:49 ---
Subject: Re:  Graphics.fillRect extremely slow

Hello Tom,

 Can you try commenting out the call to gdk_flush() in
 Java_gnu_java_awt_peer_gtk_GdkGraphics_fillRect?

Done. The animation runs mucher faster without the gdk_flush calls.
On my system with classpath cvs 20060228 and jamvm, the difference 
is about 3 repaints/second (with gdk_flush) vs 12 repaints/second 
(without gdk_flush).

I did not test with gcj again, because I did a make clean in my gcc
build directory, and I do not want to wait for another bootstrap. Sorry.

Repainting seems smooth and correct without the gdk_flush() calls,
but it would be difficult to spot bugs in my GameOfLife/FillRect demos
anyway. Note that I have changed the demo slightly to include an actual
frames/second count. This is necessary, because classpath currently
drops or coalesces a lot of repaints.


So...

I guess we should take out all the gdk_flush() calls from the several
drawXXX and fillXXX methods in GdkGraphics.c, and just use one single
gdk_flush() (if at all) just before repainting a component?

- Norman


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26486



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


Re: ANN: image viewer

2006-01-26 Thread Norman Hendrich
Hello Christian,

 I tested it with CACAO and it works, but it's not blazingly fast :-)

Thanks. I had some hope that a JIT compiler would help a bit, but
apparently not...  still, at least on my system, image loading under
JDK 1.5.0 is almost twice as fast as JDK 1.4.2, and JDK 1.6 beta is
a little faster again. I guess Classpath will evolve as well.


 And there is a problem when cairo is enabled: [...]
 Anything i should debug?

This is PR24211, submitted (almost) four months ago. There are also
PR24116, PR24099, PR24349, and a few others to be fixed before Graphics2D
becomes useable. That is why I asked about the state of the Java2D 
rewrite...

- Norman


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


ANN: image viewer

2006-01-25 Thread Norman Hendrich
Hello all,

a while ago Mark persuaded me to re-release my simple image viewer 
application as open source, especially as several parts of it already 
accompanied my Swing-related bug reports...

I finally found the time to clean-up the sources a bit, and I also added
thumbnails support. This is not a Gimp, not even a Picasa, but I still 
like it to view my images because the mouse-dragging lets me scroll 
quickly to areas of interest in the magnified images:

http://tams-www.informatik.uni-hamburg.de/personal/hendrich/niffler

The application expects the image directory name as its first argument;
without explicit parameter (e.g. when using webstart) the viewer will
search your home directory for images. Depending on the number of files 
lying around there, this can take some time... If necessary, just use 
the popup-menu and select another image directory.

jamvm -Xmx256m -jar niffler.jar /home/hendrich/images/

I only tested with classpath-0.20 under jamvm (and different JDKs).
It kind of works, but scrolling is still a little too slow for a good
user experience. Thumbnails support is very experimental, so please
report bugs.

If anyone has time to test this with a faster VM (like cacao or gcj),
please let me know the results. If anyone wants to add this to the 
'free Swing apps' page, please do...

- Norman

BTW: any news about the big Java2D rewrite?




---

Additional technical info for Swing fans and developers:

As usual, the program GUI has the directory-tree (explorer) on the left,
thumbnails on the top, and the image in the center (rather, bottom-right).
Using two custom components (ImageCanvas and ThumbnailsPanel) and a JTree
embedded in three JScrollPane's in two nested JSplitPane's, and a rather
large nested JPopupMenu, the program tortures the free Swing pretty badly... 
it basically works, but there are still repainting bugs all over the place.

Performance-wise, loading and displaying most JPEGs works fine when using
the (default) loadImageViaAWT method. Image drawing seems a bit slow, but
still acceptable on the main image canvas. Scrolling is too slow to be fun.
Expanding/collapsing subdirectories in the JTree often fails to notify 
the JScrollPane, so that the scrolling for the tree is broken.

Note 1: my first version of ThumbnailsPanel would request an image drawing
operation for every thumbnail without Graphics.clipRect test. This version
ran 15000 times slower on classpath-0.20/jamvm than on JDK 1.5.0 on a 
directory with 800 thumbnails, probably because the JDK drawImage()
method internally checks the clipRect and returns quickly if outside.
The current version of ThumbnailsPanel.paintComponent() includes its own
clipRect test, which has little effect on the JDK, but makes classpath 
useable.

Note 2: thumbnail creation is pretty slow, because the source images
is first loaded, rescaled, and then written. Unfortunately, ImageIO
is unable to access the EXIF previews embedded in most JPEGs and TIFFs.

Note 3: once the app is running, try switching to javax.imageio instead
of the AWT image loading:  popup-menu - options - load images via ImageIO.
I predict you won't like the resulting performance...


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


[Bug swing/24651] JMenu layout problem with nested menus

2006-01-20 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #33 from hendrich at informatik dot uni-hamburg dot de  
2006-01-20 11:37 ---
Subject: Re:  JMenu layout problem with nested menus

 Sorry, I can't confirm that the menus are that slow. But you are right, this
 might be related to the underlying image beeing redrawn. Maybe I just don't
 have a big enough image to see such performance issues. Could you open a new
 bug for this performance issue and attach an image with which you see the slow
 behaviour? Please assign this new bug to me. I'll close this bug now.

OK. I agree that image rendering is the probable cause of the performance
problem...

I recently added 'thumbnails' support to my image viewer application,
and redrawing the ThumbnailsPanel is incredibly slow in Classpath 
- I measured a factor of 15000 slowdown when running under Classpath+Gtk
compared to JDK 1.5.0 :-(

I promised Mark to prepare a nice open-source licensed version of the
code, and I will submit new bug reports when this is done (soon).

- Norman


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24651



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/24890] New: NPE in

2005-11-16 Thread hendrich at informatik dot uni-hamburg dot de



-- 
   Summary: NPE in
   Product: classpath
   Version: unspecified
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: swing
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hendrich at informatik dot uni-hamburg dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24890



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/24890] NPE in PlainDocument.insertString

2005-11-16 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #1 from hendrich at informatik dot uni-hamburg dot de  
2005-11-16 12:32 ---
to whom it may concern:

I am getting the following NPE when running one of my test apps with
classpath cvs head (2005.11.16) on jamvm 1.3.2 linux-x86:

java.lang.NullPointerException
   at javax.swing.text.PlainDocument.insertString (PlainDocument.java:238)
   at javax.swing.text.AbstractDocument.replace (AbstractDocument.java:709)
   at javax.swing.text.JTextComponent.setText (JTextComponent.java:977)
   at hades.gui.JStatusPanel.setFilename (JStatusPanel.java:78)
   ...

This calls JTextComponent.setText(null), which works fine on the JDKs...
I guess we need an additional null check here.

- Norman


-- 

hendrich at informatik dot uni-hamburg dot de changed:

   What|Removed |Added

Summary|NPE in  |NPE in
   ||PlainDocument.insertString


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24890



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/24651] JMenu layout problem with nested menus

2005-11-10 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #28 from hendrich at informatik dot uni-hamburg dot de  
2005-11-10 17:06 ---
 Could you test this again

Cvs update done.

For this test, I did run imageviewer with the '-noflicker' option, which 
should disable the JTree updating and painting and the JTree-related problems.
Showing the menu indeed seems a little bit faster, but I am pretty certain 
it is much slower than it was in classpath 0.18. 

Is there an easy way to trace what JComponents receive repainting requests
(clip-regions included)?


(Note: Image loading and scaled image drawing itself should be fast enough, 
and the image viewer was surprisingly useful with 0.18 under jamvm. For 
example, image resizing was almost instantaneous - minus the scrolling, 
which didn't work at all back then.)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24651



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/24651] JMenu layout problem with nested menus

2005-11-07 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #11 from hendrich at informatik dot uni-hamburg dot de  
2005-11-07 16:22 ---
Sorry Lillian,

I am still not happy with JPopupMenu... The size of nested submenus 
seems not to grow anymore after your last fix, but now the initial
layout of lightweight popups is broken. I got the same effect a few times
when I first submitted PR24651, but now it seems reproducable. Note that
if I activate the popup menu near the application boundary to enforce
a heavyweight popup, the popup appears and the layout is ok afterwards!!!

Try running the new testcase PR24651b with the JDK and jamvm+classpath. 
You should see a popup, but this seems to be empty right now. Last weeks
test showed that the menu items were there, but (partially or totally)
shifted out of the popup menu itself.


-- 

hendrich at informatik dot uni-hamburg dot de changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24651



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/24651] JMenu layout problem with nested menus

2005-11-07 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #12 from hendrich at informatik dot uni-hamburg dot de  
2005-11-07 16:23 ---
Created an attachment (id=10164)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10164action=view)
testcase to show empty popup


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24651



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/24651] JMenu layout problem with nested menus

2005-11-03 Thread hendrich at informatik dot uni-hamburg dot de


--- Comment #5 from hendrich at informatik dot uni-hamburg dot de  
2005-11-03 15:32 ---
Created an attachment (id=10126)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10126action=view)
testcase to demonstrate the issue


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24651



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


Re: Mauve results

2005-11-01 Thread Norman Hendrich
Hello Mark, hello David:

Mark Wielaard wrote:

 All in all not too bad. I'll try and analyze (and hopefully fix the few
 non-free-swing regressions). I do worry a bit about the fact that JList
 doesn't seem to scroll anymore (see my previous email about the
 FreeSwingTestApps). There has been a lot of progress with FreeSwing, and
 I know our JLists worked much better then they do now.


David Gilbert wrote:

 I'd be interested to know if anyone is actually using the JFileChooser in a
 real application at present. When I first tried it, it was only just usable.
 Last time I looked, I think the JList scrolling problem had rendered it
 useless.  

I would _like_ to use JFileChooser...  but the JList problem simply makes
this useless indeed atm. (For testing, just try to open the last file in
a directory with more than a few dozen files).

---

Over the weekend, I finally tried to track down and isolate the scrolling 
bugs that make my test application (JImageViewer) unuseable with current 
classpath cvs due to excessive flickering. I strongly suspected JScrollPane 
and friends, but several hours of testing revealed that JScrollPane with
JViewport and Scrollable finally work more or less as they should - at least 
for my testcases. (There remains a clipRect issue, but different versions 
of the JDK disagree on that one, too.) The flickering turned out to be due
to JTree requesting useless revalidates (with wrong sizes). I have not
submitted a bug report for that yet because using JTree in a JScrollPane
is completely broken anyway, and we already have a bug for it. Bug 24145 
is claimed to be invalid, but should be revisited.

IMO, Fixing the Scrollable behaviour of JList and Jtree would make a 
big step towards real-world-application-compatibility of Free Swing.

- Norman



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


classpath+mauve

2005-10-14 Thread Norman Hendrich
Hello David and Audrius,

first of all, thanks for your answers to my mauve-setup question(s).
I tried the MakeTestClassList program, which seems to work fine.
However, after spending another few hours trying to get the whole 
testsuite running, my worst fears are confirmed... To summarize:

* writing new testcases is easy

* running individual testcases is easy (from the shell or eclipse)

* running parts of the testsuite via an index file works.

* BUT there is no easy way to run the whole testsuite. A developer
  first has to create a custom list of exclusion testcases, before
  running the remaining fraction of the testsuite... 
 

Despite David's nice program, command line parameters, and exclusion 
testcase lists, I did not manage to run the whole testsuite reliably 
against today's classpath CVS. After passing some tests,
jamvm encounters a test that throws some unexpected exception,
runs into a stack-overflow, or complains about an IllegalStateException
in loadClass(). In all cases, gnu.testlet.runner.Mauve does not run to 
the end, and the user doesn't even get the summary of test results.

This basically leads to the situation that a developer needs to run the
testsuite, try to understand the last error, remove the problematic test 
question from the list of testcases, and re-run. I tried this from scratch
without David's exclusion list, but stopped after the first 20 iterations
of this (with no end in sight). I then proceeded to remove larger chunks
of the tests, and finally got a test report - but this in turn means
that many tests were never run at all.

---

The current all-testcases-at-once model used by gnu.testlet.runner.Mauve
is not robust enough to survive all tests, while the opposite strategy
of running each test in a new VM via (Simple)TestHarness is extremely
wasteful due to the VM initialization overhead.

Perhaps we could switch to a two-level model, where an outer process
watches the progress of the inner runner process, and restarts the 
inner process whenever this crashes or deadlocks?

Also, a test that doesn't compile should be marked as FAIL instead
of stopping the testsuite to run at all...


- Norman

PS: a matrix of today's mauve experiments:

* mauve+jdk1.5.0 with 'make check': doesn't even compile
* mauve+jdk1.4.2 with 'make check': works, but subset of tests only
* mauve+jdk1.4.2 with 'ant': doesn't even compile
* mauve+jdk1.5.0 with 'ant': doesn't even compile
* mauve+classpath+jamvm+jikes:  compiles, but crashes on lots of testcases













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


Re: classpath+mauve

2005-10-14 Thread Norman Hendrich

 Not true. I just use the batch_run utility to run them all. I know that
 Mark uses this too.

When I first tried the script, every test would FAIL... looking at it
again I see this is simply due to the hard-coded path to glibj.zip. 
After changing the path, the script works.

Still, the script does incur a single compilation and a VM initialization 
per testcase, and runs MUCH slower than gnu.testlet.runner.Mauve.

Thanks for the tip. Problem solved, testsuite running (crawling) now.

- Norman



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


classpath+jamvm+mauve Howto?

2005-10-13 Thread Norman Hendrich
Hello all,

[I recently checked out Mauve CVS with the good intention of first
running the testsuite, learning from the existing testcases, and
then converting my own bug-report testcases into some nice Mauve
regression tests.]

Unfortunately, running Mauve under classpath+jamvm is less fun than
I expected. Running the default make check:

* works fine with JDK 1.4.2 (129 fails, 6341 tests total), 

* while JDK 1.5.0 dies with a compiler error:
  gnu/testlet/java/math/BigInteger/compareTo.java:79: 
compareTo(java.math.BigInteger) in java.math.BigInteger 
  cannot be applied to (java.lang.Integer)
a.compareTo(new Integer(1));

* and classpath with jamvm simply crashes, with make exiting with 
  'error 139' or jamvm dying with OutOfMemoryExceptions.

So:

(1) Can anyone please provide some feedback whether mauve+classpath+jamvm
is supposed to work out-of-the-box?  

If it is not, we should somehow tweak mauve to make running the
testsuite easier. It will be very hard to convince developers to run
the mauve tests at all, if this requires a lot of extra effort.

Given that many people seem to use jamvm for classpath hacking,
I guess jamvm would also be useful as a 'reference VM' for mauve.

(2) If anyone has a current list of unsupported tests and tweaks to
get Mauve running with jamvm, please post them...  A list of XFAILS
would also be nice, because I have no idea whether some tests (like
the korean? locale tests) are expected to pass or fail.

I would also appreciate a short howto or command lines for the mauve
configure and make check scripts, including magic options like
initial and maximum memory sizes, etc.


About Mauve: (please excuse me for asking this here, but I guess that
many more people are subscribed to the classpath mailing list than the
mauve-discuss list, and one question should not produce to much noise):

(3) several of the GUI tests leave their windows lying around... 
is this intentional or just an oversight?  (I did run the tests on
my normal desktop X server, not the extra hidden test X server)

(4) A google search tells me that make complains of 'error 139' when
the C compiler aborts, but I don't know how this can happen in the
context of Mauve...

(5) Are the results linked from the classpath homepage really the best 
we can do?

http://www.object-refinery.com/classpath/mauve/report/

(6) How do I enable all 32157 tests listed in the above report, when
the default cvs checkout (see above) only runs 6341 tests with 
the JDK?

- Norman



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


Swing (more screenshots)

2005-10-07 Thread Norman Hendrich
Hello all,

a while ago I made myself some enemies complaining about the AWT/Swing
support in gcj (http://gcc.gnu.org/ml/java/2005-05/msg00052.html).
Back then, I was really frustrated about obscure compiler bugs in gcj
being fixed within minutes, while even small test programs like many
of the Swing-trail examples from the Java tutorial would crash...

Since then, I swiched from testing gcj+classpath to jamvm+classpath.
Overall, the progress with Swing is really astonishing, despite a few
drawbacks due to added functionality (like the accessibility stuff,
better plaf support, and the repainting refactoring).

---

Perhaps submitting bug reports with testcases made all the difference?

Some days during the last weeks, it really felt like I had three or
four people working just for me: thanks Lillian, Roman, Tony, and Tom F.
Naturally, thanks to all the other AWT and Swing hackers, too.
I would submit a few bug reports in the morning from Hamburg, and fixes
started to come in from all over the world the same day. That is quite
different from my experience with bug reports at Javasoft, where nothing
except the autoreply would ever happen...

To honor all the good work, I created a few screenshots from my test
applications, including some advanced Swing stuff.  Lacking a website
for this, I decided to submit another pro-forma bug report and attached
the images. That way, a snapshot of the classpath Swing status as of
2005.10 will remain online:

gcc.gnu.org/bugzilla/show_bug.cgi?id=24256


---

I would have liked to include some Graphics2D stuff, but unfortunately
this doesn't work at the moment (actually worse than 2 months ago).
I also cannot run many real-world applications, but the set of real
show-stoppers in my own test applications is pretty short already.
Sorted by relevance, my personal wishlist looks like this:

(1) fix JScrollPane and JViewport
(2) make JTextField and JTextArea more robust
(3) implement the missing bits of Graphics2D (fix segfaults)
(4) fix JFileChooser (and make it look pretty)

As most 'complex' Swing components like JTable, JTree, JTextArea
are usually embedded in a JScrollPane (or use one like JFileChooser),
the JScrollPane issue is especially annoying. There are at least two
open bugs, but nobody seems to be working on it.

- Norman





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


[Bug awt/24211] New: Another Graphics2D segfault

2005-10-05 Thread hendrich at informatik dot uni-hamburg dot de
With Graphics2D enabled, one of my test apps dies with the following segfault
(classpath cvs head 2005.10.05, jamvm 1.3.2, linux-x86, GTK 2.4, cairo 0.5.1).

I have no small testcase yet... does anybody know an open-source application
that uses RenderingHints (BILINEAR and ANTIALIASING)?



Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 147466 (LWP 16307)]
cairo_pattern_set_filter (pattern=0x0, filter=CAIRO_FILTER_FAST)
at cairo-pattern.c:489
489 if (pattern-status)
(gdb) where
#0  cairo_pattern_set_filter (pattern=0x0, filter=CAIRO_FILTER_FAST)
at cairo-pattern.c:489
#1  0x4483628c in
Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSurfaceSetFilter
Unlocked (env=0x8061794, obj=0x4106d7f8, filter=1)
at gnu_java_awt_peer_gtk_GdkGraphics2D.c:1965
#2  0x44836330 in
Java_gnu_java_awt_peer_gtk_GdkGraphics2D_cairoSurfaceSetFilter
 (env=0x0, obj=0x0, filter=0) at gnu_java_awt_peer_gtk_GdkGraphics2D.c:1941
#3  0x0805d875 in callJNIMethod (env=0x8061794, class=0x0, 
sig=0x8070a10 (I)V, ret_type=0, ostack=0x83b0c60, 
f=0x44836300 U\211åSè|µÿÿ\201ÃK\002\002, args=2) at dll_md.c:64
#4  0x0804e931 in callJNIWrapper (class=0x0, mb=0x82301e4, ostack=0x0)
at dll.c:325
#5  0x08051856 in executeJava () at interp.c:2236
#6  0x0804f557 in executeMethodVaList (ob=Variable ob is not available.
) at execute.c:66
#7  0x0804f5f9 in executeMethodArgs (ob=0x0, class=0x0, mb=0x0) at execute.c:38
#8  0x0805b251 in threadStart (arg=0x839a510) at thread.c:257
#9  0x4002dc60 in pthread_start_thread () from /lib/libpthread.so.0
#10 0x4002dcdf in pthread_start_thread_event () from /lib/libpthread.so.0
#11 0x4018eb77 in clone () from /lib/libc.so.6


-- 
   Summary: Another Graphics2D segfault
   Product: classpath
   Version: unspecified
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: awt
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hendrich at informatik dot uni-hamburg dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24211



___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


[Bug swing/23558] JComboBox problems (including VM crash)

2005-09-02 Thread hendrich at informatik dot uni-hamburg dot de

--- Additional Comments From hendrich at informatik dot uni-hamburg dot de  
2005-09-02 08:45 ---
Subject: Re:  JComboBox problems (including VM crash)

Hello Thomas,

 [Bug swing/23558]
 I can't reproduce this with GNU Classpath HEAD and jamvm 1.3.2.  Can you retry
 with JamVM 1.3.2?  I'm assuming you're running on Linux x86?

Yes, basically SuSE 8.2 with lots of updates (current GTK, cairo, gcc,
auto-tools, etc).

Admittedly, the JComboBox of current Classpath CVS HEAD under jamvm 1.3.2
survives a bit longer than two weeks ago. However, after twenty or so
'random' clicks iterations it still dies: 

java/xxx /opt/jamvm/bin/jamvm -mx64m PR23558
The program '.' received an X Window System error.
This probably reflects a bug in the program.
The error was 'BadWindow (invalid Window parameter)'.
  (Details: serial 36641 error_code 3 request_code 20 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error() function.)
   
I just start the application, select an item from the drop-down list,
open the drop-down list again, click one of the up/down arrows, click
an item, repeat. I should probably write a Robot-based test for this...
   
Unfortunately, I still have no classpath-compatible version of gdb,
so no meaningful backtrace...


 Also, can you file a separate Swing bug about selecting the JComboBox's 
 first item?

yes. Probably on Monday, though.

BTW: thanks for fixing the slow image loading. Running my testcase works
like a charm now, but my real app now dies before even loading the first
image. Somebody must have broken Swing:

/tmp /opt/jamvm/bin/jamvm -mx64m niffler.JImageViewer ~/.niffler
java.lang.NullPointerException
   at java.awt.Dimension.init (Dimension.java:105)
   at java.awt.Container.preferredSize (Container.java:664)
   at java.awt.Container.getPreferredSize (Container.java:642)
   at javax.swing.JComponent.getPreferredSize (JComponent.java:1047)
   at javax.swing.ScrollPaneLayout.preferredLayoutSize 
(ScrollPaneLayout.java:265)
   at java.awt.Container.preferredSize (Container.java:661)
   at java.awt.Container.getPreferredSize (Container.java:642)
   at javax.swing.JComponent.getPreferredSize (JComponent.java:1047)
   at java.awt.FlowLayout.layoutContainer (FlowLayout.java:183)
   at java.awt.Container.layout (Container.java:519)
   at javax.swing.JSplitPane.addImpl (JSplitPane.java:340)
   at java.awt.Container.add (Container.java:292)
   at javax.swing.JSplitPane.setLeftComponent (JSplitPane.java:698)
   at javax.swing.JSplitPane.init (JSplitPane.java:237)
   at niffler.JImageViewer.createGUI (JImageViewer.java:182)
   at niffler.JImageViewer.init (JImageViewer.java:114)
   at niffler.JImageViewer.main (JImageViewer.java:2491)

- Norman



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23558


___
Bug-classpath mailing list
Bug-classpath@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-classpath


Qt-peers and AC_PROG_CXX

2005-08-25 Thread Norman Hendrich
A dumb question about the classpath build infrastructure:

Since the recent Qt-peers checkins, trying to build classpath CVS from 
scratch fails on my system (basically still a SuSE 8.2 with lots of updates):

...
native/jni/qt-peer/Makefile.am: C++ source seen but `CXX' is undefined
native/jni/qt-peer/Makefile.am: 
native/jni/qt-peer/Makefile.am: The usual way to define `CXX' is to add `AC_PROG
_CXX'
native/jni/qt-peer/Makefile.am: to `configure.ac' and run `autoconf' again.

And indeed, if I uncomment the AC_PROG_CXX call in configure.ac, the
build succeeds (actually, I moved AC_PROG_CXX to after AC_PROG_CPP).

1)  Is there any deep reason why the AC_PROG_CXX test is commented out?
2a) If not, could somebody with write access please reinstate it?
2b) If yes, what magic auto* settings, shell settings, or auto* versions
are required to pass the CXX tests?

- Norman




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