Harald Wellmann created OWB-1220:
------------------------------------
Summary: URL-encoding issue in AbstractMetaDataDiscovery
Key: OWB-1220
URL: https://issues.apache.org/jira/browse/OWB-1220
Project: OpenWebBeans
Issue Type: Bug
Affects Versions: 2.0.2, 1.7.4
Reporter: Harald Wellmann
h3. Scenario
I have a certain integration test using OWB and DeltaSpike which fails when the
working directory contains a '+' character and passes otherwise.
What's worse, the failure only occurs when running the test under Maven
Surefire, it does not occur when running the test from my IDE.
h3. Analysis
Maven Surefire by default builds a manifest-only JAR defining a classpath as as
list of URLs, e.g.
{noformat}
Class-Path: ... file:/home/hwellmann/work/ops4j/org.ops4j.pax.e
xam2/itest/cdi/src/it/regression%2bdeltaspike/target/test-classes/ ...
{noformat}
The following snippet from {{AbstractMetaDataDiscovery.registerBeanArchives()}}
{code}
Iterator<URL> cpIt = classPathUrls.iterator();
while (cpIt.hasNext())
{
URL cpUrl = cpIt.next();
if (beansXml.startsWith(stripProtocol(cpUrl.toExternalForm())))
{
cpIt.remove();
addDeploymentUrl(beansXml, cpUrl);
break;
}
}
{code}
does not behave as expected as can be seen from the following log output:
{noformat}
11:48:21.234 [main] INFO o.a.w.c.s.AbstractMetaDataDiscovery - added beans
archive URL:
file:/home/hwellmann/work/ops4j/org.ops4j.pax.exam2/itest/cdi/src/it/regression%2bdeltaspike/target/test-classes/META-INF/beans.xml
11:48:21.252 [main] INFO o.a.w.c.s.AbstractMetaDataDiscovery - added beans
archive URL:
file:/home/hwellmann/work/ops4j/org.ops4j.pax.exam2/itest/cdi/src/it/regression+deltaspike/target/test-classes
{noformat}
A classpath element containing a {{beans.xml}} is *not* removed from the
classpath, since the path prefix does not match due to varying encoding (i.e.
{{regression%2bdeltaspike}} vs. {{regression-deltaspike}}).
By the way, the log message "added beans archive URL" seems to be left
unchanged since CDI 1.0. It would be helpful if the message indicated the
difference between explicit and implicit bean archives. This is only mentioned
in the inline comments in the source code.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)