Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Dispatch Exception

1 view
Skip to first unread message

Wolf Grossi

unread,
Aug 12, 2001, 3:55:50 PM8/12/01
to
hallo leute,
wie kann man untenstehende exception lokalisieren?

"Exception occurred during event dispatching:
java.lang.ArrayIndexOutOfBoundsException: No such child: 24"

ich hab tatsaechlich ein array mit 24 elements, die jedoch ok scheinen.
verwende die swing-klassen, jbuilder5 mit vm 1.3.

danke fuers lesen,
wolf

Aljoscha Rittner

unread,
Aug 12, 2001, 4:39:59 PM8/12/01
to
"Wolf Grossi" <X-n...@magro-soft.com> schrieb:

> "Exception occurred during event dispatching:
> java.lang.ArrayIndexOutOfBoundsException: No such child: 24"
>
> ich hab tatsaechlich ein array mit 24 elements, die jedoch ok scheinen.
> verwende die swing-klassen, jbuilder5 mit vm 1.3.

Damit hast du aber die Index-Positionen 0 bis 23. Eine 24. Position
gibt es dann wohl nicht.

Gruß,
Josch.
--
Einige Tags in de.comp.lang.java ( siehe http://www.dclj.de/dcljstart.html )
[AWT] - Fragen zum Abstract Window Toolkit (nicht SWING!)
[SERVLET] - Fragen zu Java-Servlets
[NET] - Fragen zu Java im LAN/WAN/Internet

Christian Wederhake

unread,
Aug 12, 2001, 4:17:54 PM8/12/01
to
"Wolf Grossi" <X-n...@magro-soft.com> schrieb

> hallo leute,
> wie kann man untenstehende exception lokalisieren?

Wie jede Exception....
durch den StackTrace.....

> "Exception occurred during event dispatching:
> java.lang.ArrayIndexOutOfBoundsException: No such child: 24"
> ich hab tatsaechlich ein array mit 24 elements,

Nur so als Tip...:
Ein Array mit n Elementen hat Indizies von 0 bis n-1

Ciao
Chris

--
Manchmal denke ich, der beste Beweis dafuer, dass es anderswo im
Universum intelligentes Leben gibt, ist der, dass noch keiner versucht
hat, Kontakt mit uns aufzunehmen. (Calvin alias Bill Watterson)

Wolf Grossi

unread,
Aug 13, 2001, 12:02:56 PM8/13/01
to
> Wie jede Exception....
> durch den StackTrace.....
der stack trace (see below), verweist auf, wenn ich nicht irre, methoden der
jvm.

java.lang.ArrayIndexOutOfBoundsException: No such child: 24

at java.awt.Container.getComponent(Container.java:173)
at javax.swing.JComponent.rectangleIsObscured(JComponent.java:3615)
at javax.swing.JComponent.paint(JComponent.java:737)
at javax.swing.JComponent.paintWithBuffer(JComponent.java:4393)
at javax.swing.JComponent._paintImmediately(JComponent.java:4336)
at javax.swing.JComponent.paintImmediately(JComponent.java:4187)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:370)
at
javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(SystemEventQu
eueUtilities.java:205)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:154)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:334)
at
java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.ja
va:134)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java
:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:96)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:88)

wie geht man is so 'nem falle vor?

> Ein Array mit n Elementen hat Indizies von 0 bis n-1

ja, klar (is auch in c/c++ so, mach ich seit > 15 jahren...)

im debug mode mit jbuilder5 kann ich keine boundary violation meiner arrays
erkennen.

danke, wolf

Wolf Grossi

unread,
Aug 13, 2001, 12:05:09 PM8/13/01
to
> Damit hast du aber die Index-Positionen 0 bis 23. Eine 24. Position
> gibt es dann wohl nicht.
null-relativ, is klar; hab's auch im debug-mode gecheckt, schient ok zu
sein...
danke, wolf


Christian Wederhake

unread,
Aug 13, 2001, 2:28:57 PM8/13/01
to
"Wolf Grossi" <X-n...@magro-soft.com> schrieb

>> Wie jede Exception....
>> durch den StackTrace.....
> der stack trace (see below), verweist auf,
> wenn ich nicht irre, methoden der jvm.

Sagen wir der core-API und alle sind zufrieden... ;-)
JVM-Funktionen moechte niemand jemals in seinem
StackTrace sehen..... :-)))

> java.lang.ArrayIndexOutOfBoundsException: No such child: 24
> at java.awt.Container.getComponent(Container.java:173)

> [...]
> at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:370)
> [...]


> at java.awt.EventDispatchThread.run(EventDispatchThread.java:88)
> wie geht man is so 'nem falle vor?

