nus-yam/ex-repair huggingface dataset:
Buggy code:
public class ConnectionFactory implements TestListener { private static final Logger log = LoggingManager . getLoggerForClass ( ) ; private static TopicConnectionFactory factory = null ; private static QueueConnectionFactory qfactory = null ; protected ConnectionFactory ( ) { } public void testStarted ( String test ) { } public void testEnded ( String test ) { } public void testEnded ( ) { } public void testStarted ( ) { } public void testIterationStart ( LoopIterationEvent event ) { } public static synchronized TopicConnectionFactory getTopicConnectionFactory ( Context ctx , String fac ) { while ( ( ConnectionFactory . factory ) == null ) { try { Object objfac = ctx . lookup ( fac ) ; if ( objfac instanceof TopicConnectionFactory ) { ConnectionFactory . factory = ( ( TopicConnectionFactory ) ( objfac ) ) ; } } catch ( NamingException e ) { <START_BUG> ConnectionFactory . log . error ( e . getRootCause ( ) . toString ( ) ) ; <END_BUG> } } return ConnectionFactory . factory ; } public static synchronized QueueConnectionFactory getQueueConnectionFactory ( Context ctx , String fac ) { } public static synchronized TopicConnection getTopicConnection ( ) { } public static QueueConnection getQueueConnection ( Context ctx , String queueConn ) { } }

Fix:
ConnectionFactory . log . error ( e . toString ( ) ) ;
Buggy code:
public abstract class AbstractBaseServerModuleTest { protected Server startServer ( final Module ... modules ) throws Exception { final Injector injector = Guice . createInjector ( modules ) ; final Server server = new Server ( getPort ( ) ) ; final ServletContextHandler servletContextHandler = new ServletContextHandler ( ) ; servletContextHandler . addEventListener ( new GuiceServletContextListener ( ) { @ Override protected Injector getInjector ( ) { return injector ; } } ) ; servletContextHandler . addFilter ( GuiceFilter . class , "//*" , null ) ; <START_BUG> servletContextHandler . addServlet ( DefaultServlet . class , "//" ) ; <END_BUG> server . setHandler ( servletContextHandler ) ; server . start ( ) ; final Thread t = new Thread ( ) { @ Override public void run ( ) { try { server . join ( ) ; } catch ( final InterruptedException ignored ) { } } } ; t . setDaemon ( true ) ; t . start ( ) ; Assert . assertTrue ( server . isRunning ( ) ) ; return server ; } private int getPort ( ) { } }

