You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pivot.apache.org by Niclas Hedhman <ni...@hedhman.org> on 2009/08/04 07:15:50 UTC

Exception while operating my app brutally...

I don't know if you are interested in Exceptions that are really hard
to generate, but below is one that I managed to get just now, but not
capable of figuring out exactly how to reproduce...

java.lang.IllegalArgumentException: Mouse pointer is not currently
over capturer.
	at org.apache.pivot.wtk.Mouse.capture(Mouse.java:104)
	at org.apache.pivot.wtk.skin.terra.TerraScrollBarSkin$HandleSkin.mouseDown(TerraScrollBarSkin.java:556)
	at org.apache.pivot.wtk.Component$ComponentMouseButtonListenerList.mouseDown(Component.java:421)
	at org.apache.pivot.wtk.Component.mouseDown(Component.java:2342)
	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
	at org.apache.pivot.wtk.Window.mouseDown(Window.java:1130)
	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
	at org.apache.pivot.wtk.ApplicationContext$DisplayHost.processMouseEvent(ApplicationContext.java:782)
	at java.awt.Component.processEvent(Component.java:6066)
	at java.awt.Component.dispatchEventImpl(Component.java:4667)
	at java.awt.Component.dispatchEvent(Component.java:4497)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:635)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)


-- 
Niclas Hedhman, Software Developer
http://www.qi4j.org - New Energy for Java

I  live here; http://tinyurl.com/2qq9er
I  work here; http://tinyurl.com/2ymelc
I relax here; http://tinyurl.com/2cgsug

Re: Exception while operating my app brutally...

Posted by Todd Volkert <tv...@gmail.com>.
Heh.  Yeah, in this case, the fact that the scroll bar's handle received the
mouse input means that the mouse is over it, yet the error says the mouse
isn't over it

Courier: "I need to give this package to Niclas and have him sign it; then
I'll take it back"
Niclas: "I'm Niclas - I'll accept it... ok, all set; here you go"
Courier: "I'm sorry - I can only accept that package from Niclas"

-T

On Tue, Aug 4, 2009 at 7:14 AM, Niclas Hedhman <ni...@hedhman.org> wrote:

> On Tue, Aug 4, 2009 at 6:58 PM, Todd Volkert<tv...@gmail.com> wrote:
> > Very curious.  That's one of those "that should never happen" bugs...
>
> Well, people who knows me well, would say it is "Niclas Phenomenon",
> i.e. anything I touch will break, even if it can't. Bugs have an
> incredible tendency to show up in my face, and I am no longer
> surprised.
>
> Anecdote;
>
> On Intel8032, way back in 1984 or so, we had a problem in our
> real-time OS that it crashed mysteriously every now and so often. I
> reduced the OS down to absolute minimum, and finally I isolated a
> problem even in the following code snippet.
>
> loop: jmp loop   ; Do nothing
>
> timer0: reti     ; Return from interupt
>
> serial1: reti    ; return from interupt
>
> After initializing the CPU, just stand in an empty loop, if timer or
> serialport interrupt occurs, just return without anything.
> THAT didn't work. Failure description; If both the serial and timer
> interrupt occurred on the same clock cycle, only one return address
> would be pushed to the stack, but both interrupt routines would
> execute, and hence popping incorrectly. Intel denied the problem, but
> in a newer revision of the CPU, they had fixed the problem.
>
> Funny enough, in 1997 I found exactly the same problem in the PIC
> processors, and in that case there was a software work-around, unlike
> the Intel case.
>
>
> Cheers
> --
> Niclas Hedhman, Software Developer
> http://www.qi4j.org - New Energy for Java
>
> I  live here; http://tinyurl.com/2qq9er
> I  work here; http://tinyurl.com/2ymelc
> I relax here; http://tinyurl.com/2cgsug
>

Re: Exception while operating my app brutally...

Posted by Niclas Hedhman <ni...@hedhman.org>.
On Tue, Aug 4, 2009 at 6:58 PM, Todd Volkert<tv...@gmail.com> wrote:
> Very curious.  That's one of those "that should never happen" bugs...

Well, people who knows me well, would say it is "Niclas Phenomenon",
i.e. anything I touch will break, even if it can't. Bugs have an
incredible tendency to show up in my face, and I am no longer
surprised.

Anecdote;

On Intel8032, way back in 1984 or so, we had a problem in our
real-time OS that it crashed mysteriously every now and so often. I
reduced the OS down to absolute minimum, and finally I isolated a
problem even in the following code snippet.

loop: jmp loop   ; Do nothing

timer0: reti     ; Return from interupt

serial1: reti    ; return from interupt

After initializing the CPU, just stand in an empty loop, if timer or
serialport interrupt occurs, just return without anything.
THAT didn't work. Failure description; If both the serial and timer
interrupt occurred on the same clock cycle, only one return address
would be pushed to the stack, but both interrupt routines would
execute, and hence popping incorrectly. Intel denied the problem, but
in a newer revision of the CPU, they had fixed the problem.

