No Such Element Exception



  • I am having a problem which is odd enough that I wanted to discuss before creating a GitHub issue. I am having problem with scenarios that I have extracted in order to edit. In 2 different scenarios I receive the NoSuchElementException and the following error in the debug console. The second error repeats multiple times.The map in one scenario has some large rectangular blank errors and the other scenario only on small part of the map is drawn. Other extracted scenarios work fine.

    java.util.NoSuchElementException
    at com.google.common.collect.AbstractIndexedListIterator.next(AbstractIndexedListIterator.java:75)
    at games.strategy.triplea.ui.mapdata.DefaultColors.nextColor(DefaultColors.java:30)
    at games.strategy.triplea.ui.mapdata.MapData.getPlayerColor(MapData.java:496)
    at games.strategy.triplea.ui.screen.SmallMapImageManager.update(SmallMapImageManager.java:48)
    at games.strategy.triplea.ui.panels.map.MapPanel.initSmallMap(MapPanel.java:854)
    at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:313)
    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)

    May 03, 2020 4:16:49 PM org.triplea.game.client.HeadedGameRunner lambda$initializeClientSettingAndLogging$0
    SEVERE: null
    java.util.NoSuchElementException
    at com.google.common.collect.AbstractIndexedListIterator.next(AbstractIndexedListIterator.java:75)
    at games.strategy.triplea.ui.mapdata.DefaultColors.nextColor(DefaultColors.java:30)
    at games.strategy.triplea.ui.mapdata.MapData.getPlayerColor(MapData.java:496)
    at games.strategy.triplea.ui.screen.drawable.BattleDrawable.draw(BattleDrawable.java:70)
    at games.strategy.triplea.ui.screen.Tile.draw(Tile.java:70)
    at games.strategy.triplea.ui.screen.Tile.drawImage(Tile.java:55)
    at games.strategy.triplea.ui.panels.map.MapPanel.lambda$paint$7(MapPanel.java:749)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)


  • Admin

    @RogerCooper It appears you have a map that is relying on default player colors where you have more than 8 players and there are only 8 defaults defined in TripleA. If you edit the map to define player colors for all players or all but 8 or less, it should work.



  • @redrum Here is the map.properties file. Is there somewhere else I need to define the colors?

    #Color settings for the map, values must be in 6 digit hex form
    color.Uthgardian_Empire=ffff80
    color.Pirates_Of_Razor_Pass=808081
    color.Dragonfire_Coast_Federation=ff0001
    color.Gandar_Republic=004080
    color.Burusian_Empire=808001
    color.League_Of_Kahnbrek=008001

    units.scale=1.00
    map.showCapitolMarkers=false
    map.width=3500
    map.height= 2000
    map.scrollWrapX=false

    should we draw territory names

    map.showTerritoryNames=true
    map.showSeaZoneNames=true


  • Admin

    @RogerCooper That looks fine. Either it isn't reading your properties file or you have lots of other players with their colors defined. If you send me the map, I can take a look.



  • @redrum 6Kingdoms.zip
    Note that there are no other players at all.


  • Moderators Admin

    @RogerCooper Do the other errors that repeat equal all the players listed in the properties file?



  • @Hepps The error repeats many times, far more than 6.

    I was able to fix the problem with the other scenario (I was missing a player in map.properties).

    Note that small portion of the map is displayed with colors.

    6_Kingdoms.png


  • Admin

    @RogerCooper It loads fine for me. Can you double check that you don't have multiple versions of it in your maps folder?



  • @redrum Only 1 version. It does not work for me when zipped either.


  • Admin

    @RogerCooper Hmm. And you are using 1.9.0.0.13066 or a pre-release version? I just tested with 1.9.0.0.13066 with the zipped map and see this:
    14440d0c-2fb8-418a-aadd-eb65877867f0-image.png



  • @redrum I am using the prerelease (19049)


  • Admin

    @redrum Nice to hear that the stacktraced seems to be cause by such a "simple" problem, but I found the stacktrace super confusing nevertheless.
    Would it be easy to add some sort of pre-condition so we would fail to parse a map when the engine noticed there aren't enough default colors? I think a simpler error message would be desirable here.


Log in to reply
 

37404
1780
2097
Who's Online
Visitors Today