Buggy code:
public class SoftMessage implements IMessage { public static String XMLNAME = "message" ; public static final File NO_FILE = ISourceLocation . NO_FILE ; private String message ; private Kind kind ; private Throwable thrown ; private ISourceLocation sourceLocation ; private String details ; private final ArrayList extraSourceLocations = new ArrayList ( ) ; private String file ; private int line = Integer . MAX_VALUE ; public static SoftMessage fail ( String message , Throwable thrown ) { } public static void writeXml ( XMLWriter out , IMessageHolder messages ) { } public static void writeXml ( XMLWriter out , IMessage [ ] messages ) { } public static void writeXml ( XMLWriter out , IMessage message ) { if ( ( null == out ) || ( null == message ) ) { return ; } Throwable thrown = message . getThrown ( ) ; if ( null != thrown ) { String m = ( "unable<seq2seq4repair_space>to<seq2seq4repair_space>write<seq2seq4repair_space>" + message ) + "<seq2seq4repair_space>thrown<seq2seq4repair_space>not<seq2seq4repair_space>permitted" ; throw new IllegalArgumentException ( m ) ; } final String elementName = SoftMessage . XMLNAME ; out . startElement ( elementName , false ) ; out . printAttribute ( "kind" , message . getKind ( ) . toString ( ) ) ; String value = message . getMessage ( ) ; if ( null != value ) { value = XMLWriter . attributeValue ( value ) ; <START_BUG> out . printAttribute ( "message" , value ) ; <END_BUG> } value = message . getDetails ( ) ; if ( null != value ) { value = XMLWriter . attributeValue ( value ) ; out . printAttribute ( "details" , value ) ; } ISourceLocation sl = message . getSourceLocation ( ) ; if ( null != sl ) { int line = sl . getLine ( ) ; if ( ( - 1 ) < line ) { out . printAttribute ( "line" , ( "" + line ) ) ; } File file = sl . getSourceFile ( ) ; if ( ( null != file ) && ( ! ( ISourceLocation . NO_FILE . equals ( file ) ) ) ) { value = XMLWriter . attributeValue ( file . getPath ( ) ) ; out . printAttribute ( "file" , value ) ; } } List extras = message . getExtraSourceLocations ( ) ; if ( ! ( LangUtil . isEmpty ( extras ) ) ) { out . endAttributes ( ) ; for ( Iterator iter = extras . iterator ( ) ; iter . hasNext ( ) ; ) { ISourceLocation element = ( ( ISourceLocation ) ( iter . next ( ) ) ) ; SoftSourceLocation . writeXml ( out , sl ) ; } } out . endElement ( elementName ) ; } public SoftMessage ( ) { } public SoftMessage ( String message , ISourceLocation location , boolean isError ) { } public SoftMessage ( String message , IMessage . Kind kind , Throwable thrown , ISourceLocation sourceLocation ) { } public Kind getKind ( ) { } public boolean isError ( ) { } public boolean isWarning ( ) { } public boolean isDebug ( ) { } public boolean isInfo ( ) { } public boolean isAbort ( ) { } public boolean isFailed ( ) { } public final String getMessage ( ) { } public final Throwable getThrown ( ) { } public final ISourceLocation getSourceLocation ( ) { } public void setMessageKind ( IMessage . Kind kind ) { } public void setFile ( String path ) { } public void setKindAsString ( String kind ) { } public void setSourceLocation ( ISourceLocation sourceLocation ) { } public void setLineAsString ( String line ) { } public void setText ( String text ) { } public String toString ( ) { } public String getDetails ( ) { } public void setDetails ( String string ) { } public List getExtraSourceLocations ( ) { } public void addSourceLocation ( ISourceLocation location ) { } }

Fix:
out . printAttribute ( "text" , value ) ;