@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; }