/*
* @(#)InvalidJadException.java 1.31 02/09/11 @(#)
*
* Copyright (c) 2001-2002 Sun Microsystems, Inc. All rights reserved.
* PROPRIETARY/CONFIDENTIAL
* Use is subject to license terms.
*/
package com.sun.midp.midletsuite;
/**
* Thrown when a downloaded JAD is discovered to be invalid. This includes
* this signed JAD's also. Since some of the conditions that cause this
* exception may be recovered from, this exception contains a specific
* RC (reason code) that so corrective action can be performed.
*/
public class InvalidJadException extends java.io.IOException {
/** (1) The server for the JAD was not found. */
public static final int JAD_SERVER_NOT_FOUND = 1;
/** (2) The JAD was not found. */
public static final int JAD_NOT_FOUND = 2;
/** (4) The content provider certificate is missing. */
public static final int MISSING_PROVIDER_CERT = 4;
/** (5) The content provider certificate cannot be decoded. */
public static final int CORRUPT_PROVIDER_CERT = 5;
/**
* (6) The CA that issued the content provider certificate is unknown.
* The extra data will be the CA's name as a String.
*/
public static final int UNKNOWN_CA = 6;
/**
* (7) The signature of the content provider certificate is invalid.
* The extra data will be the subject's name as a String.
*/
public static final int INVALID_PROVIDER_CERT = 7;
/** (8) The JAR signature cannot be decoded. */
public static final int CORRUPT_SIGNATURE = 8;
/** (9) The signature of the JAR is invalid. */
public static final int INVALID_SIGNATURE = 9;
/** (10) The content provider certificate is a supported version. */
public static final int UNSUPPORTED_CERT = 10;
/**
* (11) The content provider certificate is expired.
* The extra data will be the subject's name as a String.
*/
public static final int EXPIRED_PROVIDER_CERT = 11;
/**
* (12) The CA's public key has expired.
* The extra data will be the CA's name as a String.
*/
public static final int EXPIRED_CA_KEY = 12;
/** (13) The name of MIDlet suite is missing. */
public static final int MISSING_SUITE_NAME = 13;
/** (14) The vendor is missing. */
public static final int MISSING_VENDOR = 14;
/** (15) The version is missing. */
public static final int MISSING_VERSION = 15;
/** (16) The format of the version is invalid. */
public static final int INVALID_VERSION = 16;
/**
* (17) This suite is older that the one currently installed.
* The extra data is the installed version.
*/
public static final int OLD_VERSION = 17;
/** (18) The URL for the JAR is missing. */
public static final int MISSING_JAR_URL = 18;
/**
* (19) The server for the JAR was not found at the URL given in
* the JAD. The extra data is the JAR URL.
*/
public static final int JAR_SERVER_NOT_FOUND = 19;
/**
* (20) The JAR was not found at the URL given in the JAD.
* The extra data is the JAR URL.
*/
public static final int JAR_NOT_FOUND = 20;
/** (21) The JAR size is missing. */
public static final int MISSING_JAR_SIZE = 21;
/**
* (25) The MIDlet suite name does not match the one in the JAR
* manifest.
*/
public static final int SUITE_NAME_MISMATCH = 25;
/** (26) The version does not match the one in the JAR manifest. */
public static final int VERSION_MISMATCH = 26;
/** (27) The vendor does not match the one in the JAR manifest. */
public static final int VENDOR_MISMATCH = 27;
/**
* (28) A key for an attribute is not formatted correctly.
* The extra data is the key or the line of the attribute.
*/
public static final int INVALID_KEY = 28;
/**
* (29) A value for an attribute is not formatted correctly.
* The extra data is the key of the attribute.
*/
public static final int INVALID_VALUE = 29;
/**
* (30) Not enough storage for this suite to be installed
* The extra data will be storage needed for the suite in K bytes
* rounded up.
*/
public static final int INSUFFICIENT_STORAGE = 30;
/** (31) The JAR downloaded was not size in the JAD. */
public static final int JAR_SIZE_MISMATCH = 31;
/**
* (32) This suite is newer that the one currently installed.
* The extra data is the installed version.
*/
public static final int NEW_VERSION = 32;
/** (33) Webserver authentication required or failed. */
public static final int UNAUTHORIZED = 33;
/**
* (34) The JAD URL is for an installed suite but different than the
* orginal JAD URL.
* The extra data will be previous JAD URL.
*/
public static final int JAD_MOVED = 34;
/** (35) Server does not support basic authentication. */
public static final int CANNOT_AUTH = 35;
/**
* (36) An entry could not be read from the JAR. The extra data is the
* entry name.
*/
public static final int CORRUPT_JAR = 36;
/**
* (37) The server did not hava a resource with the correct type
* (code 406) or the JAD downloaded has the wrong media type. In the
* second case the extra data is the Media-Type from the response.
*/
public static final int INVALID_JAD_TYPE = 37;
/**
* (38) The server did not hava a resource with the correct type
* (code 406) or the JAR downloaded has the wrong media type. In the
* second case the extra data is the Media-Type from the response.
*/
public static final int INVALID_JAR_TYPE = 38;
/**
* (39) The JAD matches a version of a suite already installed.
* The extra data is the installed version.
*/
public static final int ALREADY_INSTALLED = 39;
/**
* (40) The device does not support either the configuration or
* profile in the JAD.
*/
public static final int DEVICE_INCOMPATIBLE = 40;
/** (41) The configuration is missing from the manifest. */
public static final int MISSING_CONFIGURATION = 41;
/** (42) The profile is missing from the manifest. */
public static final int MISSING_PROFILE = 42;
/** (43) The JAD URL is invalid. */
public static final int INVALID_JAD_URL = 43;
/** (44) The JAR URL is invalid. The extra data is the JAR URL. */
public static final int INVALID_JAR_URL = 44;
/**
* (45) The connection in a push entry is already taken.
* The extra data is the URL of the failed connection.
*/
public static final int PUSH_DUP_FAILURE = 45;
/**
* (46) The format of a push attribute has an invalid format.
* The extra data is the URL of the failed connection.
*/
public static final int PUSH_FORMAT_FAILURE = 46;
/**
* (47) The connection in a push attribute is not supported.
* The extra data is the URL of the failed connection.
*/
public static final int PUSH_PROTO_FAILURE = 47;
/**
* (48) The class in a push attribute is not in MIDlet-<n> attribute.
* The extra data is the URL of the failed connection.
*/
public static final int PUSH_CLASS_FAILURE = 48;
/**
* (49) Application authorization failure.
* The extra data is the name of the permission.
*/
public static final int AUTHORIZATION_FAILURE = 49;
/**
* (50) A attribute in both the JAD and JAR manifest does not match.
* For trusted suites only. The extra data is the name of the attribute.
*/
public static final int ATTRIBUTE_MISMATCH = 50;
/**
* (51) Indicates that the user must first authenticate with
* the proxy.
*/
public static final int PROXY_AUTH = 51;
/**
* (52) Indicates that the user tried to overwrite a trusted suite
* with an untrusted suite during an update.
* The extra data is the name of signer of the current version.
*/
public static final int TRUSTED_OVERWRITE_FAILURE = 52;
/** The reason why this exception occured. */
private int reason;
/** Extra data need to correct the problem. */
private String extraData = null;
/**
* Constructs a InvalidJadException with the specified reason.
* @param theReason specific RC (reason code)
*/
public InvalidJadException(int theReason) {
super("Reason = " + theReason);
reason = theReason;
}
/**
* Constructs a InvalidJadException with the specified reason and
* extra data.
* @param theReason specific reason code
* @param theExtraData an object that contains data to solve the problem
*/
public InvalidJadException(int theReason, String theExtraData) {
this(theReason);
extraData = theExtraData;
}
/**
* Returns specific reason why the exception was thrown.
* @return the RC (reason code)
*/
public int getReason() {
return reason;
}
/**
* Returns an extra data String to help to resolve the problem.
* @return extra data string, may be null,
* type depends on the reason for the exception
*/
public String getExtraData() {
return extraData;
}
}
|