commit a36b9dca162f1b911dac1c8c7eba578bc2d7360f
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Tue Sep 7 23:27:46 2021 +0200

    Defer initialization of statics in RubikNetwork till we actually need them.

diff --git a/src/main/java/org/distorted/network/RubikNetwork.java b/src/main/java/org/distorted/network/RubikNetwork.java
index 80cdcfe8..855d1a26 100644
--- a/src/main/java/org/distorted/network/RubikNetwork.java
+++ b/src/main/java/org/distorted/network/RubikNetwork.java
@@ -96,11 +96,11 @@ public class RubikNetwork implements Runnable
     "%f8", "%f9", "%fa", "%fb", "%fc", "%fd", "%fe", "%ff"
     };
 
-  private static final int mTotal = ObjectList.getTotal();
-  private static final String[][][] mCountry = new String[mTotal][MAX_LEVEL][MAX_PLACES];
-  private static final String[][][] mName    = new String[mTotal][MAX_LEVEL][MAX_PLACES];
-  private static final  float[][][] mTime    = new  float[mTotal][MAX_LEVEL][MAX_PLACES];
-  private static final int[][] mPlaces = new int[mTotal][MAX_LEVEL];
+  private static int mTotal = 0;
+  private static String[][][] mCountry;
+  private static String[][][] mName;
+  private static float[][][] mTime;
+  private static int[][] mPlaces;
 
   private static RubikNetwork mThis;
   private static String mScores = "";
@@ -109,6 +109,17 @@ public class RubikNetwork implements Runnable
   private static Receiver mReceiver;
   private static String mVersion;
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  private static void initializeStatics()
+    {
+    if( mTotal==0      ) mTotal   = ObjectList.getTotal();
+    if( mCountry==null ) mCountry = new String[mTotal][MAX_LEVEL][MAX_PLACES];
+    if( mName==null    ) mName    = new String[mTotal][MAX_LEVEL][MAX_PLACES];
+    if( mTime==null    ) mTime    = new  float[mTotal][MAX_LEVEL][MAX_PLACES];
+    if( mPlaces==null  ) mPlaces  = new int[mTotal][MAX_LEVEL];
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private static String computeHash(String stringToHash, byte[] salt)
@@ -512,6 +523,8 @@ public class RubikNetwork implements Runnable
     {
     boolean receiveValues=true;
 
+    initializeStatics();
+
     try
       {
       if( mMode==DOWNLOAD && gottaDownload() )
