code: public BufferedImage get(URI uri) throws IOException
      {
          synchronized (imgmap)
          {
              if (imgmap.containsKey(uri))
              {
                  imgmapAccessQueue.remove(uri);
                  imgmapAccessQueue.addLast(uri);
                  return imgmap.get(uri);
              }
          }
          synchronized (bytemap)
          {
              if (bytemap.containsKey(uri))
              {
                  log("retrieving from bytes");
                  bytemapAccessQueue.remove(uri);
                  bytemapAccessQueue.addLast(uri);
                  BufferedImage img = ImageIO.read(new ByteArrayInputStream(bytemap.get(uri)));
                  addToImageCache(uri, img);
                  return img;
              }
          }
          return null;
      }
docs: Returns a buffered image for the requested URI from the cache. This method must return null if the image is not
  in the cache. If the image is unavailable but it's compressed version *is* available, then the compressed version
  will be expanded and returned.
  @param uri URI of the image previously put in the cache
  @return the image matching the requested URI, or null if not available
  @throws IOException if retrieval fails