[
https://jira.codehaus.org/browse/MSHADE-183?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Robert Scholte updated MSHADE-183:
----------------------------------
Description:
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>}}.
was:
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
{{
<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>
}}
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>.
> 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://jira.codehaus.org/browse/MSHADE-183
> Project: Maven Shade Plugin
> Issue Type: Bug
> Reporter: Chris Heisterkamp
> 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.1.6#6162)