Java Card RE implementers shall also define other behaviors of their Installer, including the following:
The Java Card RE shall guarantee that an applet will not be deemed successfully installed in the following cases:
The applet package contains an applet with the same Java Card platform name as that of another applet already resident on the card. The Java Card platform name of an applet identified by the AID item is described in Section 6.5 of the Virtual Machine Specification, Java Card Platform, Version 2.2.2.
The applet package references another package already resident on the card, but the version of the resident package is not binary compatible with the applet package. For more information on binary compatibility in the Java programming language, see Java Language Specification. Binary compatibility in Java Card technology is discussed in the Virtual Machine Specification, Java Card Platform, Version 2.2.2.
A class in the applet package is found to contain more package visible virtual methods or instance fields than the limitations enumerated in Section 2.2.4.3 of the Virtual Machine Specification, Java Card Platform, Version 2.2.2.
A reset or power fail occurs while executing the applet's
install method and before successful return from the
Applet.register method (see
Section 3.1, install Method).
The applet's
install method throws an exception before successful return from the
Applet.register method (see
Section 3.1, install Method).
When applet installation is unsuccessful, the Java Card RE shall guarantee that objects created during the execution of the install method, or by the Java Card RE on its behalf (initialized static arrays) can never be accessed by any applet on the card. In particular, any reference in CLEAR_ON_RESET transient space to an object created during an unsuccessful applet installation must be reset as a null reference.