docs: public FieldTable linkRemoteSessionTable(RemoteSession session, FieldList record, boolean bUseCache)
      {
          FieldTable table = null;
          if (record != null)
          {
              if (Constants.TABLE == (record.getDatabaseType() & Constants.TABLE_TYPE_MASK))
              {   // Special case - table - NOTE: I am VERY careful not to directly reference the table classes... I don't want them loaded unless they are necessary!
                  Application app = this.getApplication();
                  ThinPhysicalDatabaseParent dbParent = app.getPDatabaseParent(mapDBParentProperties, true);
                  ThinPhysicalDatabase pDatabase = dbParent.getPDatabase(record.getDatabaseName(), ThinPhysicalDatabase.NET_TYPE, true);    // Net database
                  ThinPhysicalTable pTable = pDatabase.getPTable(record, true, true);
                  pTable.addPTableOwner((PhysicalDatabaseParent)dbParent);   // NO NO NO - Don't coerce
              }
              table = record.getTable();
          }
          if (table == null)
          {
              RemoteTable remoteTable = null;
              try   {
                  synchronized (this.getRemoteTask())
                  {   // In case this is called from another task
                      if ((record == null)
                          && (session instanceof RemoteTable))
                      {   // Special case - no record supplied for a RemoteTable, build the record.
                          remoteTable = (RemoteTable)session;
                          record = remoteTable.makeFieldList(null);
                      }
                      else
                      {
                          remoteTable = session.getRemoteTable(record.getTableNames(false));
                      }
                  }
              } catch (RemoteException ex)    {
                  ex.printStackTrace();
              } catch (Exception ex)  {
                  ex.printStackTrace();
              }
              if (bUseCache)
                  remoteTable = new org.jbundle.thin.base.db.client.CachedRemoteTable(remoteTable);
              table = new org.jbundle.thin.base.db.client.RemoteFieldTable(record, remoteTable, this.getRemoteTask());
          }
          return table;
      }