Chris Heisterkamp created MSHADE-183:
----------------------------------------

             Summary: 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

{{        
<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>. 





--
This message was sent by Atlassian JIRA
(v6.1.6#6162)

Reply via email to