Difference between pages "LiteRumble" and "Thread:User talk:Xor/Robocode OpenGL/RobocodeGL Preview 4/reply (2)"

From Robowiki
(Difference between pages)
Jump to navigation Jump to search
m (update to reflect that I'm on paid tier now)
 
(Restored edits authored by Beaming dated 2020-01-02T18:04:08+00:00)
 
Line 1: Line 1:
The LiteRumble is a lightweight, easily deployable roborumble system which is designed to run on the free tier of the Google App Engine.  
+
I was able to recreate the battle field freeze after window resize to leading to the zero pixel tall battle field. It happens on hi-DPI and normal-DPI linux computers with jdk-11 (did not check jdk-8).
The competitions will fill out automagically as they are given battles - no hardcoded rumble names or configurations. Because of this and the ease in deploying it should be perfect for in-class or in-office competitions. One of my goals for this was to be able to have a rumble setup which would never need any maintenance.
+
The console log is below.
  
It is designed to serve vanilla HTML/CSS (w3c validated) - no JavaScript or anything fancy. All sorting of columns is done server side through linked GET arguments - so click on column headers to sort by that column!
+
<pre>
 
+
Loaded net.sf.robocode.api
Here's the link for my 'official' hosted version: [http://literumble.appspot.com LiteRumble.appspot.com] - feel free to create new rumble categories on it as you want! Also, let me know on the comments page if you do, I'm interested to see what is happening.
+
Loaded net.sf.robocode.core
 
+
Loading plugins from /home/evmik/robocode/libs
A preconfigured client is available [https://dl.dropbox.com/u/4066735/literumble-template.zip here], with Roborumble, Meleerumble, TeamRumble and Twinduel. Just change the name of the submitter and you're ready to go.
+
Loaded net.sf.robocode.repository
 
+
Loaded net.sf.robocode.sound
I've released the code under <i>[http://creativecommons.org/licenses/by-nc-sa/3.0/ Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License]</i>. It is hosted on [https://bitbucket.org/jkflying/literumble/src BitBucket]. If you want to run your own just change the name to whatever you want yours to be called in <code>app.yaml</code>, create the newly named app on the app engine and deploy! All you need to do then is point your upload client at it, run the client and the rumbles should appear with whatever wild, fancy configurations you want automagically appearing. If you want specific rumbles not to get priority battles (ie. mini, micro and nano) you can set that manually using the Datastore Viewer in the App Engine admin console.
+
Loaded net.sf.robocode.host
 
+
Loaded net.sf.robocode.battle
Some of the scoring I've done differently to Darkcanuck - I have Win% instead of PL (so it doesn't fluctuate with number of bots), and in Melee my survival is not as a bot-specific %, but rather as an 'out of total rounds' % (the 1v1 won't be affected).  
+
Loaded net.sf.robocode.ui.editor
 
+
Loaded net.sf.robocode.ui
The scores
+
Loaded net.sf.robocode.gl2
* ANPP (Average Normalised Percentage Pairs)
+
before Parse
* Vote (percentage you are best against)
+
after Parse
* NPP (Normalised Percentage Pairs)
+
Reading robot database
* KNNPBI (K-Nearest-Neighbours Problem Bot Index)  
+
force update takes 0.082375326s
are all calculated as a batch run twice a day, so you won't see the latest results from them immediately.
+
WARNING: An illegal reflective access operation has occurred
 
+
WARNING: Illegal reflective access by com.jogamp.common.os.NativeLibrary$3 (file:/home/evmik/robocode/./libs/gluegen-rt-2.3.2.jar) to method java.lang.ClassLoader.findLibrary(java.lang.String)
 
+
WARNING: Please consider reporting this to the maintainers of com.jogamp.common.os.NativeLibrary$3
Take a look around and tell me what you think. Submit battles if you have spare cycles, it can handle a bunch of clients now that I'm on the paid tier.
+
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
 
+
WARNING: All illegal access operations will be denied in a future release
And most of all, have fun and happy Robocoding! - [[User:Skilgannon|Skilgannon]]
+
Creating window.properties file
 +
update takes 0.030204256s
 +
Preparing battle...
 +
----------------------
 +
Round 1 initializing..
 +
Let the games begin!
 +
..
 +
force update takes 0.038383916s
 +
com.jogamp.opengl.util.AnimatorBase$UncaughtAnimatorException: java.lang.RuntimeException: com.jogamp.opengl.GLException: Caught IllegalArgumentException: Width (-13) and height (-10) cannot be <= 0 on thread AWT-EventQueue-0
 +
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:92)
 +
at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:452)
 +
