Hi Greenfoot team,
I discovered a bug, actually 2 of them:
- When you call Greenfoot.start() in your world's constructor, sometimes you are still able to drag actors around in the world, while it says the scenario is running: it's like it's both running and paused, if that makes sense
- When dragging around an object, using the previous bug, and that object removes itself, a NullPointerException will be thrown. This is what the debugger says: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at greenfoot.Actor.setLocationInPixels(Actor.java:446) at greenfoot.ActorVisitor.setLocationInPixels(ActorVisitor.java:39) at greenfoot.core.WorldHandler.drag(WorldHandler.java:712) at greenfoot.core.WorldHandler.mouseDragged(WorldHandler.java:938) at greenfoot.gui.input.InputManager.mouseDragged(InputManager.java:303) at java.awt.Component.processMouseMotionEvent(Component.java:6337) at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3285) at java.awt.Component.processEvent(Component.java:6058) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Component.dispatchEventImpl(Component.java:4652) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4255) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168) at java.awt.Container.dispatchEventImpl(Container.java:2085) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644) at java.awt.EventQueue.access$000(EventQueue.java:85) at java.awt.EventQueue$1.run(EventQueue.java:603) at java.awt.EventQueue$1.run(EventQueue.java:601) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$2.run(EventQueue.java:617) at java.awt.EventQueue$2.run(EventQueue.java:615) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:614) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)