Buggy code:
public class JointJS extends Browser implements ISelectionProvider { private static final Logger LOGGER = Logger . getLogger ( JointJS . class ) ; private static class JointJSModelConverter implements IConverter < Object , JointJSModel > { private static JointJS . JointJSModelConverter INSTANCE = new JointJS . JointJSModelConverter ( ) ; @ Override public JointJSModel convert ( Object json ) { } } private static class JointJSCellConverter implements IConverter < Object , JointJSCell > { private static JointJS . JointJSCellConverter INSTANCE = new JointJS . JointJSCellConverter ( ) ; @ Override public JointJSCell convert ( Object returnValue ) { } } public static interface IJointJSListener { public void loaded ( JointJSModel model ) { } public void save ( JointJSModel json ) { } public void modified ( JointJSModel json ) { } public void linkTitleChanged ( String id , String title ) { } public void hovered ( JointJSCell cell , boolean hoveredIn ) { } public void clicked ( JointJSCell cell ) { } public void doubleClicked ( JointJSCell cell ) { } } public static class JointJSListener implements JointJS . IJointJSListener { @ Override public void loaded ( JointJSModel json ) { } @ Override public void save ( JointJSModel json ) { } @ Override public void modified ( JointJSModel json ) { } @ Override public void linkTitleChanged ( String id , String title ) { } @ Override public void hovered ( JointJSCell cell , boolean hoveredIn ) { } @ Override public void clicked ( JointJSCell cell ) { } @ Override public void doubleClicked ( JointJSCell cell ) { } } private final List < JointJS . IJointJSListener > jointJSListeners = new ArrayList < JointJS . IJointJSListener > ( ) ; private final ListenerList selectionChangedListeners = new ListenerList ( ) ; private ISelection selection = new StructuredSelection ( ) ; private IReflexiveConverter < String , Object > selectionConverter ; private JointJSCell lastHovered = null ; private JointJSModel model = null ; private String elementCreationPrefix ; private String linkCreationPrefix ; public JointJS ( Composite parent , int style , String elementCreationPrefix , String linkCreationPrefix ) { } public JointJS ( Composite parent , int style , String elementCreationPrefix , String linkCreationPrefix , final IReflexiveConverter < String , Object > selectionConverter ) { } public Future < String > load ( String json ) { } public JointJSModel getModel ( ) { } public Future < String > save ( ) { } @ Override public void setEnabled ( boolean isEnabled ) { } public Future < String > getTitle ( ) { } public Future < Void > setTitle ( String title ) { if ( title != null ) { <START_BUG> title = ( "\"" + ( StringEscapeUtils . escapeHtml ( title ) ) ) + "\"" ; <END_BUG> } return this . run ( ( ( "com.bkahlert.nebula.jointjs.setTitle(" + title ) + ");" ) , CONVERTER_VOID ) ; } public Future < String > getCustomData ( String key ) { } public Future < Void > setCustomData ( String key , String value ) { } public Future < String > createElement ( String id , Object json ) { } @ SuppressWarnings ( "serial" ) public Future < String > createElement ( String id , String title , String content , final Point position , final Point size ) { } public Future < String > createLink ( String id , Object source , Object target ) { } public Future < String > createPermanentLink ( String id , Object source , Object target ) { } @ SuppressWarnings ( "serial" ) public Future < String > createLink ( String id , final String sourceId , final String targetId ) { } @ SuppressWarnings ( "serial" ) public Future < String > createPermanentLink ( String id , final String sourceId , final String targetId ) { } public Future < JointJSCell > getCell ( String id ) { } public Future < Void > setText ( String id , Object index , String text ) { } public Future < String > getText ( String id , Object index ) { } public Future < Void > setElementTitle ( String id , String title ) { } public Future < String > getElementTitle ( String id ) { } public Future < Void > setElementContent ( String id , String content ) { } public Future < String > getElementContent ( String id ) { } public Future < Void > setLinkTitle ( String id , String title ) { } public Future < String > getLinkTitle ( String id ) { } public Future < Void > setColor ( String id , RGB rgb ) { } public Future < Void > setBackgroundColor ( String id , RGB rgb ) { } public Future < Void > setBorderColor ( String id , RGB rgb ) { } public Future < Void > setPosition ( String id , int x , int y ) { } public Future < Void > setSize ( String id , int width , int height ) { } public Future < JointJSCell > remove ( String id ) { } public Future < List < String > > getElements ( ) { } public Future < List < String > > getLinks ( ) { } public Future < List < String > > getPermanentLinks ( ) { } public Future < List < String > > getConnectedLinks ( String id ) { } public Future < List < String > > getConnectedPermanentLinks ( String id ) { } public Future < Double > getZoom ( ) { } public Future < Void > setZoom ( Double zoom ) { } public Future < Double > zoomIn ( ) { } public Future < Double > zoomOut ( ) { } public Future < Point > getPan ( ) { } public Future < Void > setPan ( int x , int y ) { }

Fix:
title = ( "\"" + ( title . replace ( "\"" , "\\\"" ) ) ) + "\"" ;