try { xctxt.pushCurrentNode(parentContext);
throw new java.lang.RuntimeException(se.getMessage()); } finally { xctxt.popCurrentNode();
  public int getLastPos(XPathContext xctxt)  {    int context = xctxt.getCurrentNode();    DTM dtm = xctxt.getDTM(context);    int parentContext = xctxt.getPredicateRoot();        {      // System.out.println("parentContext: "+parentContext.getNodeName());      try      {        xctxt.pushCurrentNode(parentContext);        int count = 0;        DTMAxisTraverser traverser = dtm.getAxisTraverser(m_axisForPredicate);        for (int child = traverser.first(parentContext); DTM.NULL != child;                child = traverser.next(parentContext, child))        {          try          {            xctxt.pushCurrentNode(child);            if (NodeTest.SCORE_NONE != super.execute(xctxt, child))              count++;          }          finally          {            xctxt.popCurrentNode();          }        }        return count;      }      catch (javax.xml.transform.TransformerException se)      {        // TODO: should keep throw sax exception...        throw new java.lang.RuntimeException(se.getMessage());      }      finally      {        xctxt.popCurrentNode();        // xctxt.popContextNodeList();      }    }    // return 0;  }