On 6/15/06, David Van Couvering <[EMAIL PROTECTED]> wrote:
I ran derbyall on my machine prior to checkin and it worked. But this checkin was the first time derbyall included MessageBundleTest. It did not pass before then. I must have not properly checked in the output file, is all I can think of. I'll look into this, apologies.
The problem is that MessageBundleTest has a direct reference to the class file for the SQLState class (org.apache.derby.shared.common.reference.SQLState.class), which, during compilation, compiles in a reference to the actual class and not one of the public final strings defined by the SQLState class. During compilation, the SQLState class is normally factored out by the compiler, since the Strings it contains can be placed directly into the constant pool of classes that reference it. However, since MessageBundleTest contains a direct reference to SQLState.class, a reference to the fully qualified class file SQLState.class remains in MessageBundleTest.class. This means that the class file for SQLState needs to be present at runtime (e.g., in derbyTesting.jar), or the direct reference to SQLState.class in MessageBundleTest:54 needs to be removed, for the test to pass. andrew