openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Craig L Russell <Craig.Russ...@Sun.COM>
Subject Re: Strange, intermittent problem running the new models.company tests
Date Sun, 11 Feb 2007 06:07:09 GMT
Hi Kevin,

I don't know if it's relevant, but persistent classes must not be  
final. It seems that the entities in the model.company packages are  
(all) final, which is wrong. From spec 2.1, "The entity class must  
not be final. No methods or persistent instance variables of the  
entity class may be final. "

The relevant part of the stack trace appears to be:
> Caused by: java.lang.NoSuchMethodException: <unbound>=Class.create 
> (Class);
>        at java.beans.Statement.invoke(Statement.java:269)
>        at <unknown class>.<unknown method>(Unknown Source)
>        at com.sun.beans.ObjectHandler.eval(ObjectHandler.java:148)
>        at com.sun.beans.ObjectHandler.startElement 
> (ObjectHandler.java:250)
>        at org.apache.xerces.parsers.AbstractSAXParser.startElement 
> (Unknown
> Source)
>        at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement 
> (Unknown

which sounds like an issue with the xerces parser. Don't you hate  
exceptions from parsers rather than error messages?

Craig

On Feb 10, 2007, at 8:08 PM, Kevin Sutter wrote:

> Marc,
> It took a while to reproduce, but I finally got the following...   
> Does this
> help?  Thanks for your help!
>
> Kevin
>
> Running
> org.apache.openjpa.persistence.models.company.propertyaccess.TestPrope 
> rtyCompanyModel
> 0  test  INFO   [main] openjpa.Runtime - Starting OpenJPA 0.0.0
> 0  test  INFO   [main] openjpa.jdbc.JDBC - OpenJPA will now connect  
> to the
> database to attempt to determine what type of database dictionary  
> to use.
> To prevent this connection in the future, set your
> openjpa.jdbc.DBDictionaryconfiguration property to the appropriate
> value for your database (see the
> documentation foravailable values).
> 0  test  INFO   [main] openjpa.jdbc.JDBC - Using dictionary class "
> org.apache.openjpa.jdbc.sql.DerbyDictionary" (Apache Derby 10.2.2.0 -
> (485682) ,Apache Derby
> Embedded JDBC Driver 10.2.2.0 - (485682)).
> 10  test  INFO   [main] openjpa.MetaData - Found 10 classes with  
> metadata in
> 0 milliseconds.
> 20  test  INFO   [main] openjpa.MetaData - Found 10 classes with  
> metadata in
> 10 milliseconds.
> 20  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.Product".
> 20  test  INFO   [main] openjpa.MetaData - Parsing package "
> org.apache.openjpa.persistence.models.company.propertyaccess.Product".
> 30  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.Company".
> 30  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.Address".
> 40  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.Employee" 
> .
> 40  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.Person".
> 50  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.FullTimeE 
> mployee
> ".
> 50  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.LineItem" 
> .
> 60  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.ProductOr 
> der".
> 60  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.Customer" 
> .
> 70  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.PartTimeE 
> mployee
> ".
> 70  test  INFO   [main] openjpa.jdbc.Schema - Reading table  
> information for
> schema name "null", table name "PRP_Address".
> 80  test  INFO   [main] openjpa.jdbc.Schema - Reading table  
> information for
> schema name "null", table name "PRP_Company".
> 80  test  INFO   [main] openjpa.jdbc.Schema - Reading table  
> information for
> schema name "null", table name "PRP_LineItem".
> 80  test  INFO   [main] openjpa.jdbc.Schema - Reading table  
> information for
> schema name "null", table name "PRP_Person".
> 80  test  INFO   [main] openjpa.jdbc.Schema - Reading table  
> information for
> schema name "null", table name "PRP_Product".
> 110  test  INFO   [main] openjpa.jdbc.Schema - Reading table  
> information for
> schema name "null", table name "PRP_ProductOrder".
> 120  test  INFO   [main] openjpa.jdbc.Schema - Reading table  
> information for
> schema name "null", table name "PRP_ProductOrder_PRP_LineItem".
> 120  test  INFO   [main] openjpa.jdbc.Schema - Reading table  
> information for
> schema name "null", table name "PRP_Product_PRP_Company".
> 140  test  INFO   [main] openjpa.jdbc.Schema - Reading sequence  
> information
> for schema "null", sequence name "null".
> 3856  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.Company".
> 3856  test  INFO   [main] openjpa.MetaData - Parsing package "
> org.apache.openjpa.persistence.models.company.propertyaccess.Company".
> 3866  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.Address".
> 3866  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.Employee" 
> .
> 3866  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.Person".
> 3876  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.Product".
> 3876  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.FullTimeE 
> mployee
> ".
> 3936  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.ProductOr 
> der".
> 3966  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.Customer" 
> .
> 3976  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.LineItem" 
> .
> 4026  test  INFO   [main] openjpa.MetaData - Parsing class "
> org.apache.openjpa.persistence.models.company.propertyaccess.PartTimeE 
> mployee
> ".
> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed:  
> 4.336 sec
> <<< FAILURE!
> testBasicQueries(
> org.apache.openjpa.persistence.models.company.propertyaccess.TestPrope 
> rtyCompanyModel)
> Time elapsed: 4.326 sec  <<< ERROR!
> java.lang.IllegalStateException: java.lang.NoSuchMethodException:  
> <unbound>=
> Class.create(Class);
>        at
> org.apache.openjpa.persistence.models.company.CompanyModelTest.checkMo 
> del(
> CompanyModelTest.java:194)
>        at
> org.apache.openjpa.persistence.models.company.CompanyModelTest.setUp(
> CompanyModelTest.java:66)
>        at junit.framework.TestCase.runBare(TestCase.java:125)
>        at junit.framework.TestResult$1.protect(TestResult.java:106)
>        at junit.framework.TestResult.runProtected(TestResult.java:124)
>        at junit.framework.TestResult.run(TestResult.java:109)
>        at junit.framework.TestCase.run(TestCase.java:118)
>        at junit.framework.TestSuite.runTest(TestSuite.java:208)
>        at junit.framework.TestSuite.run(TestSuite.java:203)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:64)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43)
>        at java.lang.reflect.Method.invoke(Method.java:615)
>        at org.apache.maven.surefire.junit.JUnitTestSet.execute(
> JUnitTestSet.java:210)
>        at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTest 
> Set(
> AbstractDirectoryTestSuite.java:135)
>        at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(
> AbstractDirectoryTestSuite.java:122)
>        at org.apache.maven.surefire.Surefire.run(Surefire.java:129)
>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>        at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:64)
>        at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:43)
>        at java.lang.reflect.Method.invoke(Method.java:615)
>        at
> org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(
> SurefireBooter.java:225)
>        at org.apache.maven.surefire.booter.SurefireBooter.main(
> SurefireBooter.java:747)
> Caused by: java.lang.NoSuchMethodException: <unbound>=Class.create 
> (Class);
>        at java.beans.Statement.invoke(Statement.java:269)
>        at <unknown class>.<unknown method>(Unknown Source)
>        at com.sun.beans.ObjectHandler.eval(ObjectHandler.java:148)
>        at com.sun.beans.ObjectHandler.startElement 
> (ObjectHandler.java:250)
>        at org.apache.xerces.parsers.AbstractSAXParser.startElement 
> (Unknown
> Source)
>        at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement 
> (Unknown
> Source)
>        at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement 
> (Unknown
> Source)
>        at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl 
> $FragmentContentDispatcher.dispatch(Unknown
> Source)
>        at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument 
> (Unknown
> Source)
>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown  
> Source)
>        at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown  
> Source)
>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown  
> Source)
>        at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
>        at javax.xml.parsers.SAXParser.parse(Unknown Source)
>        at java.beans.XMLDecoder.readObject(XMLDecoder.java:220)
>        at
> org.apache.openjpa.persistence.models.company.CompanyModelTest.checkMo 
> del(
> CompanyModelTest.java:191)
>        ... 22 more
>
>
> On 2/10/07, Marc Prud'hommeaux <mprudhom@apache.org> wrote:
>>
>> Kevin-
>>
>> Weird. From the error message, it looks like there is some problem
>> with deserializing the default model from the companies.xml file from
>> the XMLDecoder.
>>
>> I've put some extra debugging logic in the CompanyModelTest.java that
>> should throw a better error when the deserialization fails. Can you
>> update and re-run the test and let us know if the stack trace  
>> changes?
>>
>>
>>
>> On Feb 10, 2007, at 6:21 PM, Kevin Sutter wrote:
>>
>> > Hi,
>> > After synching up with the latest changes in SVN, I am hitting an
>> > intermittent problem while running the new tests in
>> > openjpa-persistence-jdbc.  Every once in a while, I am getting
>> > hundreds of
>> > messsages like the following:
>> >
>> > Running
>> >  
>> org.apache.openjpa.persistence.models.company.propertyaccess.TestProp 
>> e
>> > rtyCompanyModel
>> > 0  test  INFO   [main] openjpa.Runtime - Starting OpenJPA 0.0.0
>> > 0  test  INFO   [main] openjpa.jdbc.JDBC - OpenJPA will now connect
>> > to the
>> > database to attempt to determine what type of database dictionary
>> > to use.
>> > To prevent this connection in the future, set your
>> > openjpa.jdbc.DBDictionaryconfiguration property to the appropriate
>> > value for your database (see the
>> > documentation foravailable values).
>> > 10  test  INFO   [main] openjpa.jdbc.JDBC - Using dictionary  
>> class "
>> > org.apache.openjpa.jdbc.sql.DerbyDictionary" (Apache Derby  
>> 10.2.2.0 -
>> > (485682) ,Apache Derby Embedded JDBC Driver 10.2.2.0 - (485682)).
>> > 20  test  INFO   [main] openjpa.MetaData - Found 10 classes with
>> > metadata in
>> > 0 milliseconds.
>> > :
>> > :
>> > 4046  test  INFO   [main] openjpa.MetaData - Parsing class "
>> >  
>> org.apache.openjpa.persistence.models.company.propertyaccess.LineItem 
>> "
>> > .
>> > java.lang.NoSuchMethodException: <unbound>=Class.create(Class);
>> > Continuing ...
>> > java.lang.NullPointerException: target should not be null
>> > Continuing ...
>> > java.lang.NoSuchMethodException: <unbound>=Class.create(Class);
>> > Continuing ...
>> > java.lang.NullPointerException: target should not be null
>> > Continuing ...
>> > java.lang.NoSuchMethodException: <unbound>=Class.create(Class);
>> > Continuing ...
>> > java.lang.NullPointerException: target should not be null
>> > Continuing ...
>> > java.lang.NoSuchMethodException: <unbound>=Class.create(Class);
>> > Continuing ...
>> > java.lang.NullPointerException: target should not be null
>> > Continuing ...
>> > java.lang.NoSuchMethodException: <unbound>=Class.create(Class);
>> > Continuing ...
>> > :
>> > :   <these type of messages continue -- several dozen repeats>
>> > :
>> > Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed:
>> > 4.346 sec
>> > <<< FAILURE!
>> > testBasicQueries(
>> >  
>> org.apache.openjpa.persistence.models.company.propertyaccess.TestProp 
>> e
>> > rtyCompanyModel)
>> > Time elapsed: 4.336 sec  <<< FAILURE!
>> > junit.framework.AssertionFailedError: expected:<2> but was:<0>
>> >        at junit.framework.Assert.fail(Assert.java:47)
>> >        at junit.framework.Assert.failNotEquals(Assert.java:282)
>> >        at junit.framework.Assert.assertEquals(Assert.java:64)
>> >        at junit.framework.Assert.assertEquals(Assert.java:201)
>> >        at junit.framework.Assert.assertEquals(Assert.java:207)
>> >        at
>> >  
>> org.apache.openjpa.persistence.models.company.CompanyModelTest.verify 
>> M
>> > odel(
>> > CompanyModelTest.java:211)
>> >        at
>> >  
>> org.apache.openjpa.persistence.models.company.CompanyModelTest.checkM 
>> o
>> > del(
>> > CompanyModelTest.java:195)
>> >        at
>> >  
>> org.apache.openjpa.persistence.models.company.CompanyModelTest.setUp(
>> > CompanyModelTest.java:66)
>> >        at junit.framework.TestCase.runBare(TestCase.java:125)
>> >        at junit.framework.TestResult$1.protect(TestResult.java:106)
>> >        at junit.framework.TestResult.runProtected 
>> (TestResult.java:124)
>> >        at junit.framework.TestResult.run(TestResult.java:109)
>> >        at junit.framework.TestCase.run(TestCase.java:118)
>> >        at junit.framework.TestSuite.runTest(TestSuite.java:208)
>> >        at junit.framework.TestSuite.run(TestSuite.java:203)
>> >        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native  
>> Method)
>> >        at sun.reflect.NativeMethodAccessorImpl.invoke(
>> > NativeMethodAccessorImpl.java:64)
>> >        at sun.reflect.DelegatingMethodAccessorImpl.invoke(
>> > DelegatingMethodAccessorImpl.java:43)
>> >        at java.lang.reflect.Method.invoke(Method.java:615)
>> >        at org.apache.maven.surefire.junit.JUnitTestSet.execute(
>> > JUnitTestSet.java:210)
>> >        at
>> >  
>> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTes 
>> t
>> > Set(
>> > AbstractDirectoryTestSuite.java:135)
>> >        at
>> > org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(
>> > AbstractDirectoryTestSuite.java:122)
>> >        at org.apache.maven.surefire.Surefire.run(Surefire.java:129)
>> >        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native  
>> Method)
>> >        at sun.reflect.NativeMethodAccessorImpl.invoke(
>> > NativeMethodAccessorImpl.java:64)
>> >        at sun.reflect.DelegatingMethodAccessorImpl.invoke(
>> > DelegatingMethodAccessorImpl.java:43)
>> >        at java.lang.reflect.Method.invoke(Method.java:615)
>> >        at
>> > org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(
>> > SurefireBooter.java:225)
>> >        at org.apache.maven.surefire.booter.SurefireBooter.main(
>> > SurefireBooter.java:747)
>> >
>> > They seem to most often happen when I do a complete top-down build
>> > from the
>> > openjpa directory (mvn clean && mvn install) and let it traverse  
>> the
>> > sub-projects.  This is from the command line (not Eclipse).
>> >
>> > I can immediately turn around and do a "mvn test" from the openjpa
>> > directory
>> > and everything tests out just fine.
>> >
>> > Any ideas on what is causing these type of errors?  I don't see
>> > anywhere in
>> > our code where we are producing these type of messages.  I'm not
>> > sure if
>> > it's related to one of our dependencies (serp?), or maybe it's
>> > another IBM
>> > JDK anomaly (haven't been able to reproduce with Sun yet, but it  
>> is an
>> > intermittent problem).
>> >
>> > Thanks,
>> > Kevin
>>
>>

Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!


Mime
View raw message