code: @Override
      protected void initQueue(T queue, QueueSpec spec) throws Exception {
          queue.setJdbcHelper(defaultJdbcHelper).setDataSource(defaultDataSource);
  
          queue.setEphemeralDisabled(getDefaultEphemeralDisabled())
                  .setEphemeralMaxSize(getDefaultEphemeralMaxSize());
          Boolean ephemeralDisabled = spec.getField(QueueSpec.FIELD_EPHEMERAL_DISABLED,
                  Boolean.class);
          if (ephemeralDisabled != null) {
              queue.setEphemeralDisabled(ephemeralDisabled.booleanValue());
          }
          Integer maxEphemeralSize = spec.getField(QueueSpec.FIELD_EPHEMERAL_MAX_SIZE, Integer.class);
          if (maxEphemeralSize != null) {
              queue.setEphemeralMaxSize(maxEphemeralSize.intValue());
          }
  
          queue.setTableName(defaultTableName).setTableNameEphemeral(defaultTableNameEphemeral)
                  .setMaxRetries(defaultMaxRetries)
                  .setTransactionIsolationLevel(defaultTransactionIsolationLevel);
          String tableName = spec.getField(SPEC_FIELD_TABLE_NAME);
          if (!StringUtils.isBlank(tableName)) {
              queue.setTableName(tableName);
          }
          String tableNameEphemeral = spec.getField(SPEC_FIELD_TABLE_NAME_EPHEMERAL);
          if (!StringUtils.isBlank(tableNameEphemeral)) {
              queue.setTableNameEphemeral(tableNameEphemeral);
          }
          Integer maxRetries = spec.getField(SPEC_FIELD_MAX_RETRIES, Integer.class);
          if (maxRetries != null) {
              queue.setMaxRetries(maxRetries.intValue());
          }
          Integer txIsolationLevel = spec.getField(SPEC_FIELD_TRANSACTION_ISOLATION_LEVEL,
                  Integer.class);
          if (txIsolationLevel != null) {
              queue.setTransactionIsolationLevel(txIsolationLevel.intValue());
          }
  
          super.initQueue(queue, spec);
      }
docs: {@inheritDoc}
  
  @throws Exception