code: public void doFinally() {
          try {
              // If we exposed a Reader in doStartTag(), close it.
              if (varReader != null) {
                  // 'r' can be null if an exception was thrown...
                  if (r != null) {
                      r.close();
                  }
                  pageContext.removeAttribute(varReader, PageContext.PAGE_SCOPE);
              }
          } catch (IOException ex) {
              // ignore it; close() failed, but there's nothing more we can do
          }
      }
docs: cleans up if appropriate