#
#  This file is part of the Jikes RVM project (http://jikesrvm.org).
#
#  This file is licensed to You under the Eclipse Public License (EPL);
#  You may not use this file except in compliance with the License. You
#  may obtain a copy of the License at
#
#      http://www.opensource.org/licenses/eclipse-1.0.php
#
#  See the COPYRIGHT.txt file distributed with this work for information
#  regarding copyright ownership.
#

# Primitives
[B
[C
[I
[F
[D
[J
[S
[Z
[[I
[[B
[[C
[[D
[[[I

## Classes involved with the process of class loading...
# fundamental java classes
Ljava/lang/Class;
Ljava/lang/Class$StaticData;
Ljava/lang/Object;
Ljava/lang/Runtime;
Ljava/lang/String;
Ljava/lang/String$CaseInsensitiveComparator;
[Ljava/lang/String;

Ljava/lang/StringBuffer;
Ljava/util/StringTokenizer;
Ljava/lang/System;
Ljava/lang/System$EnvironmentCollection;
Ljava/lang/System$EnvironmentMap;
Ljava/lang/System$EnvironmentSet;

Ljava/lang/Thread;
Ljava/lang/Thread$State;
Ljava/lang/Thread$UncaughtExceptionHandler;
[Ljava/lang/Thread$State;

Ljava/lang/ThreadGroup;

Ljava/lang/OutOfMemoryError;
Ljava/lang/Cloneable;
Ljava/lang/VMObject;
Ljava/lang/VMSystem;
Ljava/lang/VMString;
Ljava/lang/VMThread;
Lgnu/classpath/Configuration;
# Only in Classpath 0.13 and later
Lgnu/classpath/SystemProperties;
# reflection support
Ljava/lang/reflect/Field;
Ljava/lang/reflect/Method;
Ljava/lang/reflect/Member;
Ljava/lang/reflect/VMConstructor;
Ljava/lang/reflect/Constructor;
Ljava/lang/reflect/AccessibleObject;
Ljava/lang/reflect/Proxy;
Ljava/lang/reflect/Proxy$ClassFactory;
Ljava/lang/reflect/Proxy$ProxyData;
Ljava/lang/reflect/Proxy$ProxySignature;
Ljava/lang/reflect/Proxy$ProxyType;

# annotation support
Ljava/lang/reflect/AnnotatedElement;
Ljava/lang/annotation/Annotation;
[Ljava/lang/annotation/Annotation;
Ljava/lang/annotation/RetentionPolicy;
Ljava/lang/annotation/ElementType;
[Ljava/lang/annotation/RetentionPolicy;
[Ljava/lang/annotation/ElementType;

# hardware runtime errors
Ljava/lang/ArithmeticException;
Ljava/lang/ArrayIndexOutOfBoundsException;
Ljava/lang/Exception;
Ljava/lang/Error;
Ljava/lang/IndexOutOfBoundsException;
Ljava/lang/LinkageError;
Ljava/lang/NullPointerException;
Ljava/lang/RuntimeException;
Ljava/lang/SecurityException;
Ljava/lang/StackOverflowError;
Ljava/lang/Throwable;
Ljava/lang/Throwable$StaticData;
Ljava/lang/StackTraceElement;
[Ljava/lang/StackTraceElement;
Ljava/lang/VMThrowable;

Ljava/lang/UnknownError;
Ljava/lang/VirtualMachineError;

# software runtime errors
Ljava/io/UnsupportedEncodingException;
Ljava/io/UTFDataFormatException;
Ljava/lang/AbstractMethodError;
Ljava/lang/ArrayStoreException;
Ljava/lang/ClassCastException;
Ljava/lang/CloneNotSupportedException;
Ljava/lang/ExceptionInInitializerError;
Ljava/lang/IllegalArgumentException;
Ljava/lang/IllegalAccessException;
Ljava/lang/IllegalMonitorStateException;
Ljava/lang/IllegalStateException;
Ljava/lang/IllegalThreadStateException;
Ljava/lang/IncompatibleClassChangeError;
Ljava/lang/InstantiationException;
Ljava/lang/InternalError;
Ljava/lang/InterruptedException;
Ljava/lang/NegativeArraySizeException;
Ljava/lang/NoSuchFieldError;
Ljava/lang/NoSuchFieldException;
Ljava/lang/NoSuchMethodException;
Ljava/lang/NumberFormatException;
Ljava/lang/StringIndexOutOfBoundsException;
Ljava/lang/ThreadDeath;
Ljava/lang/UnsatisfiedLinkError;
Ljava/lang/UnsupportedOperationException;
Ljava/lang/ExceptionInInitializerError;
Ljava/net/MalformedURLException;
Ljava/net/UnknownHostException;
Ljava/nio/charset/UnsupportedCharsetException;
Ljava/util/NoSuchElementException;
Ljava/util/zip/DataFormatException;
Ljava/security/GeneralSecurityException;
Ljava/security/NoSuchAlgorithmException;

# primitive wrapper types
Ljava/lang/Boolean;
Ljava/lang/Byte;
Ljava/lang/Character;
Ljava/lang/Character$PrivateUseCharacters;
Ljava/lang/Character$Subset;
Ljava/lang/Character$UnassignedCharacters;
Ljava/lang/Character$UnicodeBlock$NameType;
Ljava/lang/Character$UnicodeBlock;

Lgnu/java/lang/CharData;
Ljava/lang/Double;
Ljava/lang/Float;
Ljava/lang/Integer;
Ljava/lang/Long;
Ljava/lang/Number;
Ljava/lang/Short;
Ljava/lang/Void;
Lgnu/classpath/Pointer;
Lgnu/classpath/Pointer32;
Lgnu/classpath/Pointer64;

# class loading errors
Ljava/io/IOException;
Ljava/io/EOFException;
Ljava/io/FileNotFoundException;
Ljava/lang/ClassNotFoundException;
Ljava/lang/ClassFormatError;
Ljava/lang/NoClassDefFoundError;
Ljava/util/zip/ZipException;

# util datastructures (needed by compilers, classloaders, etc)
Ljava/util/AbstractList;
Ljava/util/AbstractMap;
Ljava/util/AbstractMap$1$1;
Ljava/util/AbstractMap$1;
Ljava/util/AbstractMap$2$1;
Ljava/util/AbstractMap$2;
Ljava/util/AbstractMap$SimpleEntry;
Ljava/util/AbstractMap$SimpleImmutableEntry;
Ljava/util/AbstractSet;
[Ljava/util/AbstractSet;

Ljava/util/ArrayList;
Ljava/util/AbstractList$1;
Ljava/util/AbstractList$2;
Ljava/util/AbstractList$RandomAccessSubList;
Ljava/util/AbstractList$SubList$1;
Ljava/util/AbstractList$SubList;
Ljava/util/Arrays;
Ljava/util/Arrays$ArrayList;
Ljava/util/HashMap;
Ljava/util/HashMap$1;
Ljava/util/HashMap$2;
Ljava/util/HashMap$3;
Ljava/util/HashMap$HashEntry;
[Ljava/util/HashMap$HashEntry;
Ljava/util/HashMap$HashIterator;
Ljava/util/HashSet;
[Ljava/util/HashSet;

Ljava/util/Hashtable;
Ljava/util/Hashtable$1;
Ljava/util/Hashtable$2;
Ljava/util/Hashtable$3;
Ljava/util/Hashtable$EntryEnumerator;
Ljava/util/Hashtable$EntryIterator;
Ljava/util/Hashtable$HashEntry;
[Ljava/util/Hashtable$HashEntry;
Ljava/util/Hashtable$KeyEnumerator;
Ljava/util/Hashtable$KeyIterator;
Ljava/util/Hashtable$ValueEnumerator;
Ljava/util/Hashtable$ValueIterator;
Ljava/util/LinkedHashSet;
Ljava/util/LinkedHashMap;
Ljava/util/LinkedHashMap$1;
Ljava/util/LinkedHashMap$LinkedHashEntry;

Ljava/util/List;
Ljava/util/ListResourceBundle;
Ljava/util/PropertyResourceBundle;
Ljava/util/MissingResourceException;
Ljava/util/Properties;
Ljava/util/ResourceBundle;
Ljava/util/ResourceBundle$1;
Ljava/util/ResourceBundle$BundleKey;
Ljava/util/Vector;
Ljava/util/Vector$1;
Ljava/util/AbstractCollection;
Ljava/util/Collections;
Ljava/util/Collections$1;
Ljava/util/Collections$CheckedCollection;
Ljava/util/Collections$CheckedIterator;
Ljava/util/Collections$CheckedList;
Ljava/util/Collections$CheckedListIterator;
Ljava/util/Collections$CheckedMap$CheckedEntrySet$1$1;
Ljava/util/Collections$CheckedMap$CheckedEntrySet$1;
Ljava/util/Collections$CheckedMap$CheckedEntrySet;
Ljava/util/Collections$CheckedMap;
Ljava/util/Collections$CheckedRandomAccessList;
Ljava/util/Collections$CheckedSet;
Ljava/util/Collections$CheckedSortedMap;
Ljava/util/Collections$CheckedSortedSet;
Ljava/util/Collections$CopiesList;
Ljava/util/Collections$EmptyList;
Ljava/util/Collections$EmptyMap;
Ljava/util/Collections$EmptySet;
Ljava/util/Collections$ReverseComparator;
Ljava/util/Collections$SingletonList;
Ljava/util/Collections$SingletonMap$1;
Ljava/util/Collections$SingletonMap;
Ljava/util/Collections$SingletonSet$1;
Ljava/util/Collections$SingletonSet;
Ljava/util/Collections$SynchronizedCollection;
Ljava/util/Collections$SynchronizedIterator;
Ljava/util/Collections$SynchronizedList;
Ljava/util/Collections$SynchronizedListIterator;
Ljava/util/Collections$SynchronizedMap$1$1;
Ljava/util/Collections$SynchronizedMap$1;
Ljava/util/Collections$SynchronizedMap$1SynchronizedMapEntry;
Ljava/util/Collections$SynchronizedMap;
Ljava/util/Collections$SynchronizedRandomAccessList;
Ljava/util/Collections$SynchronizedSet;
Ljava/util/Collections$SynchronizedSortedMap;
Ljava/util/Collections$SynchronizedSortedSet;
Ljava/util/Collections$UnmodifiableCollection;
Ljava/util/Collections$UnmodifiableIterator;
Ljava/util/Collections$UnmodifiableList;
Ljava/util/Collections$UnmodifiableListIterator;
Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$1;
Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry;
Ljava/util/Collections$UnmodifiableMap$UnmodifiableEntrySet;
Ljava/util/Collections$UnmodifiableMap;
Ljava/util/Collections$UnmodifiableRandomAccessList;
Ljava/util/Collections$UnmodifiableSet;
Ljava/util/Collections$UnmodifiableSortedMap;
Ljava/util/Collections$UnmodifiableSortedSet;
Ljava/util/Stack;
Ljava/util/TreeMap;
Ljava/util/TreeMap$1;
Ljava/util/TreeMap$DescendingMap;
Ljava/util/TreeMap$DescendingMap$1;
Ljava/util/TreeMap$DescendingMap$1$1;
Ljava/util/TreeMap$DescendingSet;
Ljava/util/TreeMap$DescendingSet$1;
Ljava/util/TreeMap$EntrySet;
Ljava/util/TreeMap$KeySet;
Ljava/util/TreeMap$NavigableEntrySet;
Ljava/util/TreeMap$NavigableEntrySet$1;
#Ljava/util/TreeMap$NavigableKeySet;
Ljava/util/TreeMap$Node;
Ljava/util/TreeMap$SubMap;
Ljava/util/TreeMap$SubMap$1;
Ljava/util/TreeMap$SubMap$EntrySet;
Ljava/util/TreeMap$SubMap;
Ljava/util/TreeMap$SubMap$KeySet;
Ljava/util/TreeMap$SubMap$NavigableEntrySet;
Ljava/util/TreeMap$SubMap$NavigableEntrySet$1;
Ljava/util/TreeMap$SubMap$NavigableKeySet;
Ljava/util/TreeMap$TreeIterator;
Ljava/util/TreeSet;
Ljava/util/WeakHashMap;
Ljava/util/WeakHashMap$1;
Ljava/util/WeakHashMap$WeakBucket$WeakEntry;
Ljava/util/WeakHashMap$WeakBucket;
Ljava/util/WeakHashMap$WeakEntrySet$1;
Ljava/util/WeakHashMap$WeakEntrySet;
[Ljava/util/WeakHashMap$WeakBucket;
Lgnu/java/util/WeakIdentityHashMap;
Lgnu/java/util/WeakIdentityHashMap$WeakEntrySet;
Lgnu/java/util/WeakIdentityHashMap$WeakBucket;
Lgnu/java/util/WeakIdentityHashMap$WeakBucket$WeakEntry;
[Lgnu/java/util/WeakIdentityHashMap$WeakBucket;

# class loaders
Ljava/lang/ClassLoader;
Ljava/lang/ClassLoader$1;
Ljava/lang/ClassLoader$StaticData;
Ljava/lang/VMClassLoader;
Lgnu/classpath/VMStackWalker;
Lgnu/java/io/PlatformHelper;
Ljava/security/CodeSource;
Ljava/security/Policy;
Ljava/security/PermissionCollection;
Ljava/security/Permissions;
Ljava/security/Permissions$1;
Ljava/security/Permissions$PermissionsHash;
Ljava/security/Principal;
[Ljava/security/Principal;
Ljava/lang/reflect/InvocationTargetException;
Lgnu/java/util/DoubleEnumeration;

Ljava/net/URLClassLoader;
Ljava/net/URLClassLoader$1;
Ljava/net/URLClassLoader$2;
Ljava/net/URL;
Ljava/net/URL$1;

## These protocol handlers are necessary for Classpath 0.13 and later,
## since we are now initializing URLClassLoader before dynamic class
## loading is ever enabled:
# by java/net/URL
Lgnu/java/net/protocol/file/Handler;
# by java/net/URL
Lgnu/java/net/protocol/jar/Handler;
# by gnu/java/net/protocol/jar/Handler
Ljava/net/URLConnection;
Lgnu/java/net/protocol/jar/Connection;
Lgnu/java/net/protocol/jar/Connection$JarFileCache;

Lgnu/java/net/DefaultContentHandlerFactory;

# Not necessary, since we can class load from regular files at the
# point it's needed, but used while booting, so including it should
# save us time at startup.
# Used by ObjectStreamField
Lgnu/java/lang/reflect/TypeSignature;

# class loading from regular files
Ljava/io/File;
Ljava/io/DataInputStream;
Ljava/io/DataOutputStream;
Ljava/io/FilterInputStream;
Ljava/io/InputStream;
Ljava/io/FileInputStream;
Ljava/io/FileDescriptor;
Ljava/io/VMFile;
Lgnu/java/nio/FileChannelImpl;

# Character conversion
Ljava/nio/charset/Charset;
Ljava/nio/charset/CharsetEncoder;
Ljava/nio/charset/CharsetDecoder;
Ljava/nio/charset/Charset;
Ljava/nio/charset/CodingErrorAction;
Ljava/nio/charset/CoderResult;
Ljava/nio/charset/CoderResult$1;
Ljava/nio/charset/CoderResult$2;
Ljava/nio/charset/CoderResult$Cache;

Ljava/nio/ByteOrder;
Ljava/nio/ByteBuffer;
Ljava/nio/ByteBufferImpl;
Ljava/nio/CharBuffer;
Ljava/nio/CharBufferImpl;
Ljava/nio/DirectByteBufferImpl$ReadWrite;
Lgnu/java/nio/charset/Provider;
Lgnu/java/nio/charset/Provider$1;
Lgnu/java/nio/charset/ByteCharset;
Lgnu/java/nio/charset/ByteCharset$Decoder;
Lgnu/java/nio/charset/ByteCharset$Decoder$1;
Lgnu/java/nio/charset/ByteCharset$Encoder;
Lgnu/java/nio/charset/ByteCharset$Encoder$1;
Lgnu/java/nio/charset/US_ASCII;
Lgnu/java/nio/charset/US_ASCII$Decoder;
Lgnu/java/nio/charset/US_ASCII$Decoder$1;
Lgnu/java/nio/charset/US_ASCII$Encoder;
Lgnu/java/nio/charset/US_ASCII$Encoder$1;
Lgnu/java/nio/charset/ISO_8859_1;
Lgnu/java/nio/charset/ISO_8859_1$Decoder;
Lgnu/java/nio/charset/ISO_8859_1$Decoder$1;
Lgnu/java/nio/charset/ISO_8859_1$Encoder;
Lgnu/java/nio/charset/ISO_8859_1$Encoder$1;
Lgnu/java/nio/charset/UTF_8;
Lgnu/java/nio/charset/UTF_8$Decoder;
Lgnu/java/nio/charset/UTF_8$Encoder;
Lgnu/java/nio/charset/UTF_16BE;
Lgnu/java/nio/charset/UTF_16LE;
Lgnu/java/nio/charset/UTF_16;
Lgnu/java/nio/charset/UnicodeLittle;
Lgnu/java/nio/charset/Windows1250;
Lgnu/java/nio/charset/Windows1251;
Lgnu/java/nio/charset/Windows1252;
Lgnu/java/nio/charset/Windows1253;
Lgnu/java/nio/charset/Windows1254;
Lgnu/java/nio/charset/Windows1257;
Lgnu/java/nio/charset/ISO_8859_2;
Lgnu/java/nio/charset/ISO_8859_4;
Lgnu/java/nio/charset/ISO_8859_5;
Lgnu/java/nio/charset/ISO_8859_7;
Lgnu/java/nio/charset/ISO_8859_9;
Lgnu/java/nio/charset/ISO_8859_13;
Lgnu/java/nio/charset/ISO_8859_15;
Lgnu/java/nio/charset/KOI_8;

Lgnu/java/security/action/GetPropertyAction;
Ljava/security/VMAccessController;
Ljava/security/AccessControlContext;
# Used by Classpath 0.11's reference VMAccessController
Ljava/lang/ThreadLocal;
# Used by ThreadLocal
Ljava/lang/ThreadLocalMap;
Ljava/lang/ThreadLocalMap$Entry;
[Ljava/lang/ThreadLocalMap$Entry;
Ljava/util/LinkedList;
Ljava/util/LinkedList$Entry;
Ljava/util/LinkedList$LinkedListItr;

Ljava/util/VMTimeZone;
Ljava/lang/SecurityManager;
Ljava/lang/SecurityManager$1;

# class loading from zip files
Ljava/util/zip/ZipFile;
Ljava/util/zip/ZipFile$1;
Ljava/util/zip/ZipFile$PartialInputStream;
Ljava/util/zip/ZipFile$ZipEntryEnumeration;

Ljava/util/zip/ZipEntry;
Ljava/util/zip/Inflater;
Ljava/util/zip/InflaterInputStream;
Ljava/util/zip/Deflater;
Ljava/util/zip/DeflaterEngine;
Ljava/util/zip/DeflaterOutputStream;
Ljava/util/zip/ZipException;
Ljava/util/zip/Adler32;
Ljava/util/zip/CRC32;
Ljava/util/zip/StreamManipulator;
Ljava/util/zip/OutputWindow;
Ljava/util/zip/InflaterHuffmanTree;
Ljava/util/zip/DeflaterHuffman;
Ljava/util/zip/DeflaterHuffman$Tree;
Ljava/util/zip/InflaterDynHeader;
Ljava/io/InputStreamReader;
Ljava/io/BufferedReader;
Ljava/io/Reader;
Ljava/lang/Math;
Ljava/io/Serializable;
Ljava/util/Locale;

## No longer needed for class loading from Jars as of Classpath CVS head
## of Jan 23, 2005
Ljava/lang/Cloneable;
Ljava/security/AccessController;
Ljava/security/PrivilegedAction;
Ljava/util/PropertyPermission;
Ljava/security/BasicPermission;
Ljava/security/BasicPermission$BasicPermissionCollection;

Ljava/security/Permission;
Ljava/security/AllPermission;
Ljava/security/AllPermission$AllPermissionCollection;

Ljava/lang/RuntimePermission;
# New for 1.5
Ljava/lang/StringBuilder;
Lgnu/java/security/provider/Gnu;
Lgnu/java/security/provider/Gnu$1;
Lgnu/java/security/OID;

Lgnu/java/nio/charset/Provider$1;
Ljava/nio/charset/CoderResult$1;
Ljava/nio/charset/CoderResult$2;
Ljava/util/zip/ZipFile$1;
Lgnu/java/net/loader/URLStreamHandlerCache;
Lgnu/java/nio/VMChannel;
Lgnu/java/nio/VMChannel$Kind;
Lgnu/java/nio/VMChannel$State;

Ljava/util/jar/JarException;
Ljava/util/jar/JarInputStream;
Ljava/util/jar/Attributes;
Ljava/util/jar/Attributes$Name;
Ljava/util/jar/JarOutputStream;
Ljava/util/jar/JarEntry;
Ljava/util/jar/JarFile;
Ljava/util/jar/JarFile$EntryInputStream;
Ljava/util/jar/JarFile$JarEnumeration;

Ljava/util/jar/Manifest;
Ljava/io/BufferedOutputStream;
Ljava/io/BufferedInputStream;
Ljava/io/ByteArrayInputStream;
Ljava/io/FileOutputStream;
Ljava/io/PrintStream;
Ljava/io/RandomAccessFile;
Ljava/io/ObjectStreamField;
Ljava/io/ObjectStreamField$1;
[Ljava/io/ObjectStreamField;

Ljava/io/PrintWriter;
Ljava/io/OutputStreamWriter;
Ljava/io/InputStreamReader;
Ljava/lang/ref/Reference;
Ljava/lang/ref/ReferenceQueue;
Lgnu/java/security/provider/DefaultPolicy;


[Ljava/util/zip/ZipEntry;
[Ljava/lang/Object;
[[Ljava/lang/Object;
[Ljava/lang/Class;
Ljava/lang/Class$1;
Ljava/lang/Class$MethodKey;
Ljava/lang/Class$StaticData;
Ljava/lang/Enum;

[Ljava/lang/Byte;
[Ljava/lang/Character;
[Ljava/lang/Character$UnicodeBlock$NameType;
[Ljava/lang/Integer;
[Ljava/lang/Long;
[Ljava/lang/Short;
[Ljava/lang/reflect/Field;
[Ljava/lang/reflect/Method;
[Ljava/lang/reflect/Member;
[Ljava/lang/reflect/Constructor;
Ljava/security/ProtectionDomain;
[Ljava/security/ProtectionDomain;
[Ljava/lang/Package;

Ljava/util/regex/Pattern;
Lgnu/java/util/regex/RESyntax;
Lgnu/java/util/regex/RE;
Lgnu/java/util/regex/RE$CharUnit;
Lgnu/java/util/regex/RE$IntPair;
Ljava/util/BitSet;
Lgnu/java/util/regex/RETokenChar;
Lgnu/java/util/regex/RETokenEndSub;
Ljava/util/regex/Matcher;
Lgnu/java/util/regex/CharIndexed;
Lgnu/java/util/regex/CharIndexedCharSequence;
Lgnu/java/util/regex/REMatch;

Ljava/util/logging/Logger;
Ljava/util/logging/Logger$1;
Ljava/util/logging/Handler;
Ljava/util/logging/LogManager;
Ljava/util/logging/Level;
[Ljava/util/logging/Level;
Ljava/beans/PropertyChangeSupport;
Lgnu/java/net/protocol/file/Connection;
Lgnu/java/net/protocol/file/Connection$StaticData;
Ljava/io/FilePermission;
Lgnu/java/nio/charset/EncodingHelper;

# Needed to resolve RVM-887
Lgnu/java/lang/CPStringBuilder;
Lgnu/java/util/jar/JarUtils;
Ljava/io/ByteArrayOutputStream;
Lgnu/java/util/regex/RETokenAny;
Lgnu/java/util/regex/RETokenRepeated;
Lgnu/java/util/regex/RETokenWordBoundary;
Ljava/security/MessageDigest;
