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

Martin Serrano updated TWILL-182:
---------------------------------
    Description: 
If two jars obtained from *different* classpath locations have the same name 
but different contents, one will overwrite the other.  The dependency code 
correctly finds the jars (uses the full path in the HashSet which accumulates 
the deps) but when the bundle is created the jars are written to {{/lib}} under 
their name.  This results in one overwriting the other.

While this is not a likely occurrence, it occurs for us in our development 
environment because our published jar names are built up from their project 
hierarchy.  For example the model project for our sdk is in {{.../sdk/model}} 
and will be on the classpath as {{.../sdk/model.jar}} and published as 
{{sdk-model.jar}}.  

In practice however this could occur with any jar name and would be more likely 
over time.

The {{ApplicationBundler}} could detect this and re-write the name with some 
part of the path or suffix to ensure the name is unique.

  was:
If two jars obtained from *different* classpath locations have the same name 
but different contents, one will overwrite the other.  The dependency code 
correctly finds the jars (uses the full path in the HashSet which accumulates 
the deps) but when the bundle is created the jars are written to {{/lib}} under 
their name.  This results in one overwriting the other.

While this is not a likely occurrence, it occurs for us in our development 
environment because our published jar names are built up from their project 
hierarchy.  For example the model project for our sdk is in {{.../sdk/model}} 
and will be on the classpath as {{.../sdk/model.jar}} and published as 
{{sdk-model.jar}}.  

In practice however this could occur with any jar name and would be more likely 
over time.

The {{ApplicationBundler}} could detect this over time and re-write the name 
with some part of the path or suffix to ensure the name is unique.


> ApplicationBundler will overwrite dependencies with identical names
> -------------------------------------------------------------------
>
>                 Key: TWILL-182
>                 URL: https://issues.apache.org/jira/browse/TWILL-182
>             Project: Apache Twill
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 0.7.0-incubating
>            Reporter: Martin Serrano
>
> If two jars obtained from *different* classpath locations have the same name 
> but different contents, one will overwrite the other.  The dependency code 
> correctly finds the jars (uses the full path in the HashSet which accumulates 
> the deps) but when the bundle is created the jars are written to {{/lib}} 
> under their name.  This results in one overwriting the other.
> While this is not a likely occurrence, it occurs for us in our development 
> environment because our published jar names are built up from their project 
> hierarchy.  For example the model project for our sdk is in {{.../sdk/model}} 
> and will be on the classpath as {{.../sdk/model.jar}} and published as 
> {{sdk-model.jar}}.  
> In practice however this could occur with any jar name and would be more 
> likely over time.
> The {{ApplicationBundler}} could detect this and re-write the name with some 
> part of the path or suffix to ensure the name is unique.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to