Note that there are some explanatory texts on larger screens.

plurals
  1. POPowermock and Spring cause ConversionException when injecting EntityManager in test
    primarykey
    data
    text
    <p>When attempting to combine the Spring test runner and the PowerMock runner using the <a href="http://code.google.com/p/powermock/wiki/PowerMockRule" rel="noreferrer">PowerMockRule technique</a>, I get an exception from the Thoughtworks XStream library whenever I try to inject an <code>EntityManager</code> using the <code>PersistenceContext</code> annotation from JPA. The same test works fine when not using the <code>PowerMockRule</code>. I also ignore all packages from the PowerMockLoader at the start of the test. I tried various values for <code>@PowerMockIgnore</code> as this normally solves issues I have with PowerMock, however, this error still happens even when ignoring absolutely every package. </p> <pre><code>@PowerMockIgnore("*") @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("/test-configuration.xml") public class SpringAndPowerMockTest { @Rule public PowerMockRule rule = new PowerMockRule(); @PersistenceContext private EntityManager manager; @Test public void test() { } } </code></pre> <p>The exception is as follows -- links to full backtrace on pastebin the backtrace exceeded the limit for question length):</p> <p><a href="http://pastebin.com/XcS5gUpn" rel="noreferrer"><code>com.thoughtworks.xstream.converters.ConversionException: Could not call org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.readObject() : Could not call java.util.concurrent.CopyOnWriteArrayList.readObject() : Could not call java.security.CodeSource.readObject() : null</code></a></p> <p>Relevant persistence unit: </p> <pre><code>&lt;persistence-unit name="inMemory"&gt; &lt;provider&gt;org.hibernate.ejb.HibernatePersistence&lt;/provider&gt; &lt;properties&gt; &lt;property name="hibernate.connection.driver_class" value="org.h2.Driver" /&gt; &lt;property name="hibernate.connection.url" value="jdbc:h2:mem:InMemoryUnitTests;MODE=MySQL;DB_CLOSE_ON_EXIT=FALSE" /&gt; &lt;property name="hibernate.connection.username" value="sa" /&gt; &lt;property name="hibernate.connection.password" value="" /&gt; &lt;property name="hibernate.hbm2ddl.auto" value="create-drop" /&gt; &lt;/properties&gt; &lt;/persistence-unit&gt; </code></pre> <p>Maven dependencies: </p> <pre><code>&lt;dependencies&gt; &lt;dependency&gt; &lt;groupId&gt;org.powermock&lt;/groupId&gt; &lt;artifactId&gt;powermock-module-junit4&lt;/artifactId&gt; &lt;version&gt;1.5.1&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.powermock&lt;/groupId&gt; &lt;artifactId&gt;powermock-api-mockito&lt;/artifactId&gt; &lt;version&gt;1.5.1&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.mockito&lt;/groupId&gt; &lt;artifactId&gt;mockito-core&lt;/artifactId&gt; &lt;version&gt;1.9.5&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.powermock&lt;/groupId&gt; &lt;artifactId&gt;powermock-api-easymock&lt;/artifactId&gt; &lt;version&gt;1.5.1&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.powermock&lt;/groupId&gt; &lt;artifactId&gt;powermock-module-junit4-rule&lt;/artifactId&gt; &lt;version&gt;1.5.1&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;org.powermock&lt;/groupId&gt; &lt;artifactId&gt;powermock-classloading-xstream&lt;/artifactId&gt; &lt;version&gt;1.5.1&lt;/version&gt; &lt;scope&gt;test&lt;/scope&gt; &lt;/dependency&gt; &lt;/dependencies&gt; </code></pre> <p>Testing using Spring <code>3.2.3.RELEASE</code>. Note that I have also tested with spring-test version <code>3.0.5.RELEASE</code> which does indeed resolve some other errors with the Spring/Powermock combination, but not this one.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload