Buggy code:
protected static final String SUBARGS_DELIMITER = "|" ; protected static final String ARGS_SPLIT = "\\*" ; protected static final String SUBARGS_SPLIT = "\\|" ; protected static final String VARIABLE_PARTS_SPLIT = "\\." ; protected static final String _0_1_2 = "{0}*{1}*{2}" ; protected static final String _0_1 = "{0}*{1}" ; protected static final String OBJECT_0 = "[object<seq2seq4repair_space>{0}]" ; protected static final String QUOTES_0 = "\"{0}\"" ; protected static final String CREATED = "created" ; protected static final String TERMINATE = "terminate" ; protected static final String SUSPEND = "suspend" ; protected static final String FIRST_LINE = "firstLine" ; protected static final String EXCEPTION = "exception" ; protected static final String ERR = "err" ; protected static final String TRACE = "trace" ; protected static final String NULL = "null" ; protected static final String STRING = "String" ; protected static final String BOOLEAN = "Boolean" ; protected static final String NUMBER = "Number" ; protected static final String FUNCTION = "Function" ; protected static final String BREAKPOINT = "breakpoint" ; protected static final String WATCHPOINT = "watchpoint" ; protected static final String SCRIPTS = "scripts" ; protected static final String LOG = "log" ; protected static final String OUT = "out" ; protected static final String SUCCESS = "success" ; protected static final String FAILURE = "failure" ; protected static final String GET_SOURCE = "getSource" ; protected static final String STEP_INTO = "stepInto" ; protected static final String STEP_OVER = "stepOver" ; protected static final String RESUME = "resume" ; protected static final String ABORT = "abort" ; protected static final String START = "start" ; protected static final String STEP_RETURN = "stepReturn" ; protected static final String STEP_TO_FRAME = "stepToFrame" ; protected static final String FRAMES = "frames" ; protected static final String DBGSOURCE_SCHEME = "dbgsource:////" ; protected static final String _0 = "0" ; protected static final String _1 = "1" ; protected static final String _R = "r" ; protected static final String _W = "w" ; protected static final String _RW = "rw" ; protected static final String ARG_FRAME_ID = "frameId" ; protected static final String ARG_VARIABLE_NAME = "variableName" ; protected static final String ARG_EVAL_ID = "evalId" ; protected static Pattern VARIABLE_FRAME_PATTERN = Pattern . compile ( "^frame\\[(\\d+)\\]\\.?(.*)$" ) ; protected static Pattern VARIABLE_EVAL_PATTERN = Pattern . compile ( "^eval\\[(\\d+)\\]\\.?(.*)$" ) ; protected static final String PROTOCOL_VERSION = "1" ; public static final int SOCKET_TIMEOUT = 1000 ; private Socket socket ; private Reader reader ; private Writer writer ; private Plugin plugin ; private File errorLogFile ; private ProtocolLogger logger ; protected boolean enabled ; protected String suspendReason ; protected String resumeReason ; protected int targetFrameCount ; protected String reqid ; protected Map < String , Object > options = new HashMap < String , Object > ( ) ; protected Set < String > exceptions = new HashSet < String > ( ) ; protected AbstractDebugHost ( ) { } protected abstract Object getSyncObject ( ) { } protected abstract boolean isConnected ( ) { } protected abstract boolean isDebugging ( ) { } protected abstract void initSession ( ) throws CoreException { } protected abstract void terminateSession ( ) { } public final void start ( final SocketAddress serverAddress ) throws CoreException { } private String readMessage ( ) throws IOException { } private void handleMessage ( String message ) throws IOException { } protected final void sendResponse ( String data ) throws IOException { } protected final void sendData ( String [ ] data ) throws IOException { } protected final void sendData ( String reqid , String data ) throws IOException { } private String processBreakpoint ( String action , String uri , int lineNo , AbstractDebugHost . BreakpointProperties props ) { } private String processExceptionBreakpoint ( String action , String exceptionType ) { } protected final void terminate ( ) { } private void checkCloseStreams ( ) { } protected abstract void startDebugging ( ) throws IOException { } protected abstract void stopDebugging ( String reason ) throws IOException { } protected abstract String listFrames ( ) { } protected abstract int frameCount ( ) { } protected abstract String listVariables ( String variableName ) { } protected abstract String doGetDetails ( String variableName ) { } protected abstract String doEval ( String variableName , String expression ) { } protected abstract String doSetValue ( String variableName , String valueRef ) { } <START_BUG> protected abstract void suspend ( String reason ) ; <END_BUG> protected abstract String processDetailFormatters ( String [ ] list ) { } protected abstract String getSource ( String uri ) { } protected abstract boolean setBreakpoint ( String uri , int lineNo , AbstractDebugHost . BreakpointProperties props ) { } protected abstract boolean removeBreakpoint ( String uri , int lineNo ) { } protected abstract void setExceptionBreakpoint ( String exceptionType ) { } protected abstract void removeExceptionBreakpoint ( String exceptionType ) { } protected abstract void processOptionChange ( String option ) { } protected void enable ( ) throws IOException { } private void disable ( ) throws IOException { } protected final boolean getBooleanOption ( String option ) { } protected String makeAbsoluteURI ( String string ) { } protected String makeDebuggerURI ( String string ) { } protected static String addFlag ( String flags , char flag ) { } protected static String combineFlags ( String flags , String additions ) { } protected static String removeFlag ( String flags , char flag ) { } protected final void initLogger ( Plugin plugin , String basename ) throws DebugException { } protected final void closeLogger ( ) { } protected final synchronized void logError ( String message ) { } protected final void logError ( Exception e ) { } private String getVersion ( ) { } protected class BreakpointProperties { public boolean disabled ; public int hitCount ; public String condition ; public boolean conditionOnTrue ; BreakpointProperties ( boolean disabled , int hitCount , String condition , boolean conditionOnTrue ) { } } }

Fix:
protected abstract boolean suspend ( String reason ) ;