at com.jogamp.opengl.util.Animator$MainLoop.run(Animator.java:204)
 +
at java.base/java.lang.Thread.run(Thread.java:834)
 +
Caused by: java.lang.RuntimeException: com.jogamp.opengl.GLException: Caught IllegalArgumentException: Width (-13) and height (-10) cannot be <= 0 on thread AWT-EventQueue-0
 +
at com.jogamp.common.util.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58)
 +
at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103)
 +
at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:201)
 +
at com.jogamp.opengl.Threading.invokeOnOpenGLThread(Threading.java:202)
 +
at com.jogamp.opengl.Threading.invoke(Threading.java:221)
 +
at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:505)
 +
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81)
 +
... 3 more
 +
Caused by: com.jogamp.opengl.GLException: Caught IllegalArgumentException: Width (-13) and height (-10) cannot be <= 0 on thread AWT-EventQueue-0
 +
at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
 +
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
 +
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
 +
at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1438)
 +
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:303)
 +
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
 +
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
 +
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
 +
at java.base/java.security.AccessController.doPrivileged(Native Method)
 +
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
 +
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
 +
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
 +
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
 +
Caused by: java.lang.IllegalArgumentException: Width (-13) and height (-10) cannot be <= 0
 +
at java.desktop/java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
 +
at java.desktop/java.awt.image.BufferedImage.<init>(BufferedImage.java:324)
 +
at net.sf.robocode.ui.battleview.BattleView.createGroundImage(BattleView.java:252)
 +
at net.sf.robocode.ui.battleview.BattleView.initialize(BattleView.java:221)
 +
at net.sf.robocode.ui.battleview.BattleView.access$1300(BattleView.java:71)
 +
at net.sf.robocode.ui.battleview.BattleView$MyPanel.update(BattleView.java:857)
 +
at net.sf.robocode.ui.battleview.BattleView$MyPanel.paint(BattleView.java:847)
 +
at org.jogamp.glg2d.GLG2DSimpleEventListener.paintGL(GLG2DSimpleEventListener.java:124)
 +
at org.jogamp.glg2d.GLG2DSimpleEventListener.display(GLG2DSimpleEventListener.java:67)
 +
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
 +
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
 +
at com.jogamp.opengl.awt.GLCanvas$11.run(GLCanvas.java:1424)
 +
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
 +
... 15 more
 +
com.jogamp.opengl.GLException: Caught IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0 on thread AWT-EventQueue-0
 +
at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
 +
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
 +
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
 +
at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1438)
 +
at com.jogamp.opengl.Threading.invoke(Threading.java:223)
 +
at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:505)
 +
at com.jogamp.opengl.awt.GLCanvas.paint(GLCanvas.java:559)
 +
at java.desktop/sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
 +
at java.desktop/sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:66)
 +
at java.desktop/sun.awt.RepaintArea.paint(RepaintArea.java:240)
 +
at java.desktop/sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:555)
 +
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5069)
 +
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
 +
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
 +
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
 +
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
 +
at java.base/java.security.AccessController.doPrivileged(Native Method)
 +
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
 +
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
 +
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
 +
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
 +
at java.base/java.security.AccessController.doPrivileged(Native Method)
 +
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
 +
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
 +
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
 +
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
 +
Caused by: java.lang.IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0
 +
at java.desktop/java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
 +
at java.desktop/java.awt.image.BufferedImage.<init>(BufferedImage.java:324)
 +
at net.sf.robocode.ui.battleview.BattleView.createGroundImage(BattleView.java:252)
 +
at net.sf.robocode.ui.battleview.BattleView.initialize(BattleView.java:221)
 +
at net.sf.robocode.ui.battleview.BattleView.access$1300(BattleView.java:71)
 +
at net.sf.robocode.ui.battleview.BattleView$MyPanel.update(BattleView.java:857)
 +
at net.sf.robocode.ui.battleview.BattleView$MyPanel.paint(BattleView.java:847)
 +
at org.jogamp.glg2d.GLG2DSimpleEventListener.paintGL(GLG2DSimpleEventListener.java:124)
 +
at org.jogamp.glg2d.GLG2DSimpleEventListener.display(GLG2DSimpleEventListener.java:67)
 +
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
 +
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
 +