Also ich persoenlich hab' mir die dazugehoerigen Sourcen angeschaut...
... und mich im nachhinein geaergert, weil ich mir dasselbe schon gedacht
hatte.....
Ein Container verwaltet alle seine child-components intern in einem Array....
Versucht man nun, auf eine Componente Zuzugreifen, die ausserhalb der
ebenso noch zusaetzlich verwalteten bounds liegen, wird eben jene
Exception geworfen....

Da das ganze aber nun nicht durch User-Code verursacht worden ist,
tippe ich mal darauf, dass GUI-Elemente, in diesem Fall wohl der besagte
Container, strukturell veraendert wurden, waehrend der repaint-Thread
gerade aktiv war.....
Nach so einer Stelle wuerd' ich dann anfangen zu suchen....

Ciao
Chris

--
"Ein Mathematiker ist ein Mensch, der einen ihm vorgetragenen
Gedanken nicht nur sofort begreift, sondern auch erkennt, auf
welchem Denkfehler er beruht." (Quelle unbekannt)

Wolf Grossi

unread,
Aug 13, 2001, 3:47:31 PM8/13/01
to
danke chris, werde mal in dieser ecke nachsehen
wolf.


Wolf Grossi

unread,
Aug 14, 2001, 4:32:19 AM8/14/01
to
...sieht so aus, als ob das prob duch ein panel.remove(component) verursacht
wird.

das prog erstellt ein dynamisch aufgebautes jpanel; daraus werden gezielt
komponenten (jTextFields) ge 'add'ed und removed.

wenn ich den panel.remove(component) mit panel.removeAll() ersetze, gibts
das dispatch prob nimmer.

any hints?
danke. wolf


Christian Wederhake

unread,
Aug 14, 2001, 9:39:10 AM8/14/01
to
"Wolf Grossi" <X-n...@magro-soft.com> schrieb

Deine Shift(Hochstell)-Taste weist von hier aus gesehen,
eine kleine technische Disfunktionalitaet auf....

Die grosse Preisfrage waere jetzt aus meiner Sicht, _wann genau_
diese Anweisung steht, wobei "wann" jetzt insb. den genauen Thread meint...

Ciao
Chris

--
"Man wird geboren und man stirbt, dazwischen
macht man eine ganze Menge Fehler, nicht wahr?"
(Joey zu Dawson über Mütter [DC #104 - "Hurricane"])

Wolf Grossi

unread,
Aug 14, 2001, 2:28:45 PM8/14/01
to
danke, chris, dass du dir soviel zeit nimmst :-)

> Deine Shift(Hochstell)-Taste weist von hier aus gesehen,
> eine kleine technische Disfunktionalitaet auf....

ich versteh nicht...

das mit removeAll war nur kurzzeitig - die excp folgt dann etwas spaeter.

der remove/repaint erfogt im thread 1, die exception offensichtlich im
keylistener der 1. comonente.

ich hab das ganze etwas modifiziert und statt remove(compo) mach ich ein
compo.setVisible(false).

nun klappt der ganze - nur is mir unklar, wieso ein remove (ob comonent oder
All)
nicht auch funktioniert.

danke, wolf


Christian Wederhake

unread,
Aug 14, 2001, 5:40:53 PM8/14/01
to
"Wolf Grossi" <X-n...@magro-soft.com> schrieb

>> Deine Shift(Hochstell)-Taste weist von hier aus gesehen,
>> eine kleine technische Disfunktionalitaet auf....
> ich versteh nicht...

Seltsamerweise sind die einzigen Grossbuchstaben die ich
ab und an in Deinen Postings finde, einige in Deinen
Quelltexten..... Daraus interpretiere ich mal, dass Deine Shift-Taste
keinen normalen Text mag..... Ich wuerde sie mal in eine gute
Reperatur geben, da hier viele ein normales, zur Schrift-Sprache
passendes Schriftbild sehr gerne sehen....

> das mit removeAll war nur kurzzeitig - die excp folgt dann etwas spaeter.

:-?

> der remove/repaint erfogt im thread 1, die exception offensichtlich im
> keylistener der 1. comonente.

Also im EventDispatcher.....

> ich hab das ganze etwas modifiziert und statt remove(compo)
> mach ich ein compo.setVisible(false).

Ist imo sowiso eine bessere Alternative.....

> nun klappt der ganze - nur is mir unklar, wieso
> ein remove (ob comonent oder All) nicht auch funktioniert.

Naja, valide Container moegen es selten, wenn sie mitten im Betrieb
und dann auch noch im vermutlich falschen Thread ploetzlich Komponenten
verlieren der bekommen.....
Ich vermute einfach mal auf eine fehlende XXXvalidate-Kombination...

Ciao
Chris

--
"Auch eine Reise von tausend Meilen beginnt mit einem einzigen Schritt."
(Konfuzius)

Wolf Grossi

unread,
Aug 15, 2001, 4:55:17 AM8/15/01
to
naja, jedenfalls nochmals vielen dank fuer deine muehe,
wolf


0 new messages