code: public void dispose() {
          if (_cacheFile != null && _dirty) {
              PrintStream out = null;
              try {
                  File parent = _cacheFile.getParentFile();
                  if (parent.isDirectory() || parent.mkdirs()) {
                      out = new PrintStream(_cacheFile);
                      for (List<Resource> bundleInfoList : _cacheBySymbolicName.values()) {
                          for (Resource bundleInfo : bundleInfoList) {
                              out.println(bundleInfo);
                          }
                      }
                  }
              } catch (IOException e) {
              } finally {
                  Utils.tryToClose(out);
              }
          }
          _bundleLocations.clear();
          _cacheBySymbolicName.clear();
      }
docs: This method is called once provisioning is over. It flushes the cache and clears up memory.
  After this is called future calls to public methods will fail.