Я получаю следующее исключение при использовании FileChannel.map
Exception in thread "main" java.lang.IllegalArgumentException: Size exceeds Integer.MAX_VALUE
at sun.nio.ch.FileChannelImpl.map(Unknown Source)
at niotest.NioTest.readUsingNio(NioTest.java:38)
at niotest.NioTest.main(NioTest.java:64)
Быстрый просмотр реализации OpenJdk показывает, что метод map(...) в FileChannelImpl
принимает size
типа long
в качестве входных данных. Но внутри тела он сравнивает его с Integer.MAX_VALUE
и выдает ошибку, если он больше этого значения. Зачем принимать на вход размер long
, но ограничивать его максимальной длиной integer
?
Кто-нибудь знает конкретную причину такой реализации? или это какая-то ошибка?
Source URL - http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/sun/nio/ch/FileChannelImpl.java
Я запускаю эту программу, используя 64bit JRE на 64bit Windows-2k8