FileDocCategorySizeDatePackage
Util.javaAPI DocphoneME MR2 API (J2ME)3963Wed May 02 17:59:54 BST 2007com.sun.cldc.isolate

Util

public final class Util extends Object

Fields Summary
Constructors Summary
Methods Summary
public static booleanverify(java.lang.String jarPath)
Use VM verifier to make sure that supplied jar is correct.

Note: for this API to function, compilation time flag ENABLE_VERIFY_ONLY=true must be specified

param
jarPath path to JAR file to verify
return
true if supplied JAR is correct, false otherwise

      return verify(jarPath, Integer.MAX_VALUE);
    
public static booleanverify(java.lang.String jarPath, int chunkSize)
Use VM verifier to make sure that supplied jar is correct.

The verification of a JAR is performed in chunks. During verification of a chunk no other isolates can execute. Each chunk consists of one or more class files. The size of a chunk is the total compressed size of JAR entries in the chunk. Verification of a chunk stops when either the size of a chunk exceeds the specified chunkSize or there are no more entries in the JAR. Larger values of chunkSize ensure faster verification of the JAR, but other active isolates will have less chances to execute while the verification is in progress.

This method is multitask-safe, i.e. it can be invoked from multiple tasks at the same time.

The method returns after the whole JAR is verified and the return value indicates if the JAR is correct.

Note: for this API to function, compilation time flag ENABLE_VERIFY_ONLY=true must be specified

param
jarPath path to JAR file to verify
param
chunkSize size of the JAR file chunk
return
true if supplied JAR is correct, false otherwise
throws
IllegalArgumentException if chunkSize is not positive

        if (chunkSize <= 0) {
            throw new IllegalArgumentException();
        }
    String[] classpath  = new String[1];
    String[] mainArgs   = new String[2];
    classpath[0] = jarPath;
    mainArgs[0] = jarPath;
        mainArgs[1] = new Integer(chunkSize).toString();
    int status = 0;

    try {
        Isolate iso = new Isolate("com.sun.cldc.isolate.Verifier",
                       mainArgs,
                       classpath);
            iso.setAPIAccess(true);
        iso.start();
        iso.waitForExit();

        status = iso.exitCode();
    }
    catch (IsolateStartupException ise) {
        ise.printStackTrace();
        return false;
    }
    return status == JVM.STATUS_VERIFY_SUCCEEDED;