code: @Override
      public ArtifactEntry getEntry(String pathAndName) {
          // Normalize the path to handle .. notation and check they are not trying to leave the archive
          pathAndName = PathUtils.checkAndNormalizeRootPath(pathAndName);
  
          // We may have bundle fragments so first test this bundle and if we don't find the entry test the fragments
          URL bundleEntry = this.getBundleEntry(this.bundle, pathAndName);
          if (bundleEntry == null) {
              /*
               * Fragments are loaded via bundle wirings and the parent bundle (that we are working with) "provides" the wires to it's fragments (see section 7.2.3 of the OSGi 4.3
               * spec). Iterate through each of them until we find the entry
               */
              BundleWiring bundleWiring = this.bundle.adapt(BundleWiring.class);
              // The bundleWiring can be null - in particular if this bundle has been stopped/uninstalled.
              if (bundleWiring != null) {
                  List<BundleWire> wires = bundleWiring.getProvidedWires(BundleRevision.HOST_NAMESPACE);
                  if (wires != null) {
                      Iterator<BundleWire> wireIterator = wires.iterator();
                      while (bundleEntry == null && wireIterator.hasNext()) {
                          BundleWire wire = wireIterator.next();
                          Bundle fragment = wire.getRequirerWiring().getBundle();
                          bundleEntry = this.getBundleEntry(fragment, pathAndName);
                      }
                  }
              }
  
          }
  
          if (bundleEntry != null) {
              return this.createEntry(bundleEntry);
          }
          return null;
      }
docs: {@inheritDoc}