Estava com problemas em rodar meu brick e não conseguia descobrir
porque. A exception que acontecia era essa:
[2009-07-04 10:29:39] Contact Dummy is online.
>>> chunk #0 bytes read: 10240
java.lang.IllegalStateException: Thread
Thread[AWT-EventQueue-2,6,main] is not running in an environment.
at sneer.foundation.environments.Environments.my(Environments.java:20)
at sneer.bricks.snapps.system.log.gui.impl.LogConsoleImpl$WidgetLogger$1.consu me(LogConsoleImpl.java:213)
at sneer.bricks.snapps.system.log.gui.impl.LogConsoleImpl$WidgetLogger$1.consu me(LogConsoleImpl.java:1)
at sneer.bricks.pulp.reactive.impl.ReceiversImpl$1.consume(ReceiversImpl.java: 30)
at sneer.bricks.pulp.events.impl.EventNotifierImpl.notify(EventNotifierImpl.ja va:47)
at sneer.bricks.pulp.events.impl.EventNotifierImpl.notifyReceivers(EventNotifi erImpl.java:32)
at sneer.bricks.hardware.io.log.workers.notifier.impl.LogNotifierImpl.notifyEn try(LogNotifierImpl.java:30)
at sneer.bricks.hardware.io.log.workers.notifier.impl.LogNotifierImpl.access$1 (LogNotifierImpl.java:28)
at sneer.bricks.hardware.io.log.workers.notifier.impl.LogNotifierImpl$1.log(Lo gNotifierImpl.java:23)
at sneer.bricks.hardware.io.log.impl.LoggerImpl.log(LoggerImpl.java:30)
at sneer.bricks.hardware.io.log.exceptions.impl.ExceptionLoggerImpl.uncaughtEx ception(ExceptionLoggerImpl.java:24)
at java.lang.ThreadGroup.uncaughtException(Unknown Source)
at java.lang.ThreadGroup.uncaughtException(Unknown Source)
at java.lang.Thread.dispatchUncaughtException(Unknown Source)
Então fui até o ExceptionLoggerImpl e mandei imprimir o stack trace
antes de logar a exception:
public void uncaughtException(Thread ignored, Throwable t1) {
System.out.println("\n===================================================") ;
t1.printStackTrace();
System.out.println("\n===================================================") ;
try {
_logger.log(t1);
} catch (Throwable t2) {
t2.printStackTrace();
}
}
Isso revelou o problema:
[2009-07-04 10:27:06] Tuple received: Heartbeat from: Dummy
[2009-07-04 10:27:08] Tuple published: Heartbeat
>>> chunk #0 bytes read: 10240
===================================================
java.lang.IllegalStateException: All fields in a Tuple should be
public and not static. This was not the case with: class
celio.bricks.filetransfer.FileChunk._isLast Also, tuple classes
declared as inner classes dont work.
at sneer.foundation.brickness.Tuple.getFieldValue(Tuple.java:83)
at sneer.foundation.brickness.Tuple.hashCode(Tuple.java:28)
at java.util.HashMap.put(Unknown Source)
at java.util.HashSet.add(Unknown Source)
at sneer.bricks.pulp.tuples.impl.TupleSpaceImpl.acquire(TupleSpaceImpl.java:18 9)
at sneer.bricks.pulp.tuples.impl.TupleSpaceImpl.publish(TupleSpaceImpl.java:18 1)
at celio.bricks.filetransfer.impl.FileSenderImpl.send(FileSenderImpl.java:30)
at celio.snapps.filetransfer.impl.FileSenderGuiImpl.chooseFileAndSend(FileSend erGuiImpl.java:31)
at celio.snapps.filetransfer.impl.FileSenderGuiImpl.access$0(FileSenderGuiImpl .java:26)
at celio.snapps.filetransfer.impl.FileSenderGuiImpl$1.run(FileSenderGuiImpl.ja va:21)
at sneer.bricks.snapps.contacts.gui.impl.SwingActionAdapter.actionPerformed(Sw ingActionAdapter.java:20)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.AbstractButton.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at sneer.bricks.hardware.gui.timebox.impl.TimeboxedEventQueueImpl.access$2(Tim eboxedEventQueueImpl.java:1)
at sneer.bricks.hardware.gui.timebox.impl.TimeboxedEventQueueImpl.superDispatc hEvent(TimeboxedEventQueueImpl.java:62)
at sneer.bricks.hardware.gui.timebox.impl.TimeboxedEventQueueImpl.access$0(Tim eboxedEventQueueImpl.java:61)
at sneer.bricks.hardware.gui.timebox.impl.TimeboxedEventQueueImpl$1.run(Timebo xedEventQueueImpl.java:51)
at sneer.bricks.hardware.cpu.timebox.impl.TimeboxRunner.tryToRun(TimeboxRunner .java:65)
at sneer.bricks.hardware.cpu.timebox.impl.TimeboxRunner.<init>(TimeboxRunner.j ava:41)
at sneer.bricks.hardware.cpu.timebox.impl.TimeboxImpl.run(TimeboxImpl.java:16)
at sneer.bricks.hardware.cpu.timebox.impl.TimeboxImpl$1.run(TimeboxImpl.java:1 0)
at sneer.foundation.environments.Environments.runWith(Environments.java:11)
at sneer.bricks.hardware.gui.timebox.impl.TimeboxedEventQueueImpl.dispatchEven t(TimeboxedEventQueueImpl.java:58)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.IllegalAccessException: Class
sneer.foundation.brickness.Tuple can not access a member of class
celio.bricks.filetransfer.FileChunk with modifiers "private"
at sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
at java.lang.reflect.Field.doSecurityCheck(Unknown Source)
at java.lang.reflect.Field.getFieldAccessor(Unknown Source)
at java.lang.reflect.Field.get(Unknown Source)
at sneer.foundation.brickness.Tuple.getFieldValue(Tuple.java:81)
... 47 more
java.lang.IllegalStateException: Thread
Thread[AWT-EventQueue-2,6,main] is not running in an environment.
at sneer.foundation.environments.Environments.my(Environments.java:20)
at sneer.bricks.snapps.system.log.gui.impl.LogConsoleImpl$WidgetLogger$1.consu me(LogConsoleImpl.java:213)
at sneer.bricks.snapps.system.log.gui.impl.LogConsoleImpl$WidgetLogger$1.consu me(LogConsoleImpl.java:1)
===================================================
at sneer.bricks.pulp.reactive.impl.ReceiversImpl$1.consume(ReceiversImpl.java: 30)
at sneer.bricks.pulp.events.impl.EventNotifierImpl.notify(EventNotifierImpl.ja va:47)
at sneer.bricks.pulp.events.impl.EventNotifierImpl.notifyReceivers(EventNotifi erImpl.java:32)
at sneer.bricks.hardware.io.log.workers.notifier.impl.LogNotifierImpl.notifyEn try(LogNotifierImpl.java:30)
at sneer.bricks.hardware.io.log.workers.notifier.impl.LogNotifierImpl.access$1 (LogNotifierImpl.java:28)
at sneer.bricks.hardware.io.log.workers.notifier.impl.LogNotifierImpl$1.log(Lo gNotifierImpl.java:23)
at sneer.bricks.hardware.io.log.impl.LoggerImpl.log(LoggerImpl.java:30)
at sneer.bricks.hardware.io.log.exceptions.impl.ExceptionLoggerImpl.uncaughtEx ception(ExceptionLoggerImpl.java:24)
at java.lang.ThreadGroup.uncaughtException(Unknown Source)
at java.lang.ThreadGroup.uncaughtException(Unknown Source)
at java.lang.Thread.dispatchUncaughtException(Unknown Source)
===================================================
java.lang.IllegalStateException: Should NOT be running in the GUI thread.
at sneer.bricks.hardware.gui.guithread.impl.GuiThreadImpl.assertNotInGuiThread (GuiThreadImpl.java:53)
at sneer.bricks.hardware.gui.guithread.impl.GuiThreadImpl.invokeLater(GuiThrea dImpl.java:42)
at sneer.bricks.snapps.system.blinkinglights.gui.impl.BlinkingLightsGuiImpl$Al ertWindowSupport.placeScrollAtTheBegining(BlinkingLightsGuiImpl.java:219)
at sneer.bricks.snapps.system.blinkinglights.gui.impl.BlinkingLightsGuiImpl$Al ertWindowSupport.show(BlinkingLightsGuiImpl.java:206)
at sneer.bricks.snapps.system.blinkinglights.gui.impl.BlinkingLightsGuiImpl$Al ertWindowSupport.access$2(BlinkingLightsGuiImpl.java:200)
at sneer.bricks.snapps.system.blinkinglights.gui.impl.BlinkingLightsGuiImpl$Al ertWindowSupport$3.mouseReleased(BlinkingLightsGuiImpl.java:190)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at sneer.bricks.hardware.gui.timebox.impl.TimeboxedEventQueueImpl.access$2(Tim eboxedEventQueueImpl.java:1)
at sneer.bricks.hardware.gui.timebox.impl.TimeboxedEventQueueImpl.superDispatc hEvent(TimeboxedEventQueueImpl.java:62)
at sneer.bricks.hardware.gui.timebox.impl.TimeboxedEventQueueImpl.access$0(Tim eboxedEventQueueImpl.java:61)
at sneer.bricks.hardware.gui.timebox.impl.TimeboxedEventQueueImpl$1.run(Timebo xedEventQueueImpl.java:51)
at
...
mais »