Fix:
servletContextHandler . addServlet ( DefaultServlet . class , "//*" ) ;
Buggy code:
public final class Font extends Resource { public int handle ; public double size ; Font ( ) { } public Font ( Device device , FontData fd ) { } public Font ( Device device , FontData [ ] fds ) { } public Font ( Device device , String name , int height , int style ) { } public void dispose ( ) { } public boolean equals ( Object object ) { } public FontData [ ] getFontData ( ) { if ( isDisposed ( ) ) SWT . error ( ERROR_GRAPHIC_DISPOSED ) ; int fontFamily = OS . Typeface_FontFamily ( handle ) ; int style = OS . Typeface_Style ( handle ) ; int weight = OS . Typeface_Weight ( handle ) ; int stretch = OS . Typeface_Stretch ( handle ) ; int str = OS . FontFamily_Source ( fontFamily ) ; int charArray = OS . String_ToCharArray ( str ) ; char [ ] chars = new char [ OS . String_Length ( str ) ] ; <START_BUG> OS . memmove ( chars , charArray , ( ( chars . length ) * 2 ) ) ; <END_BUG> int fontStyle = OS . FontStyles_Normal ; if ( OS . Object_Equals ( style , FontStyles_Italic ) ) fontStyle = OS . FontStyles_Italic ; if ( OS . Object_Equals ( style , FontStyles_Oblique ) ) fontStyle = OS . FontStyles_Oblique ; int size = ( ( int ) ( ( ( this . size ) * 72 ) // 96.0F ) ) ; FontData data = FontData . wpf_new ( new String ( chars ) , fontStyle , OS . FontWeight_ToOpenTypeWeight ( weight ) , OS . FontStretch_ToOpenTypeStretch ( stretch ) , ( ( int ) ( size ) ) ) ; OS . GCHandle_Free ( charArray ) ; OS . GCHandle_Free ( str ) ; OS . GCHandle_Free ( fontFamily ) ; OS . GCHandle_Free ( style ) ; OS . GCHandle_Free ( weight ) ; OS . GCHandle_Free ( stretch ) ; return new FontData [ ] { data } ; } public int hashCode ( ) { } void init ( Device device , FontData fd ) { } public boolean isDisposed ( ) { } public String toString ( ) { } public static Font wpf_new ( Device device , int handle , double size ) { } }

Fix:
OS . memcpy ( chars , charArray , ( ( chars . length ) * 2 ) ) ;
Buggy code:
public class Util { public static int logicalToPhysicalOffset ( String data , int logical ) { } public static int physicalToLogicalOffset ( String data , int physical ) { } public static File getLockFile ( ) { } private static String generateFingerPrint ( ) { } public static String prettyPrint ( Map < String , ? > input ) { } public static String prettyPrint ( Object [ ] a ) { } public static String prettyPrint ( Collection < ? > input ) { } private static String concatinateElements ( Iterator < ? > it ) { } public static File getLogFile ( String dir , String name ) throws IOException { } public static void copy ( InputStream in , OutputStream out ) throws IOException { } public static boolean isWindows ( ) { } public static boolean isMacOS ( ) { } public static String readInputStreamToString ( InputStream in ) throws IOException { } public static String escape ( String s ) { } public static String unescapeBuffer ( StringBuffer line ) { } private static String unescape ( String line , int start , int end ) { } public static int findFreePort ( ) throws IOException { } public static String splice ( Collection < String > c , String delim ) { } public static String unquoteAtom ( String atom ) { } public static String unquoteStringOrAtom ( String atom ) { } private static int appendUnescapedChar ( String image , int i , StringBuffer sb ) { } private static int appendUnescapedOctalCharSpec ( String image , int i , StringBuffer sb ) { String val = "" ; <START_BUG> int j = i + 2 ; <END_BUG> while ( ( ( j < ( image . length ( ) ) ) && ( j < ( i + 4 ) ) ) && ( Util . isOctDigit ( image . charAt ( j ) ) ) ) { val += image . charAt ( j ) ; j ++ ; } sb . append ( ( ( char ) ( Integer . parseInt ( val , 8 ) ) ) ) ; if ( ( j < ( image . length ( ) ) ) && ( ( image . charAt ( j ) ) == '\\' ) ) { return ( 1 + j ) - i ; } return j - i ; } private static int appendUnescapedHexCharSpec ( String image , int i , StringBuffer sb ) { } private static boolean isHexDigit ( char c ) { } private static boolean isOctDigit ( char c ) { } public static void split ( String string , String delimiter , Collection < String > results ) { } public static String [ ] split ( String string , String delimiter ) { } public static String splice ( Object [ ] c , String delim ) { } public static boolean flagsSet ( int flags , int set ) { } public static String readFromFile ( File f ) { } private static Set < File > tempFiles = new HashSet < File > ( ) ; public static void addTempFile ( File tempFile ) { } public static Set < File > getTempFiles ( ) { } }

Fix:
int j = i + 1 ;
Buggy code:
public class TaskAdapter extends Task implements TypeAdapter { private Object proxy ; public static void checkTaskClass ( final Class taskClass , final Project project ) { if ( ! ( Dispatchable . class . isAssignableFrom ( taskClass ) ) ) { try { <START_BUG> final Method executeM = taskClass . getMethod ( "execute" , null ) ; <END_BUG> if ( ! ( Void . TYPE . equals ( executeM . getReturnType ( ) ) ) ) { final String message = ( ( ( "return<seq2seq4repair_space>type<seq2seq4repair_space>of<seq2seq4repair_space>execute()<seq2seq4repair_space>should<seq2seq4repair_space>be<seq2seq4repair_space>" + "void<seq2seq4repair_space>but<seq2seq4repair_space>was<seq2seq4repair_space>\"" ) + ( executeM . getReturnType ( ) ) ) + "\"<seq2seq4repair_space>in<seq2seq4repair_space>" ) + taskClass ; project . log ( message , MSG_WARN ) ; } } catch ( NoSuchMethodException e ) { final String message = "No<seq2seq4repair_space>public<seq2seq4repair_space>execute()<seq2seq4repair_space>in<seq2seq4repair_space>" + taskClass ; project . log ( message , MSG_ERR ) ; throw new BuildException ( message ) ; } catch ( LinkageError e ) { String message = ( ( "Could<seq2seq4repair_space>not<seq2seq4repair_space>load<seq2seq4repair_space>" + taskClass ) + ":<seq2seq4repair_space>" ) + e ; project . log ( message , MSG_ERR ) ; throw new BuildException ( message , e ) ; } } } public void checkProxyClass ( Class proxyClass ) { } public void execute ( ) throws BuildException { } public void setProxy ( Object o ) { } public Object getProxy ( ) { } }

Fix:
final Method executeM = taskClass . getMethod ( "execute" , ( ( Class [ ] ) ( null ) ) ) ;
Buggy code:
public class BorlandGenerateClient extends Task { static final String JAVA_MODE = "java" ; static final String FORK_MODE = "fork" ; boolean debug = false ; File ejbjarfile = null ; File clientjarfile = null ; String mode = BorlandGenerateClient . JAVA_MODE ; Path classpath ; public void setClasspath ( Path classpath ) throws TaskException { } public void setClientjar ( File clientjar ) { } public void setDebug ( boolean debug ) { } public void setEjbjar ( File ejbfile ) { } public void setMode ( String s ) { } public Path createClasspath ( ) throws TaskException { } public void execute ( ) throws TaskException { } protected void executeFork ( ) throws TaskException { try { final Commandline cmd = buildCommand ( ) ; getLogger ( ) . info ( "mode<seq2seq4repair_space>:<seq2seq4repair_space>fork" ) ; getLogger ( ) . debug ( "Calling<seq2seq4repair_space>java2iiop" ) ; final Execute2 exe = new Execute2 ( ) ; setupLogger ( exe ) ; exe . setWorkingDirectory ( new File ( "." ) ) ; <START_BUG> exe . setCommandline ( cmd . getCommandline ( ) ) ; <END_BUG> exe . execute ( ) ; } catch ( Exception e ) { String msg = "Exception<seq2seq4repair_space>while<seq2seq4repair_space>calling<seq2seq4repair_space>generateclient<seq2seq4repair_space>Details:<seq2seq4repair_space>" + ( e . toString ( ) ) ; throw new TaskException ( msg , e ) ; } } private Commandline buildCommand ( ) { } protected void executeJava ( ) throws TaskException { } }

Fix:
exe . setCommandline ( cmd ) ;
Buggy code:
public class GameSummaryActivity extends Activity { private static final String TAG = "" ; private int mAssists ; private int mTwoPoints ; private int mThreePoints ; private int mPossessions ; private double mDistanceRan ; private long mDuration ; private int mShotsMade ; private int mShotsAttempted ; private String mTime ; private LatLng mFirstLocation ; private String mFirstLocationGeocodeString ; private Geocoder mGeocoder ; BasketballGame mGame ; private View mChart ; private String [ ] mLabels = new String [ ] { "Assists" , "2-Points" , "3-Points" , "" } ; @ Override public void onCreate ( Bundle savedInstanceState ) { } private void openChart ( ) { } public void onSaveClicked ( View v ) { } public void onCancelClicked ( View v ) { } public void onViewUserProfClicked ( View v ) { } private void launchUserProfile ( ) { Intent i = new Intent ( this , FriendViewActivity . class ) ; final String enteredUserName = mGame . getUsername ( ) ; Log . d ( GameSummaryActivity . TAG , ( "FUCKING<seq2seq4repair_space>USERNAME:<seq2seq4repair_space>" + enteredUserName ) ) ; final String correctUserName = ( enteredUserName . substring ( 0 , 1 ) . toLowerCase ( ) ) + ( enteredUserName . substring ( 1 , enteredUserName . length ( ) ) ) ; final Handler handler = new Handler ( Looper . getMainLooper ( ) ) ; new android . os . AsyncTask < String , Void , String > ( ) { @ Override protected String doInBackground ( String ... arg0 ) { String userLookupResponseString = CloudUtilities . getJSON ( ( ( ( ( getString ( R . string . sportstat_url ) ) + "user_id//" ) + correctUserName ) + ".json" ) ) ; Log . d ( GameSummaryActivity . TAG , userLookupResponseString ) ; try { org . json . JSONObject userJSON = new org . json . JSONObject ( userLookupResponseString ) ; if ( userJSON . has ( "status" ) ) { makeToast ( "Friend<seq2seq4repair_space>does<seq2seq4repair_space>not<seq2seq4repair_space>exist" ) ; return "failure" ; } if ( userJSON . has ( "id" ) ) { makeToast ( "Friend<seq2seq4repair_space>exists!" ) ; Intent intent = new Intent ( ".activities.FriendViewActivity" ) ; <START_BUG> intent . putExtra ( FriendViewActivity . USER_ID , ( "" + ( userJSON . getInt ( "id" ) ) ) ) ; <END_BUG> intent . putExtra ( FriendViewActivity . USERNAME , userJSON . getString ( "username" ) ) ; startActivity ( intent ) ; return "success" ; } } catch ( Exception e ) { e . printStackTrace ( ) ; } makeToast ( "Friend<seq2seq4repair_space>does<seq2seq4repair_space>not<seq2seq4repair_space>exist." ) ; return "failure" ; } private void makeToast ( final String toast ) { handler . post ( new Runnable ( ) { @ Override public void run ( ) { } } ) ; } } . execute ( ) ; } private String formatDuration ( long duration ) { } }

Fix:
intent . putExtra ( FriendViewActivity . USER_ID , userJSON . getInt ( "id" ) ) ;
Buggy code:
public class PropertyFilePrompt implements State { private ConsoleWrapper theConsole ; private StateValues stateValues ; public PropertyFilePrompt ( ConsoleWrapper theConsole , StateValues stateValues ) { } @ Override public State execute ( ) { theConsole . printf ( NEW_LINE ) ; theConsole . printf ( ROOT_LOGGER . filePrompt ( ) ) ; theConsole . printf ( NEW_LINE ) ; String temp = theConsole . readLine ( "(a):<seq2seq4repair_space>" ) ; if ( temp == null ) { theConsole . printf ( NEW_LINE ) ; return null ; } boolean setRealm = ( stateValues . getRealmMode ( ) ) != ( RealmMode . USER_SUPPLIED ) ; switch ( convertResponse ( temp ) ) { case MANAGEMENT : stateValues . setFileMode ( MANAGEMENT ) ; if ( setRealm ) { stateValues . setRealm ( AddUser . DEFAULT_MANAGEMENT_REALM ) ; } return new PropertyFileFinder ( theConsole , stateValues ) ; case APPLICATION : stateValues . setFileMode ( APPLICATION ) ; if ( setRealm ) { stateValues . setRealm ( AddUser . DEFAULT_APPLICATION_REALM ) ; } return new PropertyFileFinder ( theConsole , stateValues ) ; default : <START_BUG> return new ErrorState ( theConsole , ROOT_LOGGER . invalidChoiceResponse ( ) , this , stateValues ) ; <END_BUG> } } private PropertyFilePrompt . Option convertResponse ( final String response ) { } private enum Option { MANAGEMENT , APPLICATION , INVALID ; } }

Fix:
return new ErrorState ( theConsole , ROOT_LOGGER . invalidChoiceResponse ( ) , this ) ;
Buggy code:
public class CoreManagementResourceRegistrationUnitTestCase { private ManagementResourceRegistration rootRegistration ; private final PathElement childElement = PathElement . pathElement ( "child" ) ; private final PathElement fullChildElement = PathElement . pathElement ( "child" , "a" ) ; private final PathAddress childAddress = PathAddress . pathAddress ( childElement ) ; private final PathAddress fullChildAddress = PathAddress . pathAddress ( fullChildElement ) ; private final PathElement grandchildElement = PathElement . pathElement ( "grandchild" ) ; private final PathElement fullGrandchildElement = PathElement . pathElement ( "grandchild" , "b" ) ; private final PathAddress grandchildAddress = childAddress . append ( grandchildElement ) ; private final PathAddress fullGrandchildAddress = childAddress . append ( fullGrandchildElement ) ; @ Before public void setup ( ) { } @ Test public void testHandlersOnRootResource ( ) throws Exception { } @ Test public void testHandlersOnChildResource ( ) throws Exception { } @ Test public void testHandlerInheritance ( ) throws Exception { } @ Test public void testFlagsOnRootResource ( ) throws Exception { } @ Test public void testFlagsOnChildResource ( ) throws Exception { } @ Test public void testFlagsInheritance ( ) throws Exception { } private static class TestHandler implements OperationStepHandler { private static CoreManagementResourceRegistrationUnitTestCase . TestHandler INSTANCE = new CoreManagementResourceRegistrationUnitTestCase . TestHandler ( ) ; private static CoreManagementResourceRegistrationUnitTestCase . TestHandler ONE = new CoreManagementResourceRegistrationUnitTestCase . TestHandler ( ) ; private static CoreManagementResourceRegistrationUnitTestCase . TestHandler TWO = new CoreManagementResourceRegistrationUnitTestCase . TestHandler ( ) ; private static CoreManagementResourceRegistrationUnitTestCase . TestHandler THREE = new CoreManagementResourceRegistrationUnitTestCase . TestHandler ( ) ; private static CoreManagementResourceRegistrationUnitTestCase . TestHandler FOUR = new CoreManagementResourceRegistrationUnitTestCase . TestHandler ( ) ; private static CoreManagementResourceRegistrationUnitTestCase . TestHandler PARENT = new CoreManagementResourceRegistrationUnitTestCase . TestHandler ( ) ; private static CoreManagementResourceRegistrationUnitTestCase . TestHandler CHILD = new CoreManagementResourceRegistrationUnitTestCase . TestHandler ( ) ; private static CoreManagementResourceRegistrationUnitTestCase . TestHandler GRANDCHILD = new CoreManagementResourceRegistrationUnitTestCase . TestHandler ( ) ; @ Override public void execute ( OperationContext context , ModelNode operation ) throws OperationFailedException { <START_BUG> context . completeStep ( ) ; <END_BUG> } } private static class TestDescriptionProvider implements DescriptionProvider { private final String description ; public TestDescriptionProvider ( String description ) { } @ Override public ModelNode getModelDescription ( Locale locale ) { } } }

Fix:
context . completeStep ( NOOP_ROLLBACK_HANDLER ) ;
Buggy code:
public class Application extends Controller { public static class Login { private String userName ; private String password ; public Login ( ) { } public String getuserName ( ) { } public void setuserName ( String userName ) { } public String getPassword ( ) { } public void setPassword ( String password ) { } public String validate ( ) { } } public static Result index ( ) { } public static Result login ( ) { } @ Transactional public static Result logout ( ) { session ( ) . clear ( ) ; flash ( "success" , "You've<seq2seq4repair_space>been<seq2seq4repair_space>logged<seq2seq4repair_space>out" ) ; <START_BUG> return redirect ( routes . Application . index ( ) ) ; <END_BUG> } public static Result signUp ( ) { } @ Transactional public static Result authenticate ( ) { } public static Result preflight ( String all ) { } }

Fix:
return ok ( ) ;
Buggy code:
public class SynchronizedStatement extends Statement { public Expression expression ; public Block block ; public BlockScope scope ; boolean blockExit ; public LocalVariableBinding synchroVariable ; static final char [ ] SecretLocalDeclarationName = "<seq2seq4repair_space>syncValue" . toCharArray ( ) ; public SynchronizedStatement ( Expression expression , Block statement , int s , int e ) { } public FlowInfo analyseCode ( BlockScope currentScope , FlowContext flowContext , FlowInfo flowInfo ) { } public void generateCode ( BlockScope currentScope , CodeStream codeStream ) { } public void resolve ( BlockScope upperScope ) { scope = new BlockScope ( upperScope ) ; TypeBinding type = expression . resolveType ( scope ) ; if ( type == null ) return ; switch ( type . id ) { case TypeIds . T_boolean : case TypeIds . T_char : case TypeIds . T_float : case TypeIds . T_double : case TypeIds . T_byte : case TypeIds . T_short : case TypeIds . T_int : case TypeIds . T_long : scope . problemReporter ( ) . invalidTypeToSynchronize ( expression , type ) ; break ; case TypeIds . T_void : scope . problemReporter ( ) . illegalVoidExpression ( expression ) ; break ; case TypeIds . T_null : scope . problemReporter ( ) . invalidNullToSynchronize ( expression ) ; break ; } <START_BUG> synchroVariable = new LocalVariableBinding ( SynchronizedStatement . SecretLocalDeclarationName , type , 0 ) ; <END_BUG> scope . addLocalVariable ( synchroVariable ) ; synchroVariable . constant = NotAConstant ; expression . implicitWidening ( type , type ) ; block . resolveUsing ( scope ) ; } public String toString ( int tab ) { } public void traverse ( IAbstractSyntaxTreeVisitor visitor , BlockScope blockScope ) { } }

Fix:
synchroVariable = new LocalVariableBinding ( SynchronizedStatement . SecretLocalDeclarationName , type , AccDefault , false ) ;
Buggy code:
public class FolderCopier { private final String SPLIT_TOKEN = "<seq2seq4repair_space>><seq2seq4repair_space>" ; private final String PROPERTY_MODIFIER = "modifier.properties" ; private String SRC_FOLDER = "" ; private String DEST_FOLDER = "" ; private final String JAVASCRIPT_EXTENSION = ".js" ; private final String JS_REGEX = ".*(=|return).*\\n" ; private final Pattern JS_VALIDATION_PATTERN = Pattern . compile ( JS_REGEX ) ; private final String JS_REGEX_CONTAIN = "^.*[;\\{\\},\\)\\|\\(&]\\s*$" ; private final Pattern JS_VALID_PATTERN = Pattern . compile ( JS_REGEX_CONTAIN ) ; private List < String > EXTENSION_TO_ALTER = Arrays . asList ( ".html" , ".css" , "controller.js" , "global_var.js" ) ; private List < String [ ] > listModifyValue = new ArrayList < String [ ] > ( 10 ) ; private List < String > foldersToSkip = new ArrayList < String > ( 10 ) ; public FolderCopier ( String sourceFolder , String destFolder ) { } private String replaceSpecialChar ( String value ) { } private String trimLastChar ( String value ) { } public void execute ( ) { } public void cleanUp ( String src , String dest ) { } public void addFoldersToSkip ( String folder ) { } private boolean shouldSkip ( String fileName ) { } private void removeSubFiles ( File [ ] listFiles ) { } private void loadValueToModify ( ) { } public void createFiles ( String src , String dest ) { } private void alterCopy ( File srcFile , File destFile ) { } private String doJavascriptValidation ( String output , String fileName ) { <START_BUG> output = output . replaceAll ( "^\\s*[\\*|\\//\\*|\\*\\//].*" , "" ) ; <END_BUG> Matcher match = JS_VALIDATION_PATTERN . matcher ( output ) ; if ( ( match . matches ( ) ) && ( ! ( JS_VALID_PATTERN . matcher ( output ) . matches ( ) ) ) ) { System . err . println ( ( ( "Filename:[" + fileName ) + "]<seq2seq4repair_space>is<seq2seq4repair_space>not<seq2seq4repair_space>compiling<seq2seq4repair_space>javascript<seq2seq4repair_space>standards." ) ) ; System . out . println ( ( ( ( ( "Line<seq2seq4repair_space>character:[" + ( output . replace ( "\\n" , "" ) ) ) + "]<seq2seq4repair_space>vs<seq2seq4repair_space>regex:[" ) + ( JS_REGEX ) ) + "]" ) ) ; } return output ; } private final boolean isJavaScript ( String fileName ) { } public String doStringReplacement ( String output ) { } private String urlReplacement ( String output ) { } private boolean isScanAndAlter ( File srcFile ) { } public void directCopy ( File srcFile , File targetFile ) { } private String addFolderSlash ( String folder ) { } }

Fix:
output = output . replaceAll ( "^\\s*(\\*|\\//\\*|\\*\\//|\\//\\//).*" , "" ) ;
Buggy code:
public abstract class AbstractXtendXpandEditor extends TextEditor { private AbstractExtXptContentOutlinePage outlinePage = null ; private SearchActionGroup searchActionGroup ; private BreakpointActionGroup bpActionGroup ; private ISelectionChangedListener selectionChangedListener ; private IPropertyChangeListener preferencesChangedListener ; @ Override public void createPartControl ( Composite parent ) { } private void installSelectionChangedListener ( ) { } @ Override public void dispose ( ) { } private void uninstallSelectionChangedListener ( ) { } @ Override public void doRevertToSaved ( ) { } @ Override public void doSave ( final IProgressMonitor aMonitor ) { } @ Override public void doSaveAs ( ) { } @ Override protected void editorContextMenuAboutToShow ( final IMenuManager menu ) { } @ SuppressWarnings ( "rawtypes" ) @ Override public Object getAdapter ( final Class aRequired ) { } protected abstract AbstractExtXptContentOutlinePage createOutlinePage ( ) { } @ Override protected void createActions ( ) { super . createActions ( ) ; final ResourceBundle rb = new ResourceBundle ( ) { @ SuppressWarnings ( { "rawtypes" , "unchecked" } ) @ Override public Enumeration getKeys ( ) { return new Vector ( ) . elements ( ) ; } @ Override protected Object handleGetObject ( final String key ) { return null ; } } ; IAction a = new org . eclipse . ui . texteditor . TextOperationAction ( rb , "ContentAssistProposal." , this , ISourceViewer . CONTENTASSIST_PROPOSALS ) ; a . setActionDefinitionId ( CONTENT_ASSIST_PROPOSALS ) ; setAction ( "ContentAssistProposal" , a ) ; a = new org . eclipse . ui . texteditor . TextOperationAction ( rb , "ContentAssistTip." , this , ISourceViewer . CONTENTASSIST_CONTEXT_INFORMATION ) ; a . setActionDefinitionId ( CONTENT_ASSIST_CONTEXT_INFORMATION ) ; setAction ( "ContentAssistTip" , a ) ; <START_BUG> final OpenAction openAction = new OpenAction ( this ) ; <END_BUG> openAction . setActionDefinitionId ( OPEN_EDITOR ) ; setAction ( OPEN , openAction ) ; searchActionGroup = new SearchActionGroup ( this ) ; bpActionGroup = new BreakpointActionGroup ( this ) ; } @ Override protected void rulerContextMenuAboutToShow ( final IMenuManager menu ) { } public ISourceViewer internalGetSourceViewer ( ) { } protected void updateStatusLine ( ) { } private Annotation getAnnotation ( final int offset , final int length ) { } private boolean isProblemMarkerAnnotation ( final Annotation annotation ) { } }

Fix:
OpenAction openAction = new OpenAction ( this ) ;
Buggy code:
public class Query { public Query ( Connection connection , String queryText ) { } private Connection connection ; private Map < String , String > columnMappings ; private Map < String , Method > methodsMap ; private NamedParameterStatement statement ; private boolean caseSensitive ; public Query addParameter ( String name , Object value ) { } public Query addParameter ( String name , int value ) { } public Query addParameter ( String name , long value ) { } public Query addParameter ( String name , String value ) { } public Query addParameter ( String name , Timestamp value ) { } public Query addParameter ( String name , Date value ) { } public Query addParameter ( String name , java . util . Date value ) { } public Query addParameter ( String name , Time value ) { } public Query addParameter ( String name , DateTime value ) { } public boolean isCaseSensitive ( ) { } public Query setCaseSensitive ( boolean caseSensitive ) { } private String getSetterName ( String fieldName ) { } private String getGetterName ( String fieldName ) { } private void prepareColumnMappings ( Class objClass ) { } private Map < String , Class > mappedTypes = null ; private void prepareColumnMappingsIfNecessary ( Class objClass ) { } private void setField ( Object obj , String fieldName , Object value ) throws IllegalAccessException , NoSuchMethodException , InvocationTargetException { } private Class getValueClass ( Object value ) { } private Object instantiateIfNecessary ( Object obj , String fieldName ) throws IllegalAccessException , InstantiationException , NoSuchMethodException , InvocationTargetException { } public < T > List < T > executeAndFetch ( Class returnType ) { } public < T > T executeAndFetchFirst ( Class returnType ) { } public Connection executeUpdate ( ) { } public Object executeScalar ( ) { } public < T > List < T > executeScalarList ( ) { } public Query addToBatch ( ) { } public Connection executeBatch ( ) { } public Map < String , String > getColumnMappings ( ) { } public Query addColumnMapping ( String columnName , String fieldName ) { } private void closeConnectionIfNecessary ( ) { try { <START_BUG> if ( ( this . connection . getJdbcConnection ( ) . getAutoCommit ( ) ) && ( ( statement ) != null ) ) { <END_BUG> this . connection . getJdbcConnection ( ) . close ( ) ; statement . close ( ) ; } } catch ( Exception ex ) { throw new RuntimeException ( ex ) ; } } }

Fix:
if ( ( ( ! ( this . connection . getJdbcConnection ( ) . isClosed ( ) ) ) && ( this . connection . getJdbcConnection ( ) . getAutoCommit ( ) ) ) && ( ( statement ) != null ) ) {
Buggy code:
public class ForecastingUsingExpectationMaximization { @ Resource private HistoricalBookingCache historicalBookingCache ; public Integer getForcastedDemandAtDepartureDate ( String flightNumber , String cabinClass , DateTime departureDateTime ) { Integer forcastedDemandAtDeparture = historicalBookingCache . getBookings ( flightNumber , cabinClass , departureDateTime , 0 ) ; if ( forcastedDemandAtDeparture == null ) { <START_BUG> forcastedDemandAtDeparture = forecastDemandUsingSimpleAverageMethod ( historicalBookingCache . getBookingsAt ( 0 , flightNumber , cabinClass , departureDateTime ) ) ; <END_BUG> } return forcastedDemandAtDeparture ; } private Integer forecastDemandUsingSimpleAverageMethod ( Collection < Integer > values ) { } public int calculateDemandToCome ( String flightNumber , String cabinClass , DateTime departureDateTime , int daysBeforeDeparture ) { } }

Fix:
forcastedDemandAtDeparture = forecastDemandUsingSimpleAverageMethod ( historicalBookingCache . getBookingsAt ( 0 , flightNumber , cabinClass ) ) ;
Buggy code:
public class LoadInt extends Instruction { final int nval ; public LoadInt ( CodeBlock ins , int nval ) { } public String toString ( ) { } public void generate ( BytecodeGenerator codeEmittor , boolean debug ) { if ( ! debug ) codeEmittor . emitDebugCall ( opcode . name ( ) ) ; <START_BUG> codeEmittor . emitCallWithArgsSSI ( "insnLOADINT" , nval , debug ) ; <END_BUG> codeblock . addCode1 ( opcode . getOpcode ( ) , nval ) ; } }

Fix:
codeEmittor . emitInlineLoadInt ( nval , debug ) ;
Buggy code:
public class Util42 { public static int getTypeAsInt ( ConnectionChild connChild , SQLType sqlType ) throws SQLException { if ( sqlType instanceof JDBCType ) { int jdbcType = ( ( JDBCType ) ( sqlType ) ) . getVendorTypeNumber ( ) ; connChild . checkForSupportedDataType ( jdbcType ) ; return jdbcType ; } <START_BUG> throw connChild . newSQLException ( DATA_TYPE_NOT_SUPPORTED , sqlType . toString ( ) ) ; <END_BUG> } }

Fix:
throw connChild . newSQLException ( DATA_TYPE_NOT_SUPPORTED , sqlType ) ;
Buggy code:
public class SlimEditor extends JPanel { private Set < EditorListener > listeners = new HashSet < EditorListener > ( ) ; private SlimController controller ; private int margin = 10 ; private int lineHeight = 15 ; private boolean fixedWidth = false ; private boolean once ; private double scrollOffsetY = 0 ; private Color background = Color . white ; private Map < RenderingHints . Key , Object > renderingHints ; private int cursorLine ; private int cursorColumn ; private Set < SlimFileWrapper > filesShown = new HashSet < SlimFileWrapper > ( ) ; private int minLine ; private int maxLine ; public SlimEditor ( SlimSettings defaults , SlimController controller ) { } protected void calcLinesShown ( ) { } private void notifyListenersFilesShownChanged ( Set < SlimFileWrapper > filesShown2 ) { } public void addEditorListener ( EditorListener listener ) { } protected void clampCursor ( ) { } private void refreshRenderingHints ( ) { } @ Override protected void paintComponent ( Graphics init ) { } public SlimController getController ( ) { } public int getCusorLine ( ) { } public int getCursorColumn ( ) { } public int getCurrentMargin ( ) { } public int getLineHeight ( ) { } public int getMaxHeight ( ) { <START_BUG> return ( ( getLineHeight ( ) ) * ( getTotalNumberOfLines ( ) ) ) + ( ( getLineHeight ( ) ) * ( controller . getTotalFileCount ( ) ) ) ; <END_BUG> } private int getTotalNumberOfLines ( ) { } public boolean isFixedWidth ( ) { } }

Fix:
return ( ( getLineHeight ( ) ) * ( getTotalNumberOfLines ( ) ) ) + ( ( 2 * ( getLineHeight ( ) ) ) * ( controller . getTotalFileCount ( ) ) ) ;
Buggy code:
public class Test_org_eclipse_swt_graphics_ImageLoader extends SwtPerformanceTestCase { public Test_org_eclipse_swt_graphics_ImageLoader ( String name ) { } public static void main ( String [ ] args ) { } public void test_Constructor ( ) { <START_BUG> final int COUNT = 5000000 ; <END_BUG> PerformanceMeter meter = createMeter ( "ImageLoader<seq2seq4repair_space>constr." ) ; meter . start ( ) ; for ( int i = 0 ; i < COUNT ; i ++ ) { new ImageLoader ( ) ; } meter . stop ( ) ; disposeMeter ( meter ) ; } public void test_addImageLoaderListenerLorg_eclipse_swt_graphics_ImageLoaderListener ( ) { } public void test_hasListeners ( ) { } public void test_loadLjava_io_InputStream ( ) { } public void test_loadLjava_lang_String ( ) { } public void test_notifyListenersLorg_eclipse_swt_graphics_ImageLoaderEvent ( ) { } public void test_removeImageLoaderListenerLorg_eclipse_swt_graphics_ImageLoaderListener ( ) { } public void test_saveLjava_io_OutputStreamI ( ) { } public void test_saveLjava_lang_StringI ( ) { } public static Test suite ( ) { } public static Vector methodNames ( ) { } protected void runTest ( ) throws Throwable { } }

Fix:
final int COUNT = 25000000 ;
Buggy code:
public class AppConfigParser extends DefaultHandler { public enum Status { NONE , APPCONFIG , TITLE , AUTHOR , ENTRIES , ENTRY , VAR , FILE , DIR , FINALIZE ; } private AppConfigParser . Status status ; private SAXParser parser ; private AppConfig tempConfig ; private AppConfigFileEntry tempFileEntry ; private AppConfigVariable tempVariable ; private String platformString ; private String tempString ; private String filePath ; private boolean found = false ; public AppConfigParser ( ) { } public void startElement ( String uri , String localName , String qName , Attributes attributes ) throws SAXException { } public void characters ( char [ ] ch , int start , int length ) throws SAXException { } public void endElement ( String uri , String localName , String qName ) throws SAXException { <START_BUG> if ( ( qName . equalsIgnoreCase ( "entry" ) ) && ( found ) ) { <END_BUG> tempConfig . addFile ( tempFileEntry ) ; } else if ( ( qName . equalsIgnoreCase ( "var" ) ) && ( found ) ) { tempConfig . addVar ( tempVariable ) ; } else if ( qName . equalsIgnoreCase ( "AppConfig" ) ) { status = AppConfigParser . Status . FINALIZE ; } } public void parse ( String filePath ) { } public AppConfig getAppConfig ( ) { } }

Fix:
if ( ( ( qName . equalsIgnoreCase ( "dir" ) ) || ( qName . equalsIgnoreCase ( "file" ) ) ) && ( found ) ) {
Buggy code:
public class JChannelFactory implements ChannelFactory , ChannelListener , ProtocolStackConfigurator { private final ProtocolStackConfiguration configuration ; private final Map < Channel , String > channels = Collections . synchronizedMap ( new WeakHashMap < Channel , String > ( ) ) ; public JChannelFactory ( ProtocolStackConfiguration configuration ) { } @ Override public Channel createChannel ( String id ) throws Exception { JChannel channel = new MuxChannel ( this ) ; TP transport = channel . getProtocolStack ( ) . getTransport ( ) ; if ( transport . isSingleton ( ) ) { synchronized ( transport ) { this . init ( transport ) ; } } else { this . init ( transport ) ; } <START_BUG> channel . setName ( ( ( ( configuration . getEnvironment ( ) . getNodeName ( ) ) + "//" ) + id ) ) ; <END_BUG> TransportConfiguration transportConfiguration = this . configuration . getTransport ( ) ; if ( transportConfiguration . hasTopology ( ) ) { channel . setAddressGenerator ( new TopologyAddressGenerator ( channel , transportConfiguration . getSiteId ( ) , transportConfiguration . getRackId ( ) , transportConfiguration . getMachineId ( ) ) ) ; } MBeanServer server = this . configuration . getMBeanServer ( ) ; if ( server != null ) { try { this . channels . put ( channel , id ) ; JmxConfigurator . registerChannel ( channel , server , id ) ; } catch ( Exception e ) { JGroupsLogger . ROOT_LOGGER . warn ( e . getMessage ( ) , e ) ; } channel . addChannelListener ( this ) ; } return channel ; } private void init ( TP transport ) { } @ Override public String getProtocolStackString ( ) { } @ Override public List < ProtocolConfiguration > getProtocolStack ( ) { } private void configureBindAddress ( ProtocolConfiguration protocol , ProtocolConfiguration config , SocketBinding binding ) { } private void configureServerSocket ( ProtocolConfiguration protocol , ProtocolConfiguration config , String property , SocketBinding binding ) { } private void configureMulticastSocket ( ProtocolConfiguration protocol , ProtocolConfiguration config , String addressProperty , String portProperty , SocketBinding binding ) { } private ProtocolConfiguration createProtocol ( final ProtocolConfiguration protocolConfig ) { } private void setValue ( Protocol protocol , String property , Object value ) { } @ Override public void channelConnected ( Channel channel ) { } @ Override public void channelDisconnected ( Channel channel ) { } @ Override public void channelClosed ( Channel channel ) { } }

Fix:
channel . setName ( configuration . getEnvironment ( ) . getNodeName ( ) ) ;
Buggy code:
public class AutoSalesAggregator { private List < Vehicle > vehicles ; private List < String > errorMessages ; public AutoSalesAggregator ( List < Vehicle > vehicles ) { } public List < Aggregation > aggregate ( ) { } private List < Aggregation > collectAggregations ( Map < Manufacturer , ManufacturerAggregation > manufacturerAggs , Map < Type , TypeAggregation > typeAggs , Map < Model , ModelAggregation > modelAggs ) { } private void aggregateVehicleData ( Map < Manufacturer , ManufacturerAggregation > manufacturerAggs , Map < Type , TypeAggregation > typeAggs , Map < Model , ModelAggregation > modelAggs ) { <START_BUG> Gumshoe . get ( ) . context ( "processing<seq2seq4repair_space>vehicles" ) . start ( ) ; <END_BUG> for ( Vehicle vehicle : vehicles ) { pauseAMoment ( ) ; Gumshoe . get ( ) . context ( ) . put ( "manufacturer" , vehicle . getManufacturer ( ) ) . put ( "vehicle_type" , vehicle . getType ( ) ) . put ( "model" , vehicle . getModel ( ) ) . put ( "cost" , vehicle . getCost ( ) ) . put ( "MSRP" , vehicle . getMSRP ( ) ) . put ( "purchase_price" , vehicle . getPurchasePrice ( ) ) ; try { addToAggregation ( vehicle , manufacturerAggs . get ( vehicle . getManufacturer ( ) ) ) ; addToAggregation ( vehicle , typeAggs . get ( vehicle . getType ( ) ) ) ; addToAggregation ( vehicle , modelAggs . get ( vehicle . getModel ( ) ) ) ; Gumshoe . get ( ) . emit ( "processed_vehicle" ) ; } catch ( RuntimeException e ) { Gumshoe . get ( ) . context ( ) . put ( "error_message" , e . getMessage ( ) ) . emit ( "failed_vehicle" ) ; } } Gumshoe . get ( ) . context ( ) . finish ( ) ; } private void addToAggregation ( Vehicle vehicle , Aggregation modelAgg ) { } private void pauseAMoment ( ) { } private boolean shouldError ( ) { } private String randomErrorMessage ( ) { } private Map < Model , ModelAggregation > buildModelAggregations ( ) { } private Map < Manufacturer , ManufacturerAggregation > buildManufacturerAggregations ( ) { } private Map < Type , TypeAggregation > buildTypeAggregations ( ) { } }

Fix:
Gumshoe . get ( ) . context ( "collecting<seq2seq4repair_space>vehicle<seq2seq4repair_space>data" ) . start ( ) ;
Buggy code:
public class FormInput extends WicketExamplePage { private static final List LOCALES = Arrays . asList ( new Locale [ ] { Locale . US , new Locale ( "nl" ) } ) ; public FormInput ( ) { } public void setLocale ( Locale locale ) { } private static class InputForm extends Form { public InputForm ( String name , IFeedback feedback ) { } public void onSubmit ( ) { <START_BUG> info ( ( "Saved<seq2seq4repair_space>model<seq2seq4repair_space>" + ( getRootModelObject ( ) ) ) ) ; <END_BUG> } } }

Fix:
info ( ( "Saved<seq2seq4repair_space>model<seq2seq4repair_space>" + ( getModelObject ( ) ) ) ) ;
Buggy code:
public class ConditionGroupBuilder { private ConditionGroup group ; private ConditionGroupBuilder ( ) { } public static ConditionGroupBuilder all ( ) { } public ConditionGroupBuilder withCalendarId ( String id ) { } public ConditionGroupBuilder withCalendarIds ( ArrayList < String > ids ) { } public ConditionGroupBuilder withLeadTimeInMinutes ( int minutes ) { } public ConditionGroupBuilder ignoringAllDayEvents ( boolean ignore ) { } public ConditionGroupBuilder titleNotContainingWords ( String words ) { } public ConditionGroupBuilder titleContainingWords ( String words ) { } public ConditionGroupBuilder locationNotContainingWords ( String words ) { } public ConditionGroupBuilder locationContainingWords ( String words ) { } protected static String [ ] parseText ( String words ) { <START_BUG> if ( words . isEmpty ( ) ) { <END_BUG> return new String [ ] { "" } ; } return new ConditionGroupBuilder . Parser ( words ) . parse ( ) ; } private static class Parser { private String text ; private int position ; Parser ( String text ) { } String [ ] parse ( ) { } private String nextToken ( ) { } private void skipWhiteSpaceAndSeparator ( ) { } private boolean isWhiteSpace ( char c ) { } } public ConditionGroupBuilder withAvailability ( int status ) { } public ConditionGroup build ( ) { } }

Fix:
if ( ( words == null ) || ( "" . equals ( words ) ) ) {
Buggy code:
@ Stateless public class ToDoListDAO extends ToDoListGenericDAO { public ToDoList getForOwner ( final String ownerId ) { <START_BUG> Query query = getEntityManager ( ) . createNamedQuery ( "todolist.getForOwner" , ToDoList . class ) ; <END_BUG> query . setParameter ( "ownerId" , ownerId ) ; List < ToDoList > results = query . getResultList ( ) ; return results . isEmpty ( ) ? null : results . get ( 0 ) ; } }

Fix:
Query query = getEntityManager ( ) . createQuery ( "select<seq2seq4repair_space>T<seq2seq4repair_space>from<seq2seq4repair_space>ToDoList<seq2seq4repair_space>T<seq2seq4repair_space>where<seq2seq4repair_space>T.ownerId<seq2seq4repair_space>=<seq2seq4repair_space>:ownerId" , ToDoList . class ) ;
Buggy code:
public abstract class DefBase extends Task implements AntlibInterface { private String uri = "" ; private ClassLoader internalClassLoader ; private ClassLoader createdLoader ; private Delegate cpDelegate ; public void setURI ( String uri ) throws BuildException { if ( uri . equals ( ANT_CORE_URI ) ) { uri = "" ; } <START_BUG> if ( ( uri . startsWith ( "ant:" ) ) && ( ! ( uri . startsWith ( "antlib:" ) ) ) ) { <END_BUG> throw new BuildException ( ( "Attempt<seq2seq4repair_space>to<seq2seq4repair_space>use<seq2seq4repair_space>a<seq2seq4repair_space>reserved<seq2seq4repair_space>URI<seq2seq4repair_space>" + uri ) ) ; } this . uri = uri ; } public String getUri ( ) { } public void setAntlibClassLoader ( ClassLoader classLoader ) { } public void setReverseLoader ( boolean reverseLoader ) { } public Path getClasspath ( ) { } public boolean isReverseLoader ( ) { } public String getLoaderId ( ) { } public String getClasspathId ( ) { } public void setClasspath ( Path classpath ) { } public Path createClasspath ( ) { } public void setClasspathRef ( Reference r ) { } public void setLoaderRef ( Reference r ) { } protected ClassLoader createLoader ( ) { } public void init ( ) throws BuildException { } }

Fix:
if ( uri . startsWith ( "ant:" ) ) {
Buggy code:
public class SwitchCase extends Statement { private Expression optionalExpression = null ; private boolean expressionInitialized = false ; SwitchCase ( AST ast ) { } ASTNode clone ( AST target ) { } public boolean subtreeMatch ( ASTMatcher matcher , Object other ) { } void accept0 ( ASTVisitor visitor ) { } public Expression getExpression ( ) { if ( ! ( expressionInitialized ) ) { <START_BUG> setExpression ( new SimpleName ( getAST ( ) ) ) ; <END_BUG> } return optionalExpression ; } public void setExpression ( Expression expression ) { } public boolean isDefault ( ) { } int memSize ( ) { } int treeSize ( ) { } }

Fix:
setExpression ( null ) ;
Buggy code:
public class TarOutputStream extends FilterOutputStream { public static final int LONGFILE_ERROR = 0 ; public static final int LONGFILE_TRUNCATE = 1 ; public static final int LONGFILE_GNU = 2 ; protected boolean debug ; protected long currSize ; protected String currName ; protected long currBytes ; protected byte [ ] oneBuf ; protected byte [ ] recordBuf ; protected int assemLen ; protected byte [ ] assemBuf ; protected TarBuffer buffer ; protected int longFileMode = TarOutputStream . LONGFILE_ERROR ; private boolean closed = false ; public TarOutputStream ( OutputStream os ) { } public TarOutputStream ( OutputStream os , int blockSize ) { } public TarOutputStream ( OutputStream os , int blockSize , int recordSize ) { } public void setLongFileMode ( int longFileMode ) { } public void setDebug ( boolean debugF ) { } public void setBufferDebug ( boolean debug ) { } public void finish ( ) throws IOException { } public void close ( ) throws IOException { } public int getRecordSize ( ) { } public void putNextEntry ( TarEntry entry ) throws IOException { } public void closeEntry ( ) throws IOException { } public void write ( int b ) throws IOException { } public void write ( byte [ ] wBuf ) throws IOException { } public void write ( byte [ ] wBuf , int wOffset , int numToWrite ) throws IOException { if ( ( ( this . currBytes ) + numToWrite ) > ( this . currSize ) ) { throw new IOException ( ( ( ( ( ( ( "request<seq2seq4repair_space>to<seq2seq4repair_space>write<seq2seq4repair_space>'" + numToWrite ) + "'<seq2seq4repair_space>bytes<seq2seq4repair_space>exceeds<seq2seq4repair_space>size<seq2seq4repair_space>in<seq2seq4repair_space>header<seq2seq4repair_space>of<seq2seq4repair_space>'" ) + ( this . currSize ) ) + "'<seq2seq4repair_space>bytes<seq2seq4repair_space>for<seq2seq4repair_space>entry<seq2seq4repair_space>'" ) + ( currName ) ) + "'" ) ) ; } if ( ( this . assemLen ) > 0 ) { if ( ( ( this . assemLen ) + numToWrite ) >= ( this . recordBuf . length ) ) { int aLen = ( this . recordBuf . length ) - ( this . assemLen ) ; System . arraycopy ( this . assemBuf , 0 , this . recordBuf , 0 , this . assemLen ) ; System . arraycopy ( wBuf , wOffset , this . recordBuf , this . assemLen , aLen ) ; this . buffer . writeRecord ( this . recordBuf ) ; this . currBytes += this . recordBuf . length ; wOffset += aLen ; numToWrite -= aLen ; this . assemLen = 0 ; } else { System . arraycopy ( wBuf , wOffset , this . assemBuf , this . assemLen , numToWrite ) ; wOffset += numToWrite ; this . assemLen += numToWrite ; <START_BUG> numToWrite -= numToWrite ; <END_BUG> } } while ( numToWrite > 0 ) { if ( numToWrite < ( this . recordBuf . length ) ) { System . arraycopy ( wBuf , wOffset , this . assemBuf , this . assemLen , numToWrite ) ; this . assemLen += numToWrite ; break ; } this . buffer . writeRecord ( wBuf , wOffset ) ; int num = this . recordBuf . length ; this . currBytes += num ; numToWrite -= num ; wOffset += num ; } } private void writeEOFRecord ( ) throws IOException { } }

Fix:
numToWrite = 0 ;