at com.jogamp.opengl.awt.GLCanvas$11.run(GLCanvas.java:1424)
 +
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
 +
... 28 more
 +
com.jogamp.opengl.GLException: Caught IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0 on thread AWT-EventQueue-0
 +
at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
 +
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
 +
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
 +
at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1438)
 +
at com.jogamp.opengl.Threading.invoke(Threading.java:223)
 +
at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:505)
 +
at com.jogamp.opengl.awt.GLCanvas.paint(GLCanvas.java:559)
 +
at java.desktop/sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
 +
at java.desktop/sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:66)
 +
at java.desktop/sun.awt.RepaintArea.paint(RepaintArea.java:240)
 +
at java.desktop/sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:555)
 +
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5069)
 +
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
 +
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
 +
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
 +
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
 +
at java.base/java.security.AccessController.doPrivileged(Native Method)
 +
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
 +
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
 +
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
 +
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
 +
at java.base/java.security.AccessController.doPrivileged(Native Method)
 +
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
 +
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
 +
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
 +
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
 +
Caused by: java.lang.IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0
 +
at java.desktop/java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
 +
at java.desktop/java.awt.image.BufferedImage.<init>(BufferedImage.java:324)
 +
at net.sf.robocode.ui.battleview.BattleView.createGroundImage(BattleView.java:252)
 +
at net.sf.robocode.ui.battleview.BattleView.initialize(BattleView.java:221)
 +
at net.sf.robocode.ui.battleview.BattleView.access$1300(BattleView.java:71)
 +
at net.sf.robocode.ui.battleview.BattleView$MyPanel.update(BattleView.java:857)
 +
at net.sf.robocode.ui.battleview.BattleView$MyPanel.paint(BattleView.java:847)
 +
at org.jogamp.glg2d.GLG2DSimpleEventListener.paintGL(GLG2DSimpleEventListener.java:124)
 +
at org.jogamp.glg2d.GLG2DSimpleEventListener.display(GLG2DSimpleEventListener.java:67)
 +
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
 +
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
 +
at com.jogamp.opengl.awt.GLCanvas$11.run(GLCanvas.java:1424)
 +
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
 +
... 28 more
 +
com.jogamp.opengl.GLException: Caught IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0 on thread AWT-EventQueue-0
 +
at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
 +
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
 +
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
 +
at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1438)
 +
at com.jogamp.opengl.Threading.invoke(Threading.java:223)
 +
at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:505)
 +
at com.jogamp.opengl.awt.GLCanvas.paint(GLCanvas.java:559)
 +
at java.desktop/sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
 +
at java.desktop/sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:66)
 +
at java.desktop/sun.awt.RepaintArea.paint(RepaintArea.java:240)
 +
at java.desktop/sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:555)
 +
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5069)
 +
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
 +
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
 +
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
 +
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
 +
at java.base/java.security.AccessController.doPrivileged(Native Method)
 +
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
 +
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
 +
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
 +
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
 +
at java.base/java.security.AccessController.doPrivileged(Native Method)
 +
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
 +
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
 +
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
 +
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
 +
Caused by: java.lang.IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0
 +
at java.desktop/java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
 +
at java.desktop/java.awt.image.BufferedImage.<init>(BufferedImage.java:324)
 +
at net.sf.robocode.ui.battleview.BattleView.createGroundImage(BattleView.java:252)
 +
at net.sf.robocode.ui.battleview.BattleView.initialize(BattleView.java:221)
 +
at net.sf.robocode.ui.battleview.BattleView.access$1300(BattleView.java:71)
 +
at net.sf.robocode.ui.battleview.BattleView$MyPanel.update(BattleView.java:857)
 +
at net.sf.robocode.ui.battleview.BattleView$MyPanel.paint(BattleView.java:847)
 +
at org.jogamp.glg2d.GLG2DSimpleEventListener.paintGL(GLG2DSimpleEventListener.java:124)
 +
at org.jogamp.glg2d.GLG2DSimpleEventListener.display(GLG2DSimpleEventListener.java:67)
 +
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
 +
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
 +
at com.jogamp.opengl.awt.GLCanvas$11.run(GLCanvas.java:1424)
 +
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
 +
... 28 more
 +
com.jogamp.opengl.GLException: Caught IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0 on thread AWT-EventQueue-0
 +
at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
 +
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
 +
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
 +
at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1438)
 +
