Hi,

A few notes on the checkins that Michelle and I did today. 

1. Only one person can check in, but everything we checked in today was a collaboration among Michelle, Michael W, and me.

2. The team had decided earlier that we did not want to require a dependency (Maven) on a JNDI implementation in order to run the TCK, since only two of the test classes even need JNDI. But Michelle and I didn't want to put the providerutil.jar and fscontext.jar directly into the tck20 directory. So we added tck20/lib/ext and put the jar files there. We intended to but forgot to update the README.txt to discuss this.

3. We found an issue with the property in jndi.properties java.naming.provider.url="" that produced a fatal exception in the Mac version of JNDI. It appeared to be a weird error complete with misspelling, and didn't encounter the error when we removed the property. If other platforms encounter errors (not failures) running the JNDI tests, we need to discuss and possibly file a Sun bug report. 

4. We added a method to verify that all of the javax.jdo.option properties set in the Properties instance were actually set in the PMF that was created. We deliberately omitted properties ConnectionUserName and ConnectionPassword because these properties cannot be read by JPOX. We verify that the PMF that we bind to JNDI is configured with the properties we want, and verify that the PMF that we look up has the same properties. JPOX doesn't handle the case correctly, most likely because they don't implement Referenceable (as required by EntityManagerFactory but not by PersistenceManagerFactory). It might be that we should add this requirement to the specification.

5. It's not standard Apache practice to implement the @author tag. In future, we should not include this tag.

Craig and Michelle

Here's the exception we got with the java.naming.provider.url="" set. Note the strange message "...remaining name..."

RUN GetPMFByJNDILocation.testValidGetPMF     [INFO] tck - Exception during setUp or runtest:  <javax.jdo.JDOFatalException: Caught NamingException trying to bindnull
    [java] NestedThrowables:
    [java] javax.naming.NoPermissionException; remaining name '"/Users/clr/apachejdo/jdo/trunk/tck20/target/./Users/clr/apachejdo/jdo/trunk/tck20/target/classes"'>javax.jdo.JDOFatalException: Caught NamingException trying to bindnull
    [java]      at org.apache.jdo.tck.api.persistencemanagerfactory.GetPMFByJNDILocation.getPMF(GetPMFByJNDILocation.java:95)
    [java]      at org.apache.jdo.tck.api.persistencemanagerfactory.AbstractGetPMF.checkGetPMFWithValidProperties(AbstractGetPMF.java:139)
    [java]      at org.apache.jdo.tck.api.persistencemanagerfactory.GetPMFByJNDILocation.testValidGetPMF(GetPMFByJNDILocation.java:75)
    [java]      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [java]      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    [java]      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    [java]      at java.lang.reflect.Method.invoke(Method.java:324)
    [java]      at junit.framework.TestCase.runTest(TestCase.java:154)
    [java]      at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:197)
    [java]      at junit.framework.TestResult$1.protect(TestResult.java:106)
    [java]      at junit.framework.TestResult.runProtected(TestResult.java:124)
    [java]      at junit.framework.TestResult.run(TestResult.java:109)
    [java]      at junit.framework.TestCase.run(TestCase.java:118)
    [java]      at junit.framework.TestSuite.runTest(TestSuite.java:208)
    [java]      at junit.framework.TestSuite.run(TestSuite.java:203)
    [java]      at junit.framework.TestSuite.runTest(TestSuite.java:208)
    [java]      at junit.framework.TestSuite.run(TestSuite.java:203)
    [java]      at junit.textui.TestRunner.doRun(TestRunner.java:116)
    [java]      at junit.textui.TestRunner.doRun(TestRunner.java:109)
    [java]      at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:128)
    [java]      at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:106)
    [java] NestedThrowablesStackTrace:
    [java] javax.naming.NoPermissionException; remaining name '"/Users/clr/apachejdo/jdo/trunk/tck20/target/./Users/clr/apachejdo/jdo/trunk/tck20/target/classes"'
    [java]      at com.sun.jndi.fscontext.FSContext.checkCanWrite(FSContext.java:939)
    [java]      at com.sun.jndi.fscontext.RefFSContext.setBindings(RefFSContext.java:594)
    [java]      at com.sun.jndi.fscontext.RefFSContext.bindObject(RefFSContext.java:338)
    [java]      at com.sun.jndi.fscontext.RefFSContext.bind(RefFSContext.java:169)
    [java]      at com.sun.jndi.fscontext.FSContext.bind(FSContext.java:167)
    [java]      at javax.naming.InitialContext.bind(InitialContext.java:355)
    [java]      at org.apache.jdo.tck.api.persistencemanagerfactory.GetPMFByJNDILocation.getPMF(GetPMFByJNDILocation.java:91)
    [java]      at org.apache.jdo.tck.api.persistencemanagerfactory.AbstractGetPMF.checkGetPMFWithValidProperties(AbstractGetPMF.java:139)
    [java]      at org.apache.jdo.tck.api.persistencemanagerfactory.GetPMFByJNDILocation.testValidGetPMF(GetPMFByJNDILocation.java:75)
    [java]      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [java]      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    [java]      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    [java]      at java.lang.reflect.Method.invoke(Method.java:324)
    [java]      at junit.framework.TestCase.runTest(TestCase.java:154)
    [java]      at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:197)
    [java]      at junit.framework.TestResult$1.protect(TestResult.java:106)
    [java]      at junit.framework.TestResult.runProtected(TestResult.java:124)
    [java]      at junit.framework.TestResult.run(TestResult.java:109)
    [java]      at junit.framework.TestCase.run(TestCase.java:118)
    [java]      at junit.framework.TestSuite.runTest(TestSuite.java:208)
    [java]      at junit.framework.TestSuite.run(TestSuite.java:203)
    [java]      at junit.framework.TestSuite.runTest(TestSuite.java:208)
    [java]      at junit.framework.TestSuite.run(TestSuite.java:203)
    [java]      at junit.textui.TestRunner.doRun(TestRunner.java:116)
    [java]      at junit.textui.TestRunner.doRun(TestRunner.java:109)
    [java]      at org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:128)
    [java]      at org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:106)

Craig Russell

Architect, Sun Java Enterprise System http://java.sun.com/products/jdo

408 276-5638 mailto:[EMAIL PROTECTED]

P.S. A good JDO? O, Gasp!


Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to