code: public Set<IoSession> find(Iterable<IoSession> sessions) throws OgnlException {
          if (sessions == null) {
              throw new NullPointerException("sessions");
          }
          
          Set<IoSession> answer = new LinkedHashSet<>();
          for (IoSession s: sessions) {
              OgnlContext context = (OgnlContext) Ognl.createDefaultContext(s);
              context.setTypeConverter(typeConverter);
              context.put(AbstractPropertyAccessor.READ_ONLY_MODE, true);
              context.put(AbstractPropertyAccessor.QUERY, query);
              Object result = Ognl.getValue(expression, context, s);
              if (result instanceof Boolean) {
                  if ((Boolean) result) {
                      answer.add(s);
                  }
              } else {
                  throw new OgnlException(
                          "Query didn't return a boolean value: " + query);
              }
          }
          
          return answer;
      }
docs: Finds a {@link Set} of {@link IoSession}s that matches the query
  from the specified sessions and returns the matches.
  @throws OgnlException if failed to evaluate the OGNL expression