Funny enough, in 1997 I found exactly the same problem in the PIC
processors, and in that case there was a software work-around, unlike
the Intel case.


Cheers
-- 
Niclas Hedhman, Software Developer
http://www.qi4j.org - New Energy for Java

I  live here; http://tinyurl.com/2qq9er
I  work here; http://tinyurl.com/2ymelc
I relax here; http://tinyurl.com/2cgsug

Re: Exception while operating my app brutally...

Posted by Todd Volkert <tv...@gmail.com>.
Very curious.  That's one of those "that should never happen" bugs...

On Tue, Aug 4, 2009 at 1:15 AM, Niclas Hedhman <ni...@hedhman.org> wrote:

> I don't know if you are interested in Exceptions that are really hard
> to generate, but below is one that I managed to get just now, but not
> capable of figuring out exactly how to reproduce...
>
> java.lang.IllegalArgumentException: Mouse pointer is not currently
> over capturer.
>        at org.apache.pivot.wtk.Mouse.capture(Mouse.java:104)
>        at
> org.apache.pivot.wtk.skin.terra.TerraScrollBarSkin$HandleSkin.mouseDown(TerraScrollBarSkin.java:556)
>        at
> org.apache.pivot.wtk.Component$ComponentMouseButtonListenerList.mouseDown(Component.java:421)
>        at org.apache.pivot.wtk.Component.mouseDown(Component.java:2342)
>        at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
>        at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
>        at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
>        at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
>        at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
>        at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
>        at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
>        at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
>        at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
>        at org.apache.pivot.wtk.Window.mouseDown(Window.java:1130)
>        at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
>        at
> org.apache.pivot.wtk.ApplicationContext$DisplayHost.processMouseEvent(ApplicationContext.java:782)
>        at java.awt.Component.processEvent(Component.java:6066)
>        at java.awt.Component.dispatchEventImpl(Component.java:4667)
>        at java.awt.Component.dispatchEvent(Component.java:4497)
>        at java.awt.EventQueue.dispatchEvent(EventQueue.java:635)
>        at
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
>        at
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
>        at
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
>        at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
>        at
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
>        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
>
>
> --
> Niclas Hedhman, Software Developer
> http://www.qi4j.org - New Energy for Java
>
> I  live here; http://tinyurl.com/2qq9er
> I  work here; http://tinyurl.com/2ymelc
> I relax here; http://tinyurl.com/2cgsug
>

Re: Exception while operating my app brutally...

Posted by Greg Brown <gk...@mac.com>.
I see that one periodically. It doesn't have a negative effect on the  
operation of an application, so I haven't really pursued it yet. But  
we should probably get it in JIRA, so it doesn't fall off the radar...


On Aug 4, 2009, at 1:15 AM, Niclas Hedhman wrote:

> I don't know if you are interested in Exceptions that are really hard
> to generate, but below is one that I managed to get just now, but not
> capable of figuring out exactly how to reproduce...
>
> java.lang.IllegalArgumentException: Mouse pointer is not currently
> over capturer.
> 	at org.apache.pivot.wtk.Mouse.capture(Mouse.java:104)
> 	at org.apache.pivot.wtk.skin.terra.TerraScrollBarSkin 
> $HandleSkin.mouseDown(TerraScrollBarSkin.java:556)
> 	at org.apache.pivot.wtk.Component 
> $ComponentMouseButtonListenerList.mouseDown(Component.java:421)
> 	at org.apache.pivot.wtk.Component.mouseDown(Component.java:2342)
> 	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
> 	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
> 	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
> 	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
> 	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
> 	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
> 	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
> 	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
> 	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
> 	at org.apache.pivot.wtk.Window.mouseDown(Window.java:1130)
> 	at org.apache.pivot.wtk.Container.mouseDown(Container.java:661)
> 	at org.apache.pivot.wtk.ApplicationContext 
> $DisplayHost.processMouseEvent(ApplicationContext.java:782)
> 	at java.awt.Component.processEvent(Component.java:6066)
> 	at java.awt.Component.dispatchEventImpl(Component.java:4667)
> 	at java.awt.Component.dispatchEvent(Component.java:4497)
> 	at java.awt.EventQueue.dispatchEvent(EventQueue.java:635)
> 	at  
> java 
> .awt 
> .EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java: 
> 296)
> 	at  
> java 
> .awt 
> .EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
> 	at  
> java 
> .awt 
> .EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java: 
> 201)
> 	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 
> 196)
> 	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java: 
> 188)
> 	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
>
>
> -- 
> Niclas Hedhman, Software Developer
> http://www.qi4j.org - New Energy for Java
>
> I  live here; http://tinyurl.com/2qq9er
> I  work here; http://tinyurl.com/2ymelc
> I relax here; http://tinyurl.com/2cgsug