[ 
http://jira.codehaus.org/browse/SUREFIRE-453?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dan Fabulich closed SUREFIRE-453.
---------------------------------

    Resolution: Won't Fix

The problem with this test has to do with the useSystemClassLoader 
configuration parameter.  When I use Surefire 2.4.1 and 
-Dsurefire.useSystemClassLoader=false, the test passes; with =true (the 
default), the test fails.

One of the changes from Surefire 2.3 and Surefire 2.4 was to make 
useSystemClassLoader=true the default; previously the default was false.  
"useSystemClassLoader" sounds fancy, but it's really just the normal default 
way of launching java: your classes and dependencies are added to the classpath 
in an ordinary way.

When we don't use the system classloader, we do fancy stuff with "isolated" 
custom classloaders; this frequently had a destabilizing effect on the classes 
as they attempted to access the system classloader using 
java.lang.ClassLoader.getSystemClassLoader().  There are a bunch of bugs marked 
"Won't Fix" for 2.3 because the workaround is just to set 
useSystemClassLoader=true.

Since the system classloader mechanism is the "normal" way of launching code, 
we have to wonder: why does this test fail when launched in the "ordinary" way, 
but pass when launched in a special isolated classloader?  I have no idea why, 
and I think it's beyond me to find out.  There's more than a dozen dependencies 
in this project and a lot of tricky interactions possible between spring, 
hibernate, derby, and aspectj; to figure out what's wrong would require a way 
more detailed debugging effort than I'm prepared to do right now.

For now, I'm going to have to mark this "Won't Fix", there's a reasonable 
workaround available (useSystemClassLoader=false) and because I believe the 
current default behavior is the right choice (the default can't satisfy 
everyone).

If there's something else we can do besides changing the default setting, I'd 
be curious to know of it; in that case, feel free to reopen this bug or file a 
new one.

> unable to run spring/jpa/dao test with derby starting with surefire 2.4.x
> -------------------------------------------------------------------------
>
>                 Key: SUREFIRE-453
>                 URL: http://jira.codehaus.org/browse/SUREFIRE-453
>             Project: Maven Surefire
>          Issue Type: Bug
>          Components: plugin
>    Affects Versions: 2.4
>            Reporter: Dan Tran
>         Attachments: mytest-sources-2.jar, mytest-sources.jar
>
>
> here is the description reported on user list
> This may not be a blocking bug but It is a regresion since 2.4 where
> my Spring JpaDao with embedded Derby  test fails . Other databases are fine.
> The exception is producable with 2.5-SNAPSHOT ( build from source ),
> 2.4.1-SNAPSHOT( at apache snapshot repo).
> surefire 2.3 and 2.3.1 are fine.
> Any one else encounter this issue?
> -D
> -------------------------------------------------------------------------------
> Test set: com.iplocks.user.dao.UserDaoJpaTest
> -------------------------------------------------------------------------------
> Tests run: 7, Failures: 0, Errors: 6, Skipped: 0, Time elapsed: 14.111
> sec <<< FAILURE!
> testNamedConstraint(com.iplocks.user.dao.UserDaoJpaTest)  Time
> elapsed: 0.281 sec  <<< ERROR!
> javax.persistence.PersistenceException:
> org.hibernate.exception.GenericJDBCException: could not execute query
>        at 
> org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:630)
>        at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:75)
>        at 
> com.iplocks.jpa.GenericNameDaoJpa.getByName(GenericNameDaoJpa.java:54)
>        at 
> com.iplocks.user.dao.UserDaoJpaTest.createUser(UserDaoJpaTest.java:35)
>        at 
> com.iplocks.user.dao.UserDaoJpaTest.createDefaultUser(UserDaoJpaTest.java:56)
>        at 
> com.iplocks.user.dao.UserDaoJpaTest.testNamedConstraint(UserDaoJpaTest.java:77)
> Caused by: org.hibernate.exception.GenericJDBCException: could not execute 
> query
>        at 
> org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
>        at 
> org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
>        at 
> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
>        at org.hibernate.loader.Loader.doList(Loader.java:2223)
>        at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
>        at org.hibernate.loader.Loader.list(Loader.java:2099)
>        at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
>        at 
> org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
>        at 
> org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
>        at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
>        at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
>        at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:66)
>        ... 38 more
> Caused by: java.sql.SQLException: Cannot create an instance of
> generated class
> org.apache.derby.exe.ac12564092x0117xc31cx8752x00000020b5f01.
>        at 
> org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown
> Please run mvn test using the attached maven project.  to run with different 
> db, change resources.properties accordingly

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to