=== modified file 'src/com/goldencode/p2j/persist/ConversionPool.java'
--- src/com/goldencode/p2j/persist/ConversionPool.java	2022-04-12 20:19:25 +0000
+++ src/com/goldencode/p2j/persist/ConversionPool.java	2022-07-14 21:09:53 +0000
@@ -184,8 +184,6 @@
          }
          catch (AstException | ConfigurationException exc)
          {
-            pristineDbAsts = null; // helping GC
-            
             String msg = "Failed to load the pristine '" + schema + "' schema information from file.";
             
             if (LOG.isLoggable(Level.WARNING))
@@ -335,12 +333,7 @@
       Stack<PatternEngine> stack;
       synchronized (pool)
       {
-         stack = pool.get(profile);
-         if (stack == null)
-         {
-            stack = new Stack<>();
-         }
-         pool.put(profile, stack);
+         stack = pool.computeIfAbsent(profile, conversionProfile -> new Stack<>());
       }
       
       synchronized (stack)

=== modified file 'src/com/goldencode/p2j/persist/DynamicTablesHelper.java'
--- src/com/goldencode/p2j/persist/DynamicTablesHelper.java	2022-02-12 01:08:04 +0000
+++ src/com/goldencode/p2j/persist/DynamicTablesHelper.java	2022-07-14 19:55:43 +0000
@@ -177,9 +177,9 @@
    private final Object cacheLock = new Object();
    
    /** Containers for context-specific data. */
-   private final ContextLocal<Context> context = new ContextLocal<Context>()
+   private final ContextLocal<Context> context = new ContextLocal<>()
    {
-      public WeightFactor getWeight() { return WeightFactor.LEVEL_8; };
+      public WeightFactor getWeight() { return WeightFactor.LEVEL_8; }
       public Context initialValue() { return new Context(); }
       protected void cleanup(Context ctx) { ctx.cleanup(); }
    };
@@ -573,17 +573,13 @@
       
       // check the cache first
       CacheKey cacheKey = new CacheKey(allFields, allIndexes);
-      CacheData cacheData = null;
+      CacheData cacheData;
       
       synchronized (cacheLock)
       {
          cacheData = cache.get(cacheKey);
       }
-      
-      String fullIfaceName = null;
-      String fullIfaceBufName = null;
-      String fullImplClassName = null;
-      String sqlTableName = null;
+
       DmoMeta dmoMeta = null;
       Class<? extends DataModelObject> dmoIface = null;
       Class<? extends TempTableBuffer> dmoBufIface = null;
@@ -603,7 +599,7 @@
             clsFieldsORMTo4GL = new HashMap<>();
             
             long tableId = tableCounter.getAndIncrement();
-            sqlTableName = "dtt" + tableId;
+            String sqlTableName = "dtt" + tableId;
             
             String ifaceName = "DynamicRecord" + tableId;
             
@@ -639,8 +635,8 @@
                // generate interface Java ASTs
                results = ConversionPool.runTask(ConversionProfile.JAVA_DMO, root);
                Aast iface = (Aast) results.getStoredObject(DMO_IFACE_CATEGORY, ifaceName);
-               fullIfaceName = DMO_BASE_PACKAGE + "." + DatabaseManager.TEMP_TABLE_SCHEMA + "." + ifaceName;
-               fullIfaceBufName = fullIfaceName + "$Buf";
+               String fullIfaceName = DMO_BASE_PACKAGE + "." + DatabaseManager.TEMP_TABLE_SCHEMA + "." + ifaceName;
+               String fullIfaceBufName = fullIfaceName + "$Buf";
                
                // generate bytecode from Java ASTs
                results = ConversionPool.runTask(ConversionProfile.BREW_DMO_ASM, iface);
@@ -676,7 +672,7 @@
                      dmoMeta = DmoMetadataManager.registerDmo(dmoIface);
                      extractIndexes(dmoMeta, fwdIndexes);
                      dmoClass = dmoMeta.getImplementationClass();
-                     fullImplClassName = dmoClass.getName();
+                     String fullImplClassName = dmoClass.getName();
                      classes.put(fullImplClassName, dmoClass);
                      
                      dmoInfo = new DMOInfo(classes.values(), clsFields4GLtoORM, clsFieldsORMTo4GL);
@@ -704,18 +700,12 @@
          if (cacheData != null)
          {
             dmoInfo = cacheData.getDMOInfo();
-            fullIfaceName = cacheData.getDMOIfaceName();
-            fullIfaceBufName = fullIfaceName + "$Buf";
-            fullImplClassName = cacheData.getDMOClassName();
-            sqlTableName = cacheData.getSqlTableName();
-            fwdIndexes = cacheData.getFwdIndices();
+            String fullIfaceName = cacheData.getDMOIfaceName();
+            String fullIfaceBufName = fullIfaceName + "$Buf";
             classes = cacheData.getClasses();
-            clsFields4GLtoORM = dmoInfo.getLegacyToDmoNames();
-            clsFieldsORMTo4GL = dmoInfo.getDmoToLegacyNames();
             dmoIface = (Class<? extends DataModelObject>) classes.get(fullIfaceName);
             dmoBufIface = (Class<? extends TempTableBuffer>) classes.get(fullIfaceBufName);
             dmoMeta = DmoMetadataManager.getDmoInfo(dmoIface);
-            dmoClass = dmoMeta.getImplementationClass();
          }
          
          if (local.registerDMOInfo(dmoIface, dmoInfo))

=== modified file 'src/com/goldencode/p2j/persist/TempTableBuilder.java'
--- src/com/goldencode/p2j/persist/TempTableBuilder.java	2022-01-21 01:30:17 +0000
+++ src/com/goldencode/p2j/persist/TempTableBuilder.java	2022-07-14 19:50:27 +0000
@@ -172,7 +172,6 @@
 import com.goldencode.p2j.persist.orm.*;
 import com.goldencode.p2j.ui.client.format.*;
 import com.goldencode.p2j.util.*;
-import java.lang.reflect.*;
 import java.util.*;
 import java.util.function.*;
 

