Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[aspectj-dev] ajde unit test failures under IBM JDK 1.3.1

George and I have been looking into the 6 ajde unit tests that are currently failing under the IBM-Windows JDK 1.3.1.  This is an IBM internal JDK version and thus I'm not able to do any testing with that JDK, so my conclusions are very rough.

1. The ajde unit tests can be extremely confusing when something goes wrong because they "swallow" most error messages and even exceptions.  As an example, modify testdata/examples/figures-coverage/all.lst to add an invalid filename.  Many tests will now fail, but none of them will provide any clues as to the reason.  These tests would be much more useful if better debugging message handling could be provided.  I'd suggest that you (or Mik) try to improve this message handling as a first step.

2. George has observed a null source char[] in the parser (actually AjScanner) when running these tests on the IBM JDK.  Here's my best guess as to what could cause this:

a. Incorrect filenames are being produced by AjBuildConfig.  This probably comes from some subtle difference in the implementation of the File class in the IBM JDK.  Hopefully addressing issue #1 above could understand where this is coming from and if it's a real bug or just a test case weakness.

b. This leads AjBuildManager.getCompilationUnits to return units that correspond to missing files.  You should look at the CompilationUnit[] produced by this method to see if the CompilationUnit.getContents() method will return a real file contents.

c. These bad CompilationUnits lead to the null source char[] that you're seeing.

3. This error only shows up in ajde (and possibly only in the ajde unit tests) and should be caught gracefully by the better error handling in the actual compiler.

4. If this error is too hard to track down we shouldn't delay 1.1rc2 for it since it only shows up in the test suite (we haven't seen it in actual use) and it only shows up with the IBM JDK 1.3.1 (and if it is a problem for actual users they can upgrade to the IBM or SUN 1.4 JVMs).

-Jim

PS - George, let me know how this works for you.  I'm still available for a 8:30am PST call tomorrow if you need more help tracking this down.


Back to the top