at com.jogamp.opengl.Threading.invoke(Threading.java:223)
 +
at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:505)
 +
at com.jogamp.opengl.awt.GLCanvas.paint(GLCanvas.java:559)
 +
at java.desktop/sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
 +
at java.desktop/sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:66)
 +
at java.desktop/sun.awt.RepaintArea.paint(RepaintArea.java:240)
 +
at java.desktop/sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:555)
 +
at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5069)
 +
at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
 +
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
 +
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
 +
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
 +
at java.base/java.security.AccessController.doPrivileged(Native Method)
 +
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
 +
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
 +
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
 +
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
 +
at java.base/java.security.AccessController.doPrivileged(Native Method)
 +
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
 +
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
 +
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
 +
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
 +
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
 +
Caused by: java.lang.IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0
 +
at java.desktop/java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
 +
at java.desktop/java.awt.image.BufferedImage.<init>(BufferedImage.java:324)
 +
at net.sf.robocode.ui.battleview.BattleView.createGroundImage(BattleView.java:252)
 +
at net.sf.robocode.ui.battleview.BattleView.initialize(BattleView.java:221)
 +
at net.sf.robocode.ui.battleview.BattleView.access$1300(BattleView.java:71)
 +
at net.sf.robocode.ui.battleview.BattleView$MyPanel.update(BattleView.java:857)
 +
at net.sf.robocode.ui.battleview.BattleView$MyPanel.paint(BattleView.java:847)
 +
at org.jogamp.glg2d.GLG2DSimpleEventListener.paintGL(GLG2DSimpleEventListener.java:124)
 +
at org.jogamp.glg2d.GLG2DSimpleEventListener.display(GLG2DSimpleEventListener.java:67)
 +
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
 +
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
 +
at com.jogamp.opengl.awt.GLCanvas$11.run(GLCanvas.java:1424)
 +
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
 +
... 28 more
 +
X11Util.Display: Shutdown (JVM shutdown: true, open (no close attempt): 1/1, reusable (open, marked uncloseable): 0, pending (open in creation order): 1)
 +
X11Util: Open X11 Display Connections: 1
 +
X11Util: Open[0]: NamedX11Display[:0, 0x7f39984078c0, refCount 1, unCloseable false]
 +
</pre>

Latest revision as of 03:11, 25 April 2020

I was able to recreate the battle field freeze after window resize to leading to the zero pixel tall battle field. It happens on hi-DPI and normal-DPI linux computers with jdk-11 (did not check jdk-8). The console log is below.

Loaded net.sf.robocode.api
Loaded net.sf.robocode.core
Loading plugins from /home/evmik/robocode/libs
Loaded net.sf.robocode.repository
Loaded net.sf.robocode.sound
Loaded net.sf.robocode.host
Loaded net.sf.robocode.battle
Loaded net.sf.robocode.ui.editor
Loaded net.sf.robocode.ui
Loaded net.sf.robocode.gl2
before Parse
after Parse
Reading robot database
force update takes 0.082375326s
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.jogamp.common.os.NativeLibrary$3 (file:/home/evmik/robocode/./libs/gluegen-rt-2.3.2.jar) to method java.lang.ClassLoader.findLibrary(java.lang.String)
WARNING: Please consider reporting this to the maintainers of com.jogamp.common.os.NativeLibrary$3
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Creating window.properties file
update takes 0.030204256s
Preparing battle...
----------------------
Round 1 initializing..
Let the games begin!
..
force update takes 0.038383916s
com.jogamp.opengl.util.AnimatorBase$UncaughtAnimatorException: java.lang.RuntimeException: com.jogamp.opengl.GLException: Caught IllegalArgumentException: Width (-13) and height (-10) cannot be <= 0 on thread AWT-EventQueue-0
	at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:92)
	at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:452)
	at com.jogamp.opengl.util.Animator$MainLoop.run(Animator.java:204)
	at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.RuntimeException: com.jogamp.opengl.GLException: Caught IllegalArgumentException: Width (-13) and height (-10) cannot be <= 0 on thread AWT-EventQueue-0
	at com.jogamp.common.util.awt.AWTEDTExecutor.invoke(AWTEDTExecutor.java:58)
	at jogamp.opengl.awt.AWTThreadingPlugin.invokeOnOpenGLThread(AWTThreadingPlugin.java:103)
	at jogamp.opengl.ThreadingImpl.invokeOnOpenGLThread(ThreadingImpl.java:201)
	at com.jogamp.opengl.Threading.invokeOnOpenGLThread(Threading.java:202)
	at com.jogamp.opengl.Threading.invoke(Threading.java:221)
	at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:505)
	at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81)
	... 3 more
