@Override
    public IJObject access(IVisitablePointable pointable, IObjectPool<IJObject, IAType> objectPool)
        throws HyracksDataException {
      IJObject jObject = objectPool.allocate(BuiltinType.ASTRING);

      try {
        byte byteArray[] = pointable.getByteArray();
        int len = pointable.getLength() - 3;
        int off = pointable.getStartOffset() + 3;
        baaos.reset();
        if (off >= 0 && off <= byteArray.length && len >= 0 && off + len - byteArray.length <= 0) {
          baaos.write(byteArray, off, len);
          ((JString) jObject).setValue(JObjectUtil.getNormalizedString(baaos.toString("UTF-8")));
        } else {
          ((JString) jObject).setValue("");
        }
      } catch (IOException e) {
        e.printStackTrace();
      }
      return jObject;
    }