[ 
https://issues.apache.org/jira/browse/OWB-1220?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Struberg reassigned OWB-1220:
----------------------------------

    Assignee: Mark Struberg

> URL-encoding issue in AbstractMetaDataDiscovery
> -----------------------------------------------
>
>                 Key: OWB-1220
>                 URL: https://issues.apache.org/jira/browse/OWB-1220
>             Project: OpenWebBeans
>          Issue Type: Bug
>    Affects Versions: 1.7.4, 2.0.2
>            Reporter: Harald Wellmann
>            Assignee: Mark Struberg
>
> 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)

Reply via email to