Caused by: com.jogamp.opengl.GLException: Caught IllegalArgumentException: Width (-13) and height (-10) cannot be <= 0 on thread AWT-EventQueue-0
	at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
	at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
	at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
	at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1438)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:303)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.IllegalArgumentException: Width (-13) and height (-10) cannot be <= 0
	at java.desktop/java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
	at java.desktop/java.awt.image.BufferedImage.<init>(BufferedImage.java:324)
	at net.sf.robocode.ui.battleview.BattleView.createGroundImage(BattleView.java:252)
	at net.sf.robocode.ui.battleview.BattleView.initialize(BattleView.java:221)
	at net.sf.robocode.ui.battleview.BattleView.access$1300(BattleView.java:71)
	at net.sf.robocode.ui.battleview.BattleView$MyPanel.update(BattleView.java:857)
	at net.sf.robocode.ui.battleview.BattleView$MyPanel.paint(BattleView.java:847)
	at org.jogamp.glg2d.GLG2DSimpleEventListener.paintGL(GLG2DSimpleEventListener.java:124)
	at org.jogamp.glg2d.GLG2DSimpleEventListener.display(GLG2DSimpleEventListener.java:67)
	at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
	at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
	at com.jogamp.opengl.awt.GLCanvas$11.run(GLCanvas.java:1424)
	at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
	... 15 more
com.jogamp.opengl.GLException: Caught IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0 on thread AWT-EventQueue-0
	at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
	at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
	at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
	at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1438)
	at com.jogamp.opengl.Threading.invoke(Threading.java:223)
	at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:505)
	at com.jogamp.opengl.awt.GLCanvas.paint(GLCanvas.java:559)
	at java.desktop/sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
	at java.desktop/sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:66)
	at java.desktop/sun.awt.RepaintArea.paint(RepaintArea.java:240)
	at java.desktop/sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:555)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5069)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0
	at java.desktop/java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
	at java.desktop/java.awt.image.BufferedImage.<init>(BufferedImage.java:324)
	at net.sf.robocode.ui.battleview.BattleView.createGroundImage(BattleView.java:252)
	at net.sf.robocode.ui.battleview.BattleView.initialize(BattleView.java:221)
	at net.sf.robocode.ui.battleview.BattleView.access$1300(BattleView.java:71)
	at net.sf.robocode.ui.battleview.BattleView$MyPanel.update(BattleView.java:857)
	at net.sf.robocode.ui.battleview.BattleView$MyPanel.paint(BattleView.java:847)
	at org.jogamp.glg2d.GLG2DSimpleEventListener.paintGL(GLG2DSimpleEventListener.java:124)
	at org.jogamp.glg2d.GLG2DSimpleEventListener.display(GLG2DSimpleEventListener.java:67)
	at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
	at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
	at com.jogamp.opengl.awt.GLCanvas$11.run(GLCanvas.java:1424)
	at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
	... 28 more
com.jogamp.opengl.GLException: Caught IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0 on thread AWT-EventQueue-0
	at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
	at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
	at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
	at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1438)
	at com.jogamp.opengl.Threading.invoke(Threading.java:223)
	at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:505)
	at com.jogamp.opengl.awt.GLCanvas.paint(GLCanvas.java:559)
	at java.desktop/sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
	at java.desktop/sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:66)
	at java.desktop/sun.awt.RepaintArea.paint(RepaintArea.java:240)
	at java.desktop/sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:555)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5069)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0
	at java.desktop/java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
	at java.desktop/java.awt.image.BufferedImage.<init>(BufferedImage.java:324)
	at net.sf.robocode.ui.battleview.BattleView.createGroundImage(BattleView.java:252)
	at net.sf.robocode.ui.battleview.BattleView.initialize(BattleView.java:221)
	at net.sf.robocode.ui.battleview.BattleView.access$1300(BattleView.java:71)
	at net.sf.robocode.ui.battleview.BattleView$MyPanel.update(BattleView.java:857)
	at net.sf.robocode.ui.battleview.BattleView$MyPanel.paint(BattleView.java:847)
	at org.jogamp.glg2d.GLG2DSimpleEventListener.paintGL(GLG2DSimpleEventListener.java:124)
	at org.jogamp.glg2d.GLG2DSimpleEventListener.display(GLG2DSimpleEventListener.java:67)
	at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
	at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
	at com.jogamp.opengl.awt.GLCanvas$11.run(GLCanvas.java:1424)
	at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
	... 28 more
