You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Stuart McCulloch (JIRA)" <ji...@apache.org> on 2015/06/02 16:36:22 UTC
[jira] [Comment Edited] (MSHADE-183) 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
[ https://issues.apache.org/jira/browse/MSHADE-183?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14569153#comment-14569153 ]
Stuart McCulloch edited comment on MSHADE-183 at 6/2/15 2:36 PM:
-----------------------------------------------------------------
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 at compile time (but checks the value is a string at runtime) as discussed in MSHADE-168.
was (Author: mcculls):
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)