maybe hasArray() should be called,if not?then the channelbuffer is not direct channelbuffer?