com.jogamp.opengl.GLException: Caught IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0 on thread AWT-EventQueue-0
	at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
	at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
	at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
	at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1438)
	at com.jogamp.opengl.Threading.invoke(Threading.java:223)
	at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:505)
	at com.jogamp.opengl.awt.GLCanvas.paint(GLCanvas.java:559)
	at java.desktop/sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
	at java.desktop/sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:66)
	at java.desktop/sun.awt.RepaintArea.paint(RepaintArea.java:240)
	at java.desktop/sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:555)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5069)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0
	at java.desktop/java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
	at java.desktop/java.awt.image.BufferedImage.<init>(BufferedImage.java:324)
	at net.sf.robocode.ui.battleview.BattleView.createGroundImage(BattleView.java:252)
	at net.sf.robocode.ui.battleview.BattleView.initialize(BattleView.java:221)
	at net.sf.robocode.ui.battleview.BattleView.access$1300(BattleView.java:71)
	at net.sf.robocode.ui.battleview.BattleView$MyPanel.update(BattleView.java:857)
	at net.sf.robocode.ui.battleview.BattleView$MyPanel.paint(BattleView.java:847)
	at org.jogamp.glg2d.GLG2DSimpleEventListener.paintGL(GLG2DSimpleEventListener.java:124)
	at org.jogamp.glg2d.GLG2DSimpleEventListener.display(GLG2DSimpleEventListener.java:67)
	at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
	at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
	at com.jogamp.opengl.awt.GLCanvas$11.run(GLCanvas.java:1424)
	at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
	... 28 more
com.jogamp.opengl.GLException: Caught IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0 on thread AWT-EventQueue-0
	at com.jogamp.opengl.GLException.newGLException(GLException.java:76)
	at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1327)
	at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
	at com.jogamp.opengl.awt.GLCanvas$12.run(GLCanvas.java:1438)
	at com.jogamp.opengl.Threading.invoke(Threading.java:223)
	at com.jogamp.opengl.awt.GLCanvas.display(GLCanvas.java:505)
	at com.jogamp.opengl.awt.GLCanvas.paint(GLCanvas.java:559)
	at java.desktop/sun.awt.RepaintArea.paintComponent(RepaintArea.java:264)
	at java.desktop/sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:66)
	at java.desktop/sun.awt.RepaintArea.paint(RepaintArea.java:240)
	at java.desktop/sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:555)
	at java.desktop/java.awt.Component.dispatchEventImpl(Component.java:5069)
	at java.desktop/java.awt.Component.dispatchEvent(Component.java:4840)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:772)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
	at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:95)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
	at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:743)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
	at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:742)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Caused by: java.lang.IllegalArgumentException: Width (-20) and height (-15) cannot be <= 0
	at java.desktop/java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1016)
	at java.desktop/java.awt.image.BufferedImage.<init>(BufferedImage.java:324)
	at net.sf.robocode.ui.battleview.BattleView.createGroundImage(BattleView.java:252)
	at net.sf.robocode.ui.battleview.BattleView.initialize(BattleView.java:221)
	at net.sf.robocode.ui.battleview.BattleView.access$1300(BattleView.java:71)
	at net.sf.robocode.ui.battleview.BattleView$MyPanel.update(BattleView.java:857)
	at net.sf.robocode.ui.battleview.BattleView$MyPanel.paint(BattleView.java:847)
	at org.jogamp.glg2d.GLG2DSimpleEventListener.paintGL(GLG2DSimpleEventListener.java:124)
	at org.jogamp.glg2d.GLG2DSimpleEventListener.display(GLG2DSimpleEventListener.java:67)
	at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
	at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
	at com.jogamp.opengl.awt.GLCanvas$11.run(GLCanvas.java:1424)
	at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
	... 28 more
X11Util.Display: Shutdown (JVM shutdown: true, open (no close attempt): 1/1, reusable (open, marked uncloseable): 0, pending (open in creation order): 1)
X11Util: Open X11 Display Connections: 1
X11Util: Open[0]: NamedX11Display[:0, 0x7f39984078c0, refCount 1, unCloseable false]