Appendix F. Limitations

Table of Contents
JamaicaVM Limitations
JamaicaVM Builder Limitations

This appendix contains a list of limitations in the Jamaica virtual machine and tools.

JamaicaVM Limitations

Table F-1. JamaicaVM limitations

AspectLimit
Number of Java Threads511
Maximum Monitor Nest Count (repeated monitor enter of the same monitor in nested synchronized statements or nested calls to synchronized methods). Exceeding this value will result in throwing an java.lang.InternalError with detail message "Max. monitor nest count reached (255)"255
Maximum Java heap size2GB
Minimum Java heap size64KB
Minimum Java heap size increment64KB
Maximum number of heap increments. The Java heap may not consist of more than this number of chunks, i.e., when dynamic heap expansion is used (max heap size is larger than initial heap size), no more than this number of increments will be performed, including the initial chunk. To avoid this limit, the heap size increment will automatically be set to a larger value when more than this number of increments would be needed to reach the maximum heap size.256
Maximum number of memory areas (instances of javax.realtime.MemoryArea). Note that two instances are already used for HeapMemory and ImmortalMemory. 256
Maximum size of Java stack64MB (16777216 (=2^24) slots)
Maximum size of native stack2GB
Maximum number of constant UTF8 strings (names and signatures of methods, fields, classes, interfaces and contents of constant Java strings) in the global constant pool (exceeding this value will result in a larger application)65536 (=2^16)
Maximum number of constant Java strings in the global constant pool (exceeding this value will result in a larger application)65536 (=2^16)
Maximum number of name and type entries (references to different methods or fields) in the global constant pool (exceeding this value will result in a larger application)65536 (=2^16)
Maximum Java array length. Independent of the heap size, Java arrays may not have more than this number of elements. However, the array length is not restricted by the heap size increment, i.e., even a heap consisting of several increments each of which is smaller than the memory required for a Java array permits the allocation of arrays up to this length provided that the total available memory is sufficient.134217727 (=2^27-1)
Maximum number of virtual method per Java class (including inherited virtual methods)4095
Maximum number of interface methods per Java interface (including interface methods inherited from super-interface)4095
On posix systems where time_spec.tv_sec is a 32bit value it is not possible to wait until a time and date that is later than Tue Jan 19 04:14:07 2038