[
https://issues.jboss.org/browse/ARQ-1944?page=com.atlassian.jira.plugin.s...
]
Marc Richards edited comment on ARQ-1944 at 1/30/16 6:22 PM:
-------------------------------------------------------------
Just wanted to add a few clarifications from my own testing as well
1) Yea, the latest releases of arquillian-tomcat-embedded have a bug when used with tomcat
versions lower than 7.0.52, which makes the issue even more tricky:
https://issues.jboss.org/browse/ARQ-1965
2) My errors are not related to hamcrest at all, the loader constraint violations are
thrown for my own classes e.g.
{code:java}
java.lang.LinkageError: loader constraint violation: when resolving method
"myorg.model.PollingEvent.<init>(Lorg/joda/time/DateTime;Lmyorg/rest/model/OrderStatus;Lorg/joda/time/DateTime;)V"
the class loader (instance of org/apache/catalina/loader/WebappClassLoader) of the current
class, myorg/db/PollingEventManager, and the class loader (instance of
sun/misc/Launcher$AppClassLoader) for the method's defining class,
myorg/model/PollingEvent, have different Class objects for the type
myorg/rest/model/OrderStatus used in the signature
{code}
or
{code:java}
java.lang.LinkageError: loader constraint violation: loader (instance of
sun/misc/Launcher$AppClassLoader) previously initiated loading for a different type with
name "myorg/rest/model/Product"
{code}
3) Using @RunAsClient does workaround the issue for me as well except for some tests,
however some tests make use of features of the app server and cannot be run as client
was (Author: talawahdotnet):
Just wanted to add a few clarifications from my own testing as well
1) Yea, the latest releases of arquillian-tomcat-embedded have a bug when used with tomcat
versions lower than 7.0.52, which makes the issue even more tricky:
https://issues.jboss.org/browse/ARQ-1965
2) My errors are not related to hamcrest at all, the loader constraint violations are
thrown for my own classes e.g.
{code:java}
java.lang.LinkageError: loader constraint violation: when resolving method
"myorg.model.PollingEvent.<init>(Lorg/joda/time/DateTime;Lmyorg/rest/model/OrderStatus;Lorg/joda/time/DateTime;)V"
the class loader (instance of org/apache/catalina/loader/WebappClassLoader) of the current
class, myorg/db/PollingEventManager, and the class loader (instance of
sun/misc/Launcher$AppClassLoader) for the method's defining class,
myorg/model/PollingEvent, have different Class objects for the type
myorg/rest/model/OrderStatus used in the signature
{code}
or
{code:java}
java.lang.LinkageError: loader constraint violation: loader (instance of
sun/misc/Launcher$AppClassLoader) previously initiated loading for a different type with
name "myorg/rest/model/Product"
{code}
3) Using @RunAsClient does workaround the issue for me as well except for some tests,
however some tests make use of features of the app server and cannot be run as client
3)
Linkage error with arquillian-junit.jar
---------------------------------------
Key: ARQ-1944
URL:
https://issues.jboss.org/browse/ARQ-1944
Project: Arquillian
Issue Type: Bug
Affects Versions: 1.1.7.Final, 1.1.8.Final, 1.1.9.Final, 1.1.10.Final, 1.1.11.Final
Environment: JDK7, Windows 7 x64, Linux x64
Reporter: Chris Rankin
Attachments: arquillian-hamcrest-test.tar.xz
Testing a WAR in embedded Tomcat >= 7.0.51 using Restassured, JUnit and Hamcrest
matchers. (TestNG works fine).
The test fails with this error message:
{code}Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 3.404 sec
<<< FAILURE! - in org.testing.web.TroubleIT
testTrouble(org.testing.web.TroubleIT) Time elapsed: 0.774 sec <<< ERROR!
java.lang.LinkageError: loader constraint violation: when resolving interface method
"com.jayway.restassured.specification.ResponseSpecification.statusCode(Lorg/hamcrest/Matcher;)Lcom/jayway/restassured/specification/ResponseSpecification;"
the class loader (instance of org/apache/catalina/loader/WebappClassLoader) of the current
class, org/testing/web/TroubleIT, and the class loader (instance of
sun/misc/Launcher$AppClassLoader) for resolved class,
com/jayway/restassured/specification/ResponseSpecification, have different Class objects
for the type
cification.statusCode(Lorg/hamcrest/Matcher;)Lcom/jayway/restassured/specification/ResponseSpecification;
used in the signature
at org.testing.web.TroubleIT.testTrouble(TroubleIT.java:35)
{code}
This error can be resolved in four different ways:
- Rewrite the test using TestNG
- Rewrite the test without using any Hamcrest matchers.
- Remove "org.hamcrest" from
{{org.jboss.arquillian.junit.container.JUnitDeploymentAppender}}.
- Set {{@Deployment(testable = false)}} to prevent Arquillian from packaging its
artifacts into the deployment in the first place.
See [Issue #78 for
arquillian-core|https://github.com/arquillian/arquillian-core/issues/78]
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)