==== 11.1.5 Installer Behavior ==== Java Card RE implementers shall also define other behaviors of their Installer, including the following: *Whether or not installation can be aborted and how this is done *What happens if an exception, reset, or power fail occurs during installation *What happens if another applet is selected before the Installer is finished with its work The Java Card RE shall guarantee that an applet will not be deemed successfully installed in the following cases: *The applet package as identified by the package AID is already resident on the card. *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 requires more memory than is available on the card. *The applet package references a package that is not resident on the card. *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 [[3.1_install Method| Section 3.1, install Method]]). *The applet's **install** method throws an exception before successful return from the **Applet.register** method (see [[3.1_install Method| 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.