[ 
https://issues.apache.org/jira/browse/MSHADE-183?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14569153#comment-14569153
 ] 

Stuart McCulloch commented on MSHADE-183:
-----------------------------------------

https://issues.apache.org/jira/browse/MSHADE-168 describes why this error is 
happening. The correct generic signature for that field should really be 
{{Map<String, String>}} but {{Map<String, Object>}} works just as well, since 
the value is passed directly into the Attributes instance which accepts any 
type.

> Getting "Error creating shaded jar: java.util.jar.Attributes cannot be cast 
> to java.lang.String" error when using ManifestResourceTransformer with Maven 
> 3.2.5
> --------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MSHADE-183
>                 URL: https://issues.apache.org/jira/browse/MSHADE-183
>             Project: Maven Shade Plugin
>          Issue Type: Bug
>    Affects Versions: 2.3
>            Reporter: Chris Heisterkamp
>            Assignee: Karl Heinz Marbaise
>             Fix For: 2.4
>
>         Attachments: manifest_resource_transformer_error.diff
>
>
> If you are using the {{ManifestResourceTransformer}} with empty values in the 
> configuration you will get a {{"Error creating shaded jar: 
> java.util.jar.Attributes cannot be cast to java.lang.String"}} error with 
> Maven 3.2.5.
> Here as an example config that causes the problem
> {code:xml}       
> <configuration>
>   <transformers>
>     <transformer
>         
> implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
>       <manifestEntries>
>         <Main-Class>com.mycompany.app.App</Main-Class>
>         <Implementation-Build></Implementation-Build>
>       </manifestEntries>
>     </transformer>
>   </transformers>
> </configuration>
> {code}
> I'm not sure what changed in populating the manifestEntries map but it looks 
> like the {{manifestEntries.entrySet()}} in {{ManifestResourceTransformer}} is 
> now getting back {{Attributes}} objects for the {{null}} values instead of 
> {{null}}.  When the transformer calls {{getValue()}} on the {{Attributes}} 
> object you get the error.
> The fix was to make manifestEntries a {{Map<String, Object>}} instead of 
> {{Map<String, Attributes>}}. 



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

Reply via email to