Чтение большого файла из апплета javacard

Я пишу апплет, который хранит 3 файла разных размеров 5 Кб, 7 Кб и 11 Кб. У меня нет проблем с хранением файлов внутри апплета. Но когда я пытаюсь прочитать их обратно, я могу прочитать только первые два (меньшие файлы). Третий файл выдает исключение:

javax.smartcardio.CardException: Could not obtain response
at sun.security.smartcardio.ChannelImpl.doTransmit(Unknown Source)
at sun.security.smartcardio.ChannelImpl.transmit(Unknown Source)

Я попытался выяснить проблему и выяснил, что это связано с размером файла. Поэтому я создал тестовый файл размером 7 Кбайт и постепенно увеличивал этот файл. Это работало, пока я не достиг 7905 байтов. Это означает, что 7905 байт - это максимальное количество байтов, которое я могу прочитать из апплета. Я формирую цепочку ответа, используя пример кода:

public void readFile(APDU apdu, short[] offset, short selectedFile, short MAX_APDU_SEN,       byte OFFSET_SENT) {
    byte[] file = getFile(selectedFile); 
    if (file == null) {
    + ISOException.throwIt(ISO7816.SW_FILE_NOT_FOUND);+
    }
    // work out how many bytes to send this time and how many will be left
    short remain = (short) (file.length - offset[OFFSET_SENT]);
    boolean chain = remain > MAX_APDU_SEN;
    short sendLen = chain ? MAX_APDU_SEN : remain;
    apdu.setOutgoing();
    apdu.setOutgoingLength(sendLen);
    apdu.sendBytesLong(file, offset[OFFSET_SENT], sendLen);
    // Check to see if there are more APDU's to send
    if (chain) {
    +offset[OFFSET_SENT] = sendLen; // count the bytes sent
    ISOException.throwIt(ISO7816.SW_BYTES_REMAINING_00); // indicate there are more bytes     to come
    } else {+
    offset[OFFSET_SENT] = 0; // no more bytes to send
    }
}

Я пробовал два разных типа карт, то есть карты, совместимые с JC 2.2.1 (36Kb) и JC 2.2.2 (80Kb), но все они ведут себя одинаково.

Любая помощь, пожалуйста?