docs: @FFDCIgnore(NullPointerException.class)
      protected void addLibraryFile(File f) {
  
          if (!!!f.exists()) {
              if (tc.isWarningEnabled()) {
                  Tr.warning(tc, "cls.library.archive", f, new FileNotFoundException(f.getName()));
              }
              return;
          }
  
          // Skip files that are not archives of some sort.
          if (!f.isDirectory() && !isArchive(f))
              return;
  
          //this area subject to refactor following shared lib rework..
          //ideally the shared lib code will start passing us ArtifactContainers, and it
          //will own the management of the ACF via DS.
  
          //NASTY.. need to use DS to get the ACF, not OSGi backdoor ;p
          BundleContext bc = FrameworkUtil.getBundle(ContainerClassLoader.class).getBundleContext();
          ServiceReference<ArtifactContainerFactory> acfsr = bc.getServiceReference(ArtifactContainerFactory.class);
          if (acfsr != null) {
              ArtifactContainerFactory acf = bc.getService(acfsr);
              if (acf != null) {
                  //NASTY.. using this bundle as the cache dir location for the data file..
                  try {
                      ArtifactContainer ac = acf.getContainer(bc.getBundle().getDataFile(""), f);
                      smartClassPath.addArtifactContainer(ac);
                  } catch (NullPointerException e) {
                      // TODO completed under task 74097
                      if (tc.isDebugEnabled()) {
                          Tr.debug(tc, "Exception while adding files to classpath", e);
                      }
                      if (tc.isInfoEnabled()) {
                          Tr.info(tc, "cls.library.file.forbidden", f);
                      }
                  }
              }
          }
      }