code: private void runImportCommand(final String kamName, final File pkamFile,
              final ExportFormat exportFormat,
              final boolean noPreserve) {
  
          if (exportFormat != ExportFormat.PORTABLE_KAM) {
              fatal(format(
                      "`%s --%s` only supports the portable KAM file format.",
                      kamManager, commandStr));
          }
  
          final String pkamPath = pkamFile.getAbsolutePath();
          try {
              setUp();
  
              // find KAM by name and see if validate preserve option
              if (kamName != null) {
                  List<KamInfo> kamInfos = kAMStore.getCatalog();
                  for (KamInfo kamInfo : kamInfos) {
                      if (kamName.equals(kamInfo.getName()) && !noPreserve) {
                          teardown();
                          fatal("KAM cannot be overridden, specify --"
                                  + LONG_OPT_NO_PRESERVE + " to override");
                      }
                  }
              }
  
              pkamService.deserializeKAM(kamName, pkamPath, noPreserve);
          } catch (KAMStoreException e) {
              teardown();
              bailOnException(e);
          } catch (PKAMSerializationFailure e) {
              teardown();
              bailOnException(e);
          } catch (IllegalStateException e) {
              // FIXME Hack to catch noPreserve check error thrown from DefaultPKAMSerializationService
              teardown();
              fatal("KAM cannot be overridden, specify --" + LONG_OPT_NO_PRESERVE
                      + " to override");
          } catch (SQLException e) {
              teardown();
              bailOnException(e);
          } catch (IOException e) {
              teardown();
              bailOnException(e);
          } finally {
              teardown();
          }
      }
docs: /*
  The following methods are responsible for performing one of the commands.  They all:
  <ol>
  <li>throw no exceptions, and therefore report their own error messages</li>
  <li>take the values of the related command line options as method arguments (except for common options)</li>
  <li>may utilize the services provided by those objects initialized in {@link setUp} and destroyed in {@link teardown}, and</li>
  <li>call {@link setUp} and {@link teardown} before and after performing the command.</li>
  </ol>