The possible fix is to change class name to be loaded, so the following
update may be applied to the test:
---
modules/security2/test/common/unit/javax/security/auth/login/LoginContextTest_1.java
(revision
370462)
+++
modules/security2/test/common/unit/javax/security/auth/login/LoginContextTest_1.java
(working
copy)
@@ -843,7 +843,7 @@
};
Thread.currentThread().setContextClassLoader(testClassLoader);
String klassName = TestConfig
- .addInstalledRequired("no such class here.");
+ .addInstalledRequired("NoSuchClassHere");
try {
LoginContext lc = new LoginContext(CONFIG_NAME);
lc.login();
Thanks,
Stepan
On 1/19/06, Stepan Mishura <[EMAIL PROTECTED]> wrote:
>
> >
> >Can you give me some clue about what to look for?
> >
>
> I found out that the test is implementation specific. I used BEA JRockit
> 1.4.2_04 to run tests and after I switched to Sun's JDK 1.4.2_04 the test
> failed.
>
> The test verifies that implementation of LoginContext class uses a
> thread's context class loader to load a LoginModule class. To check that the
> test sets a custom class loader as a context class loader for the current
> thread, creates LoginContext object and invokes its login() method. The
> custom class loader has overridden loadClass() method that stores all class
> names to be loaded.
>
> So the difference is BEA JRockit invokes loadClass() method and Sun's JDK
> doesn't.
> I've minimized test case to demonstrate the difference:
>
> public void testThreadContextClassLoader(){
>
> // custom class loader
> ClassLoader testClassLoader = new ClassLoader() {
> protected synchronized Class loadClass(String klassName,
> boolean resolve) throws ClassNotFoundException {
>
> System.out.println("ClassLoader.loadClass: " + klassName);
>
> return super.loadClass(klassName, resolve);
> }
> };
>
> ClassLoader saveCCL = Thread.currentThread
> ().getContextClassLoader();
>
> Thread.currentThread().setContextClassLoader(testClassLoader);
>
> try {
> Class.forName("no such class here.", false, testClassLoader);
> fail("No expected ClassNotFoundException");
> } catch (ClassNotFoundException ex){
> } finally {
> Thread.currentThread().setContextClassLoader(saveCCL);
> }
> }
>
>
> Thanks,
> Stepan
>
>
> On 1/18/06, Geir Magnusson Jr <[EMAIL PROTECTED]> wrote:
> >
> > Can you give me some clue about what to look for?
> >
> > geir
> >
> > Stepan Mishura wrote:
> > >> 5) Now I run the tests
> > >>
> > >> ant tests.run
> > >>
> > >> and get after a while...
> > >>
> > >> ....
> > >> ....
> > >> [junit] Running javax.security.auth.login.LoginContextTest_1
> > >> [junit] Tests run: 6, Failures: 1, Errors: 0, Time elapsed: 0.016sec
> > >>
> > >
> > > I can not reproduce this failure. (I just did sync. with repository to
> > > verify that nothing has change since my last checkout)
> > >
> > > Thanks,
> > > Stepan
> > >
> > >
> > > On 1/18/06, Geir Magnusson Jr <[EMAIL PROTECTED]> wrote:
> > >>
> > >>
> > >> Mikhail Loenko wrote:
> > >>> I've just updated from SVN, all unit tests from security2 passed
> > >>> (including serialization ones).
> > >> I don't see how.
> > >>
> > >>> Could you please provide more details?
> > >> Sure!
> > >>
> > >> 1) I did a fresh checkout :
> > >>
> > >> svn co https://svn.apache.org/repos/asf/incubator/
> > >> harmony/enhanced/classlib/trunk/modules/security2
> > >>
> > >> 2) cd security2/make
> > >>
> > >> 3) ant
> > >>
> > >> (all built fine)
> > >>
> > >> 4) Now, I keep a mostly empty classpath because I fear and loathe
> > >> anything that depends on local developer classpath (I did fix this
> > for
> > >> security2 but backed it out because I wanted to ensure that the tests
> > >> ran in "stock" form) So adding to the classpath
> > >>
> > >> C:\Documents and Settings\gmagnuss>echo %CLASSPATH%
> > >> C:\Program Files\Java\j2re1.4.2_10\lib\ext\QTJava.zip
> > >>
> > >> C:\Documents and Settings\gmagnuss>set
> > >> CLASSPATH=%CLASSPATH%;c:\junit.jar;c:\bcprov-jdk14-131.jar
> > >>
> > >> C:\Documents and Settings\gmagnuss>echo %CLASSPATH%
> > >> C:\Program
> > >> Files\Java\j2re1.4.2_10\lib\ext\QTJava.zip;c:\junit.jar;c:\bcprov-
> > >> jdk14-131.jar
> > >>
> > >> 5) Now I run the tests
> > >>
> > >> ant tests.run
> > >>
> > >> and get after a while...
> > >>
> > >> ....
> > >> ....
> > >> [junit] Running javax.security.auth.login.LoginContextTest_1
> > >> [junit] Tests run: 6, Failures: 1, Errors: 0, Time elapsed: 0.016sec
> > >>
> > >> BUILD FAILED
> > >> C:\TEMP\geir\security2\make\build.xml:393: Test
> > >> javax.security.auth.login.LoginContextTest_1 failed
> > >>
> > >> Total time: 4 minutes 22 seconds
> > >> C:\TEMP\geir\security2\make>
> > >>
> > >> and find in the test report :
> > >>
> > >> Testsuite: javax.security.auth.login.LoginContextTest_1
> > >> Tests run: 6, Failures: 1, Errors: 0, Time elapsed: 0.016 sec
> > >>
> > >> Testcase: testLoginContextString took 0 sec
> > >> Testcase: testLoginContextStringCallbackHandler took 0.016 sec
> > >> Testcase: testLoginContextStringSubject took 0 sec
> > >> Testcase: testLoginContextStringSubjectCallbackHandler took 0 sec
> > >> Testcase: testLoginContextStringSubjectCallbackHandlerConfiguration
> > took
> > >> 0 sec
> > >> Testcase: testLogin_minus1 took 0 sec
> > >> FAILED
> > >> null
> > >> junit.framework.AssertionFailedError
> > >> at
> > >> javax.security.auth.login.LoginContextTest_1.testLogin_minus1
> > >> (LoginContextTest_1.java:858)
> > >> at
> > >> com.openintel.drl.security.test.PerformanceTest.runBare (
> > >> PerformanceTest.java:157)
> > >>
> > >>
> > >>
> > >> (aside - can we adopt the convention that all tests end in "Test" and
> > >> not anything after? That way we can by pattern have "Data", "Config"
> >
> > >> etc - any stuff that tests might need...)
> > >>
> > >>
> > >> Anyway, that's from a fresh checkout, using :
> > >>
> > >> - WinXP SP2
> > >> - Sun's JDK 1.4.2_10
> > >> - JUnit 3.8.1
> > >> - bcprov for JDK14 v1.3.1
> > >>
> > >>
> > >>> Thanks,
> > >>> Mikhail
> > >>>
> > >>>
> > >>> On 1/18/06, Geir Magnusson Jr < [EMAIL PROTECTED]> wrote:
> > >>>> I am haplessly plodding along. I found one problem (mine) which
> > fixed
> > >> a
> > >>>> test, and now I seem to have a more interesting problem with the
> > >>>> serialization tests...
> > >>>>
> > >>>> Are the serialization tests "golden data" files somehow
> > dependent the
> > >>>> com.openintel package structure and would be allergic to a
> > >>>> org.apache.harmony package structure?
> > >>>>
> > >>>> geir
> > >>>>
> > >>>>
> > >>>> Geir Magnusson Jr wrote:
> > >>>>> I've been trying to refactor security2 into the org.apachepacakage
> > >> space.
> > >>>>> I'm now having test failures.
> > >>>>>
> > >>>>> Can someone else do a co of security2 and verify? I've backed out
> > the
> > >>>>> change so that you need junit and bcprov on your classpath (argh!)
> > and
> > >>>>> turned on haltonfailure so that the tests will stop once something
> > >> goes
> > >>>>> wrong.
> > >>>>>
> > >>>>> I thought I was being careful - while it's clear that I have no
> > idea
> > >>>>> what I'm doing, there's clearly something a little more subtle
> > going
> > >> on
> > >>>>> here because I wouldn't think that just moving package names would
> > be
> > >> a
> > >>>>> problem. I assume that there's some provider or other
> > >> configuration-ish
> > >>>>> issue.
> > >>>>>
> > >>>>> This would be a good learning experience for all of us how this
> > works.
> > >> I
> > >>>>> need to run out for about 20 min... bbiab.
> > >>>>>
> > >>>>> geir
> > >>>>>
> > >>>>>
> > >>>
> > >> [
> > >>
> > >
> >
>
>