Incorrect length of frame on Android 5.0.2
Hi, I find the extended payload length incorrect when an android 5.0.2 phone sends binary frames (for instance, some pictures) which is over 64k size. As you can see in my screenshot, payload length is 127 which means the frame is larger than 64KB and should essentially use 64bits to store the real length of that frame. Unfortunately the extended payload length is actually set to 23687(this number varies at times) which is smaller than 65536. So the server-side program mis-understands the boundary between this frame and the following frame , cuts the frame into pieces without a CONTINUE message, thus it throws an exception. This issue reappears on all 5.0.2 devices that I have while all 4.x devices are OK (with android async version 2.1.3 & 2.1.7).
I guess there may be some problems with System.arraycopy of Android 5.0.2 or the mask processing. So far as I see, it's the only code in the frame method that is possible to overwrite header fields of the frame byte array.
BTW, Could I compile and package my android project with sources of Android Aysnc instead of referring to it by the binary jar of gradle dependencies? If possible, is there any guide lines to follow or simply to copy all the source files to my project?