class PluginDescriptorParsingException extends Exception {

    public PluginDescriptorParsingException(Plugin plugin, String descriptorLocation, Throwable e) {
        super(createMessage(plugin, descriptorLocation, e), e);
    }

    private static String createMessage(Plugin plugin, String descriptorLocation, Throwable e) {<FILL_FUNCTION_BODY>}
}

        String message = "Failed to parse plugin descriptor";

        if (plugin != null) {
            message += " for " + plugin.getId();
        }

        if (descriptorLocation != null) {
            message += " (" + descriptorLocation + ")";
        }

        if (e != null) {
            message += ": " + e.getMessage();
        }

        return message;
    
<methods>public void <init>() ,public void <init>(java.lang.String) ,public void <init>(java.lang.Throwable) ,public void <init>(java.lang.String, java.lang.Throwable) <variables>static final long serialVersionUID