SlideShare a Scribd company logo
1 of 60
Download to read offline
Using Fuzzy Code Search to Link
Code Fragments in Discussions to
          Source Code

Nicolas Bettenburg Stephen W. Thomas Ahmed E. Hassan
                          Queen’s University
              Software Analysis and Intelligence Lab (SAIL)
                       Kingston, Ontario, Canada
“Given enough eyeballs,
  all bugs are shallow.”
       Eric S. Raymond - The Cathedral and the Bazaar




                                                        2
Objective in this Study:


Which parts of the
 source code did
   developers
    discuss?


                             3
Objective in this Study:


           Which parts of the
            source code did
              developers
               discuss?
Finding Associations of Discussions with Source Code Files


                                                             3
Communication   Source Code
  Repository      Archive
                              4
Communication   Source Code
  Repository      Archive
                              4
Untitled                                                                                                12-03-15 2:55 PM



                           Untitled                                                                                             12-03-15 2:55 PM


                                             this.opt_withObsolete = opt_withObsolete;
                                      Untitled
                                      }                                                                                                    12-03-15 2:55 PM

                                      /* (non-Javadoc)
                                                    this.opt_withObsolete = opt_withObsolete;
                                        * @see main.IExperiment#getDescription()
                                             Untitled                                                                                        12-03-15 2:55 PM
                                              }
                                        */
                                      public String getDescription() {
                                              /* (non-Javadoc)
                                           String description = "We want to run an experiment all those bug
                                                             this.opt_withObsolete = opt_withObsolete;
                                                * @see main.IExperiment#getDescription()
                                                 reports.nt"
                                                       }
                                                */
                                                 + "We extract the complete stacktrace information to study fix
                                              public String getDescription() {
                                                      location and stacktrace interplay.nt";
                                                       /* (non-Javadoc)
                                                    String description = "We want to run an experiment all those bug
                                                                       this.opt_withObsolete = opt_withObsolete;
                                           return description;
                                                         * @see main.IExperiment#getDescription()
                                                          reports.nt"
                                                                 }
                                      }                  */
                                                          + "We extract the complete stacktrace information to study fix
                                                       public String getDescription() {
                                                                location and stacktrace interplay.nt";
                                                                 /* (non-Javadoc)
                                      /* (non-Javadoc) String description = "We want to run an experiment all those bug
                                                    return description;
                                                                   * @see main.IExperiment#getDescription()
                                        * @see main.IExperiment#run()
                                                                    reports.nt"
                                              }                    */
                                        */                          + "We extract the complete stacktrace information to study fix
                                                                 public String getDescription() {
                                      public boolean run() {              location and stacktrace interplay.nt";
                                              /* (non-Javadoc) String description = "We want to run an experiment all those bug
                                           final boolean return = Main.isCli_withDebugMessages();
                                                               DEBUG description;
                                                * @see main.IExperiment#run()reports.nt"
                                                       }
                                                */                           + "We extract the complete stacktrace information to study fix
                                           // Select an appropriate database name on the server depending on the
                                              public boolean run() {             location and stacktrace interplay.nt";
                                                 project demanded via command line options
                                                       /* (non-Javadoc)
                                                    final boolean return = Main.isCli_withDebugMessages();
                                                                         DEBUG description;
                                           String dbName = "";
                                                         * @see main.IExperiment#run()
                                                                 }
                                           if (Main.getCli_project().equalsIgnoreCase("eclipse"))
                                                         */
                                                    // Select an appropriate database name on the server depending on the
                                                 dbName = "eclipse-december-2007";
                                                       public boolean run() {
                                                          project demanded via command line options
                                                                 /* (non-Javadoc)
                                           else {            final boolean DEBUG = Main.isCli_withDebugMessages();
                                                    String dbName = "";
                                                                   * @see main.IExperiment#run()
                                                 System.out.println("We currently only support the Eclipse database
                                                    if (Main.getCli_project().equalsIgnoreCase("eclipse"))
                                                                   */
                                                      !"); // Select an appropriate database name on the server depending on the
                                                          dbName = "eclipse-december-2007";
                                                                 public boolean run() {
                                                 System.exit(0);    project demanded via command line options
                                                    else {             final boolean DEBUG = Main.isCli_withDebugMessages();
                                           }                 String dbName = "";
                                                          System.out.println("We currently only support the Eclipse database
                                                             if (Main.getCli_project().equalsIgnoreCase("eclipse"))
                                                                !"); // Select an appropriate database name on the server depending on the
                                                                    dbName = "eclipse-december-2007";
                                                          System.exit(0);    project demanded via command line options
                                           // Create the else {Database Connection
                                                    }                  String dbName = "";
                                           DatabaseConnector System.out.println("We currently only support the Eclipse database
                                                                     dbc = new DatabaseConnector(Main.getCli_dbHost(),
                                                                       if (Main.getCli_project().equalsIgnoreCase("eclipse"))
                                                 Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);
                                                                          !");
                                                                             dbName = "eclipse-december-2007";
                                           dbc.initialize(); System.exit(0);
                                                    // Create the else { Database Connection
                                           if (!dbc.connect()) {
                                                             }
                                                    DatabaseConnector System.out.println("We currently only support the Eclipse database
                                                                              dbc = new DatabaseConnector(Main.getCli_dbHost(),
                                                 System.out.println("Could not connect to database. Check host, port
                                                          Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);
                                                                                 !");
                                                      , username and password.");
                                                    dbc.initialize(); System.exit(0);
                                                 System.exit(1);
                                                             // Create the Database Connection
                                                    if (!dbc.connect()) {
                                                                       }
                                           }                 DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(),
                                                          System.out.println("Could not connect to database. Check host, port
                                                                    Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);
                                                                , username and password.");
                                           // Fetch a number of Bug Report unique IDs belonging to the following
                                                             dbc.initialize();
                                                          System.exit(1);
                                                                       // Create the Database Connection
                                                 query       if (!dbc.connect()) {
                                                    }                  DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(),
                                           String setSelectionQuery = "SELECT DISTINCT not connect to database. Check host, port
                                                                    System.out.println("Could bug_id FROM bugzilla_bugs
                                                                             Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);
                                                 WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC
                                                                          , username and password.");
                                                    // Fetch a number of Bug Report unique IDs belonging to the following
                                                                       dbc.initialize();
                                                 LIMIT " + Main.getCli_amount();
                                                                    System.exit(1);
                                                          query        if (!dbc.connect()) {
                                           int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);
                                                             }
                                                    String setSelectionQuery = "SELECT DISTINCT not connect to database. Check host, port
                                                                             System.out.println("Could bug_id FROM bugzilla_bugs
                                           int lastID = bugIDs[bugIDs.length -1];
                                                          WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC
                                                                                 , username and password.");
                                                             // Fetch a number of Bug Report unique IDs belonging to the following
                                                          LIMIT " + Main.getCli_amount();
                                                                             System.exit(1);
                                           if (DEBUG)               query
                                                    int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);
                                                                       }
                                                 System.out.println("* Attempting to fetch " + bugIDs.length + " bugzilla_bugs
                                                             String setSelectionQuery = "SELECT DISTINCT bug_id FROM
                                                    int lastID = bugIDs[bugIDs.length -1];
                                                      reports from " + Main.getCli_dbHost() + " starting +with ID " BY bug_id ASC
                                                                    WHERE bug_id > " + Main.getCli_startID()      " ORDER +
                                                                       // Fetch a number of Bug Report unique IDs belonging to the following
                                                      Main.getCli_startID());
                                                                    LIMIT " + Main.getCli_amount();
                                                    if (DEBUG)               query
                                                             int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);
                                                          System.out.println("* Attempting to fetch " + bugIDs.length + " bugzilla_bugs
                                                                       String setSelectionQuery = "SELECT DISTINCT bug_id FROM
                                           // Collect the bug reports bugIDs[bugIDs.length -1];up to 100 parallel
                                                             int lastID = from the database using
                                                                reports from " + Main.getCli_dbHost() + " starting +with ID " BY bug_id ASC
                                                                             WHERE bug_id > " + Main.getCli_startID()    " ORDER +
                                                 threads.
                                                                Main.getCli_startID());
                                                                             LIMIT " + Main.getCli_amount();
                                                             if (DEBUG)
                                                                       int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);
                                                                    System.out.println("* Attempting to fetch " + bugIDs.length + "
                                                    // Collect the bug reports bugIDs[bugIDs.length -1];up to 100 parallel
                                                                       int lastID = from the database using
                                                                          reports from " + Main.getCli_dbHost() + " starting with ID " +
                                                          threads.
                                                                          Main.getCli_startID());
                                                                       if (DEBUG)
                                                                             System.out.println("* Attempting to fetch " + bugIDs.length + "
                                                             // Collect the bug reports from the database using up to 100Page 2 of 4
                                                                                                                                parallel
                                                                                 reports from " + Main.getCli_dbHost() + " starting with ID " +
                                                                    threads.
                                                                                 Main.getCli_startID());

                                                                // Collect the bug reports from the database using up to 100Page 2 of 4
                                                                                                                             parallel
                                                                    threads.


                                                                                                                                                Page 2 of 4



                                                                                                                                                        Page 2 of 4




Communication                                                                          Source Code
  Repository                                                                             Archive
                                                                                                                                                                      4
Untitled                                                                                                12-03-15 2:55 PM



                                          Untitled                                                                                             12-03-15 2:55 PM


                                                            this.opt_withObsolete = opt_withObsolete;
                                                     Untitled
                                                     }                                                                                                    12-03-15 2:55 PM

                                                     /* (non-Javadoc)
                                                                   this.opt_withObsolete = opt_withObsolete;
                                                       * @see main.IExperiment#getDescription()
                                                            Untitled                                                                                        12-03-15 2:55 PM
                                                             }
                                                       */
                                                     public String getDescription() {
                                                             /* (non-Javadoc)
                                                          String description = "We want to run an experiment all those bug
                                                                            this.opt_withObsolete = opt_withObsolete;
                                                               * @see main.IExperiment#getDescription()
                                                                reports.nt"
                                                                      }
                                                               */
                                                                + "We extract the complete stacktrace information to study fix
                                                             public String getDescription() {
                                                                     location and stacktrace interplay.nt";
                                                                      /* (non-Javadoc)
                                                                   String description = "We want to run an experiment all those bug
                                                                                      this.opt_withObsolete = opt_withObsolete;
                                                          return description;
                                                                        * @see main.IExperiment#getDescription()
                                                                         reports.nt"
                                                                                }
                                                     }                  */
                                                                         + "We extract the complete stacktrace information to study fix
                                                                      public String getDescription() {
                                                                               location and stacktrace interplay.nt";
                                                                                /* (non-Javadoc)
                                                     /* (non-Javadoc) String description = "We want to run an experiment all those bug
                                                                   return description;
                                                                                  * @see main.IExperiment#getDescription()
                                                       * @see main.IExperiment#run()
                                                                                   reports.nt"
                                                             }                    */
                                                       */                          + "We extract the complete stacktrace information to study fix
                                                                                public String getDescription() {
                                                     public boolean run() {              location and stacktrace interplay.nt";
                                                             /* (non-Javadoc) String description = "We want to run an experiment all those bug
                                                          final boolean return = Main.isCli_withDebugMessages();
                                                                              DEBUG description;
                                                               * @see main.IExperiment#run()reports.nt"
                                                                      }
                                                               */                           + "We extract the complete stacktrace information to study fix
                                                          // Select an appropriate database name on the server depending on the
                                                             public boolean run() {             location and stacktrace interplay.nt";
                                                                project demanded via command line options
                                                                      /* (non-Javadoc)




                Traceability
                                                                   final boolean return = Main.isCli_withDebugMessages();
                                                                                        DEBUG description;
                                                          String dbName = "";
                                                                        * @see main.IExperiment#run()
                                                                                }
                                                          if (Main.getCli_project().equalsIgnoreCase("eclipse"))
                                                                        */
                                                                   // Select an appropriate database name on the server depending on the
                                                                dbName = "eclipse-december-2007";
                                                                      public boolean run() {
                                                                         project demanded via command line options
                                                                                /* (non-Javadoc)
                                                          else {            final boolean DEBUG = Main.isCli_withDebugMessages();
                                                                   String dbName = "";
                                                                                  * @see main.IExperiment#run()
                                                                System.out.println("We currently only support the Eclipse database
                                                                   if (Main.getCli_project().equalsIgnoreCase("eclipse"))
                                                                                  */
                                                                     !"); // Select an appropriate database name on the server depending on the
                                                                         dbName = "eclipse-december-2007";
                                                                                public boolean run() {
                                                                System.exit(0);    project demanded via command line options
                                                                   else {             final boolean DEBUG = Main.isCli_withDebugMessages();
                                                          }                 String dbName = "";
                                                                         System.out.println("We currently only support the Eclipse database
                                                                            if (Main.getCli_project().equalsIgnoreCase("eclipse"))
                                                                               !"); // Select an appropriate database name on the server depending on the
                                                                                   dbName = "eclipse-december-2007";
                                                                         System.exit(0);    project demanded via command line options
                                                          // Create the else {Database Connection
                                                                   }                  String dbName = "";
                                                          DatabaseConnector System.out.println("We currently only support the Eclipse database
                                                                                    dbc = new DatabaseConnector(Main.getCli_dbHost(),
                                                                                      if (Main.getCli_project().equalsIgnoreCase("eclipse"))
                                                                Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);
                                                                                         !");
                                                                                            dbName = "eclipse-december-2007";
                                                          dbc.initialize(); System.exit(0);
                                                                   // Create the else { Database Connection
                                                          if (!dbc.connect()) {
                                                                            }
                                                                   DatabaseConnector System.out.println("We currently only support the Eclipse database
                                                                                             dbc = new DatabaseConnector(Main.getCli_dbHost(),
                                                                System.out.println("Could not connect to database. Check host, port
                                                                         Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);
                                                                                                !");
                                                                     , username and password.");
                                                                   dbc.initialize(); System.exit(0);




                   Links
                                                                System.exit(1);
                                                                            // Create the Database Connection
                                                                   if (!dbc.connect()) {
                                                                                      }
                                                          }                 DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(),
                                                                         System.out.println("Could not connect to database. Check host, port
                                                                                   Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);
                                                                               , username and password.");
                                                          // Fetch a number of Bug Report unique IDs belonging to the following
                                                                            dbc.initialize();
                                                                         System.exit(1);
                                                                                      // Create the Database Connection
                                                                query       if (!dbc.connect()) {
                                                                   }                  DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(),
                                                          String setSelectionQuery = "SELECT DISTINCT not connect to database. Check host, port
                                                                                   System.out.println("Could bug_id FROM bugzilla_bugs
                                                                                            Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);
                                                                WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC
                                                                                         , username and password.");
                                                                   // Fetch a number of Bug Report unique IDs belonging to the following
                                                                                      dbc.initialize();
                                                                LIMIT " + Main.getCli_amount();
                                                                                   System.exit(1);
                                                                         query        if (!dbc.connect()) {
                                                          int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);
                                                                            }
                                                                   String setSelectionQuery = "SELECT DISTINCT not connect to database. Check host, port
                                                                                            System.out.println("Could bug_id FROM bugzilla_bugs
                                                          int lastID = bugIDs[bugIDs.length -1];
                                                                         WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC
                                                                                                , username and password.");
                                                                            // Fetch a number of Bug Report unique IDs belonging to the following
                                                                         LIMIT " + Main.getCli_amount();
                                                                                            System.exit(1);
                                                          if (DEBUG)               query
                                                                   int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);
                                                                                      }
                                                                System.out.println("* Attempting to fetch " + bugIDs.length + " bugzilla_bugs
                                                                            String setSelectionQuery = "SELECT DISTINCT bug_id FROM
                                                                   int lastID = bugIDs[bugIDs.length -1];
                                                                     reports from " + Main.getCli_dbHost() + " starting +with ID " BY bug_id ASC
                                                                                   WHERE bug_id > " + Main.getCli_startID()      " ORDER +
                                                                                      // Fetch a number of Bug Report unique IDs belonging to the following
                                                                     Main.getCli_startID());
                                                                                   LIMIT " + Main.getCli_amount();
                                                                   if (DEBUG)               query
                                                                            int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);
                                                                         System.out.println("* Attempting to fetch " + bugIDs.length + " bugzilla_bugs
                                                                                      String setSelectionQuery = "SELECT DISTINCT bug_id FROM
                                                          // Collect the bug reports bugIDs[bugIDs.length -1];up to 100 parallel
                                                                            int lastID = from the database using
                                                                               reports from " + Main.getCli_dbHost() + " starting +with ID " BY bug_id ASC
                                                                                            WHERE bug_id > " + Main.getCli_startID()    " ORDER +
                                                                threads.
                                                                               Main.getCli_startID());
                                                                                            LIMIT " + Main.getCli_amount();
                                                                            if (DEBUG)
                                                                                      int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);
                                                                                   System.out.println("* Attempting to fetch " + bugIDs.length + "
                                                                   // Collect the bug reports bugIDs[bugIDs.length -1];up to 100 parallel
                                                                                      int lastID = from the database using
                                                                                         reports from " + Main.getCli_dbHost() + " starting with ID " +
                                                                         threads.
                                                                                         Main.getCli_startID());
                                                                                      if (DEBUG)
                                                                                            System.out.println("* Attempting to fetch " + bugIDs.length + "
                                                                            // Collect the bug reports from the database using up to 100Page 2 of 4
                                                                                                                                               parallel
                                                                                                reports from " + Main.getCli_dbHost() + " starting with ID " +
                                                                                   threads.
                                                                                                Main.getCli_startID());

                                                                               // Collect the bug reports from the database using up to 100Page 2 of 4
                                                                                                                                            parallel
                                                                                   threads.


                                                                                                                                                               Page 2 of 4



                                                                                                                                                                       Page 2 of 4




Communication                                                                                         Source Code
  Repository                                                                                            Archive
                                                                                                                                                                                     4
5
5
org.eclipse.swt/Eclipse_SWT/win32/org/eclipse/swt/widgets/Button.java


                                                                   5
3   Approaches in the Past

         Change Log Analysis

         Information Retrieval

         Lightweight Textual Analysis


                                        6
Change Log Analysis




                                                                                                                                                Untitled                                                                                    12-03-15 2:55 PM




                                                                                                                                                                   this.opt_withObsolete = opt_withObsolete;
                                                                                                                                                               }

                                                                                                                                                               /* (non-Javadoc)
                                                                                                                                                                 * @see main.IExperiment#getDescription()
                                                                                                                                                                 */
                                                                                                                                                               public String getDescription() {
                                                                                                                                                                    String description = "We want to run an experiment all those bug
                                                                                                                                                                        reports.nt"
                                                                                                                                                                        + "We extract the complete stacktrace information to study fix
                                                                                                                                                                            location and stacktrace interplay.nt";
                                                                                                                                                                    return description;
                                                                                                                                                               }

                                                                                                                                                               /* (non-Javadoc)
                                                                                                                                                                * @see main.IExperiment#run()




                                                                                                                                                                                                                                                               LUCENE-2297: allow reader
                                                                                                                                                                */
                                                                                                                                                               public boolean run() {
                                                                                                                                                                   final boolean DEBUG = Main.isCli_withDebugMessages();

                                                                                                                                                                   // Select an appropriate database name on the server depending on the
                                                                     Untitled                                                                               12-03-15 2:55project demanded via command line options
                                                                                                                                                                          PM
                                                                                                                                                                   String dbName = "";
                                                                                                                                                                   if (Main.getCli_project().equalsIgnoreCase("eclipse"))
                                                                                                                                                                         dbName = "eclipse-december-2007";
                                                                                                                                                                   else {
                                                                                                                                                                         System.out.println("We currently only support the Eclipse database
                                                                                                                                                                             !");
                                                                                      this.opt_withObsolete = opt_withObsolete;                                          System.exit(0);
                                                                                  }                                                                                }
                                                                                  /* (non-Javadoc)
                                                                                    * @see main.IExperiment#getDescription()                                       // Create the Database Connection
                                                                                    */                                                                             DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(),
                                                                                  public String getDescription() {                                                     Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);
                                                                                       String description = "We want to run an experiment all those bug            dbc.initialize();
                                                                                           reports.nt"                                                           if (!dbc.connect()) {




                                                                                                                                                                                                                                                               pooling to be enabled (through
                                                                                           + "We extract the complete stacktrace information to study fix              System.out.println("Could not connect to database. Check host, port
                                                                                               location and stacktrace interplay.nt";                                    , username and password.");
                                                                                       return description;                                                             System.exit(1);
                                                                                  }                                                                                }
                                                                                  /* (non-Javadoc)                                                                 // Fetch a number of Bug Report unique IDs belonging to the following
                                                                                   * @see main.IExperiment#run()                                                       query
                                                                                   */                                                                              String setSelectionQuery = "SELECT DISTINCT bug_id FROM bugzilla_bugs
                                                                                  public boolean run() {                                                               WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC
                                                                                      final boolean DEBUG = Main.isCli_withDebugMessages();                            LIMIT " + Main.getCli_amount();
                                                                                                                                                                   int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);
                                                                                      // Select an appropriate database name on the server depending on the        int lastID = bugIDs[bugIDs.length -1];
                                                                                          project demanded via command line options
                                                                                      String dbName = "";                                                          if (DEBUG)
                                                                                      if (Main.getCli_project().equalsIgnoreCase("eclipse"))                           System.out.println("* Attempting to fetch " + bugIDs.length + "
                                                                                          dbName = "eclipse-december-2007";                                                reports from " + Main.getCli_dbHost() + " starting with ID " +
                                                                                      else {                                                                               Main.getCli_startID());
                                                                                          System.out.println("We currently only support the Eclipse database
                                                                                              !");                                                                 // Collect the bug reports from the database using up to 100 parallel
                                                                                          System.exit(0);                                                              threads.
                                                                                      }




                                                                                                                                                                                                                                                               IndexWriterConfig) even if
              Untitled                                                                // Create the DatabasePM
                                                                                                 12-03-15 2:55 Connection
                                                                                                                               Untitled
                                                                                      DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(),                                                                12-03-15 2:55 PM
                                                                                          Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);
                                                                                      dbc.initialize();                                                                                                                                          Page 2 of 4
                                                                                      if (!dbc.connect()) {
                                                                                          System.out.println("Could not connect to database. Check host, port
                             this.opt_withObsolete = opt_withObsolete;                        , username and password.");
                         }                                                                System.exit(1);                                        this.opt_withObsolete = opt_withObsolete;
                                                                                      }                                                      }
                         /* (non-Javadoc)
                           * @see main.IExperiment#getDescription()                    // Fetch a number of Bug Report unique IDs belonging to the following
                                                                                                                                              /* (non-Javadoc)
                           */                                                              query                                                * @see main.IExperiment#getDescription()
                         public String getDescription() {                              String setSelectionQuery = "SELECT DISTINCT bug_id FROM */bugzilla_bugs
                                                                                           WHERE bug_id > " + Main.getCli_startID() + " ORDER public String getDescription() {
                              String description = "We want to run an experiment all those bug                                                 BY bug_id ASC
                                  reports.nt"                                            LIMIT " + Main.getCli_amount();                         String description = "We want to run an experiment all those bug
                                                                                       int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);
                                  + "We extract the complete stacktrace information to study fix                                                       reports.nt"
                                      location and stacktrace interplay.nt";         int lastID = bugIDs[bugIDs.length -1];                          + "We extract the complete stacktrace information to study fix
                              return description;                                                                                                          location and stacktrace interplay.nt";
                                                                                       if (DEBUG)




                                                                                                                                                                                                                                                               you're not pulling NRT reader.
                         }                                                                                                                         return description;
                                                                                           System.out.println("* Attempting to fetch " + bugIDs.length + "
                                                                                                                                              }
                         /* (non-Javadoc)                                                      reports from " + Main.getCli_dbHost() + " starting with ID " +
                           * @see main.IExperiment#run()                                       Main.getCli_startID());                        /* (non-Javadoc)
                           */                                                                                                                   * @see main.IExperiment#run()
                         public boolean run() {                                        // Collect the bug reports from the database using up to 100 parallel
                                                                                                                                                */
                              final boolean DEBUG = Main.isCli_withDebugMessages();        threads.                                           public boolean run() {
                                                                                                                                                   final boolean DEBUG = Main.isCli_withDebugMessages();
                              // Select an appropriate database name on the server depending on the
                                  project demanded via command line options                                                                        // Select an appropriate database name on the server depending on the
                              String dbName = "";                                                                                                      project demanded via command line options
                              if (Main.getCli_project().equalsIgnoreCase("eclipse"))                                                               String dbName = "";
                                  dbName = "eclipse-december-2007";                                                                                if (Main.getCli_project().equalsIgnoreCase("eclipse"))
                                                                                                                                                                 Page 2 of 4
                              else {                                                                                                                   dbName = "eclipse-december-2007";
                                  System.out.println("We currently only support the Eclipse database                                               else {
                                      !");                                                                                                             System.out.println("We currently only support the Eclipse database
                                  System.exit(0);                                                                                                          !");
                              }                                                                                                                        System.exit(0);
                                                                                                                                                   }

                             // Create the Database Connection
                             DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(),                                                  // Create the Database Connection
                                 Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);                                                             DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(),
                             dbc.initialize();                                                                                                        Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);
                             if (!dbc.connect()) {                                                                                                dbc.initialize();
                                 System.out.println("Could not connect to database. Check host, port                                              if (!dbc.connect()) {
                                     , username and password.");                                                                                      System.out.println("Could not connect to database. Check host, port
                                 System.exit(1);                                                                                                          , username and password.");
                             }                                                                                                                        System.exit(1);
                                                                                                                                                  }
                             // Fetch a number of Bug Report unique IDs belonging to the following
                                 query                                                                                                            // Fetch a number of Bug Report unique IDs belonging to the following
                             String setSelectionQuery = "SELECT DISTINCT bug_id FROM bugzilla_bugs                                                    query
                                 WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC                                                 String setSelectionQuery = "SELECT DISTINCT bug_id FROM bugzilla_bugs
                                 LIMIT " + Main.getCli_amount();                                                                                      WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC
                             int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);                                                                   LIMIT " + Main.getCli_amount();
                             int lastID = bugIDs[bugIDs.length -1];                                                                               int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);
                                                                                                                                                  int lastID = bugIDs[bugIDs.length -1];
                             if (DEBUG)
                                 System.out.println("* Attempting to fetch " + bugIDs.length + "                                                  if (DEBUG)
                                     reports from " + Main.getCli_dbHost() + " starting with ID " +                                                   System.out.println("* Attempting to fetch " + bugIDs.length + "
                                     Main.getCli_startID());                                                                                              reports from " + Main.getCli_dbHost() + " starting with ID " +
                                                                                                                                                          Main.getCli_startID());
                             // Collect the bug reports from the database using up to 100 parallel
                                 threads.                                                                                                         // Collect the bug reports from the database using up to 100 parallel
                                                                                                                                                      threads.




    SVN
                                                                                                       Page 2 of 4
                                                                                                                                                                                                                              Page 2 of 4




                                                                                                                                                                                                                                                                                                7
Change Log Analysis




                                                                                                                                                Untitled                                                                                    12-03-15 2:55 PM




                                                                                                                                                                   this.opt_withObsolete = opt_withObsolete;
                                                                                                                                                               }

                                                                                                                                                               /* (non-Javadoc)
                                                                                                                                                                 * @see main.IExperiment#getDescription()
                                                                                                                                                                 */
                                                                                                                                                               public String getDescription() {
                                                                                                                                                                    String description = "We want to run an experiment all those bug
                                                                                                                                                                        reports.nt"
                                                                                                                                                                        + "We extract the complete stacktrace information to study fix
                                                                                                                                                                            location and stacktrace interplay.nt";
                                                                                                                                                                    return description;
                                                                                                                                                               }

                                                                                                                                                               /* (non-Javadoc)
                                                                                                                                                                * @see main.IExperiment#run()




                                                                                                                                                                                                                                                               LUCENE-2297: allow reader
                                                                                                                                                                */
                                                                                                                                                               public boolean run() {
                                                                                                                                                                   final boolean DEBUG = Main.isCli_withDebugMessages();

                                                                                                                                                                   // Select an appropriate database name on the server depending on the
                                                                     Untitled                                                                               12-03-15 2:55project demanded via command line options
                                                                                                                                                                          PM
                                                                                                                                                                   String dbName = "";
                                                                                                                                                                   if (Main.getCli_project().equalsIgnoreCase("eclipse"))
                                                                                                                                                                         dbName = "eclipse-december-2007";
                                                                                                                                                                   else {
                                                                                                                                                                         System.out.println("We currently only support the Eclipse database
                                                                                                                                                                             !");
                                                                                      this.opt_withObsolete = opt_withObsolete;                                          System.exit(0);
                                                                                  }                                                                                }
                                                                                  /* (non-Javadoc)
                                                                                    * @see main.IExperiment#getDescription()                                       // Create the Database Connection
                                                                                    */                                                                             DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(),
                                                                                  public String getDescription() {                                                     Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);
                                                                                       String description = "We want to run an experiment all those bug            dbc.initialize();
                                                                                           reports.nt"                                                           if (!dbc.connect()) {




                                                                                                                                                                                                                                                               pooling to be enabled (through
                                                                                           + "We extract the complete stacktrace information to study fix              System.out.println("Could not connect to database. Check host, port
                                                                                               location and stacktrace interplay.nt";                                    , username and password.");
                                                                                       return description;                                                             System.exit(1);
                                                                                  }                                                                                }
                                                                                  /* (non-Javadoc)                                                                 // Fetch a number of Bug Report unique IDs belonging to the following
                                                                                   * @see main.IExperiment#run()                                                       query
                                                                                   */                                                                              String setSelectionQuery = "SELECT DISTINCT bug_id FROM bugzilla_bugs
                                                                                  public boolean run() {                                                               WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC
                                                                                      final boolean DEBUG = Main.isCli_withDebugMessages();                            LIMIT " + Main.getCli_amount();
                                                                                                                                                                   int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);
                                                                                      // Select an appropriate database name on the server depending on the        int lastID = bugIDs[bugIDs.length -1];
                                                                                          project demanded via command line options
                                                                                      String dbName = "";                                                          if (DEBUG)
                                                                                      if (Main.getCli_project().equalsIgnoreCase("eclipse"))                           System.out.println("* Attempting to fetch " + bugIDs.length + "
                                                                                          dbName = "eclipse-december-2007";                                                reports from " + Main.getCli_dbHost() + " starting with ID " +
                                                                                      else {                                                                               Main.getCli_startID());
                                                                                          System.out.println("We currently only support the Eclipse database
                                                                                              !");                                                                 // Collect the bug reports from the database using up to 100 parallel
                                                                                          System.exit(0);                                                              threads.
                                                                                      }




                                                                                                                                                                                                                                                               IndexWriterConfig) even if
              Untitled                                                                // Create the DatabasePM
                                                                                                 12-03-15 2:55 Connection
                                                                                                                               Untitled
                                                                                      DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(),                                                                12-03-15 2:55 PM
                                                                                          Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);
                                                                                      dbc.initialize();                                                                                                                                          Page 2 of 4
                                                                                      if (!dbc.connect()) {
                                                                                          System.out.println("Could not connect to database. Check host, port
                             this.opt_withObsolete = opt_withObsolete;                        , username and password.");
                         }                                                                System.exit(1);                                        this.opt_withObsolete = opt_withObsolete;
                                                                                      }                                                      }
                         /* (non-Javadoc)
                           * @see main.IExperiment#getDescription()                    // Fetch a number of Bug Report unique IDs belonging to the following
                                                                                                                                              /* (non-Javadoc)
                           */                                                              query                                                * @see main.IExperiment#getDescription()
                         public String getDescription() {                              String setSelectionQuery = "SELECT DISTINCT bug_id FROM */bugzilla_bugs
                                                                                           WHERE bug_id > " + Main.getCli_startID() + " ORDER public String getDescription() {
                              String description = "We want to run an experiment all those bug                                                 BY bug_id ASC
                                  reports.nt"                                            LIMIT " + Main.getCli_amount();                         String description = "We want to run an experiment all those bug
                                                                                       int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);
                                  + "We extract the complete stacktrace information to study fix                                                       reports.nt"
                                      location and stacktrace interplay.nt";         int lastID = bugIDs[bugIDs.length -1];                          + "We extract the complete stacktrace information to study fix
                              return description;                                                                                                          location and stacktrace interplay.nt";
                                                                                       if (DEBUG)




                                                                                                                                                                                                                                                               you're not pulling NRT reader.
                         }                                                                                                                         return description;
                                                                                           System.out.println("* Attempting to fetch " + bugIDs.length + "
                                                                                                                                              }
                         /* (non-Javadoc)                                                      reports from " + Main.getCli_dbHost() + " starting with ID " +
                           * @see main.IExperiment#run()                                       Main.getCli_startID());                        /* (non-Javadoc)
                           */                                                                                                                   * @see main.IExperiment#run()
                         public boolean run() {                                        // Collect the bug reports from the database using up to 100 parallel
                                                                                                                                                */
                              final boolean DEBUG = Main.isCli_withDebugMessages();        threads.                                           public boolean run() {
                                                                                                                                                   final boolean DEBUG = Main.isCli_withDebugMessages();
                              // Select an appropriate database name on the server depending on the
                                  project demanded via command line options                                                                        // Select an appropriate database name on the server depending on the
                              String dbName = "";                                                                                                      project demanded via command line options
                              if (Main.getCli_project().equalsIgnoreCase("eclipse"))                                                               String dbName = "";
                                  dbName = "eclipse-december-2007";                                                                                if (Main.getCli_project().equalsIgnoreCase("eclipse"))
                                                                                                                                                                 Page 2 of 4
                              else {                                                                                                                   dbName = "eclipse-december-2007";
                                  System.out.println("We currently only support the Eclipse database                                               else {
                                      !");                                                                                                             System.out.println("We currently only support the Eclipse database
                                  System.exit(0);                                                                                                          !");
                              }                                                                                                                        System.exit(0);
                                                                                                                                                   }

                             // Create the Database Connection
                             DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(),                                                  // Create the Database Connection
                                 Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);                                                             DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(),
                             dbc.initialize();                                                                                                        Main.getCli_dbUser(), Main.getCli_dbPass(), dbName);
                             if (!dbc.connect()) {                                                                                                dbc.initialize();
                                 System.out.println("Could not connect to database. Check host, port                                              if (!dbc.connect()) {
                                     , username and password.");                                                                                      System.out.println("Could not connect to database. Check host, port
                                 System.exit(1);                                                                                                          , username and password.");
                             }                                                                                                                        System.exit(1);
                                                                                                                                                  }
                             // Fetch a number of Bug Report unique IDs belonging to the following
                                 query                                                                                                            // Fetch a number of Bug Report unique IDs belonging to the following
                             String setSelectionQuery = "SELECT DISTINCT bug_id FROM bugzilla_bugs                                                    query
                                 WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC                                                 String setSelectionQuery = "SELECT DISTINCT bug_id FROM bugzilla_bugs
                                 LIMIT " + Main.getCli_amount();                                                                                      WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC
                             int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);                                                                   LIMIT " + Main.getCli_amount();
                             int lastID = bugIDs[bugIDs.length -1];                                                                               int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery);
                                                                                                                                                  int lastID = bugIDs[bugIDs.length -1];
                             if (DEBUG)
                                 System.out.println("* Attempting to fetch " + bugIDs.length + "                                                  if (DEBUG)
                                     reports from " + Main.getCli_dbHost() + " starting with ID " +                                                   System.out.println("* Attempting to fetch " + bugIDs.length + "
                                     Main.getCli_startID());                                                                                              reports from " + Main.getCli_dbHost() + " starting with ID " +
                                                                                                                                                          Main.getCli_startID());
                             // Collect the bug reports from the database using up to 100 parallel
                                 threads.                                                                                                         // Collect the bug reports from the database using up to 100 parallel
                                                                                                                                                      threads.




    SVN
                                                                                                       Page 2 of 4
                                                                                                                                                                                                                              Page 2 of 4




                                                                                                                                                                                                                                                                                                7
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code
Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code

More Related Content

What's hot

Nhibernate Part 2
Nhibernate   Part 2Nhibernate   Part 2
Nhibernate Part 2
guest075fec
 
Executing Sql Commands
Executing Sql CommandsExecuting Sql Commands
Executing Sql Commands
leminhvuong
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoin
knight1128
 
Test-driven development for TYPO3 (T3DD11)
Test-driven development for TYPO3 (T3DD11)Test-driven development for TYPO3 (T3DD11)
Test-driven development for TYPO3 (T3DD11)
Oliver Klee
 
Unit Testing Standards - Recommended Best Practices
Unit Testing Standards - Recommended Best PracticesUnit Testing Standards - Recommended Best Practices
Unit Testing Standards - Recommended Best Practices
Vitaliy Kulikov
 

What's hot (20)

Java Persistence API
Java Persistence APIJava Persistence API
Java Persistence API
 
Sqlapi0.1
Sqlapi0.1Sqlapi0.1
Sqlapi0.1
 
Magic methods
Magic methodsMagic methods
Magic methods
 
Spring data jpa
Spring data jpaSpring data jpa
Spring data jpa
 
Nhibernate Part 2
Nhibernate   Part 2Nhibernate   Part 2
Nhibernate Part 2
 
spring-tutorial
spring-tutorialspring-tutorial
spring-tutorial
 
Executing Sql Commands
Executing Sql CommandsExecuting Sql Commands
Executing Sql Commands
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoin
 
Hoisting Nested Functions
Hoisting Nested FunctionsHoisting Nested Functions
Hoisting Nested Functions
 
Hoisting Nested Functions
Hoisting Nested Functions Hoisting Nested Functions
Hoisting Nested Functions
 
Java
JavaJava
Java
 
Migrating to JUnit 5
Migrating to JUnit 5Migrating to JUnit 5
Migrating to JUnit 5
 
Java8 - Interfaces, evolved
Java8 - Interfaces, evolvedJava8 - Interfaces, evolved
Java8 - Interfaces, evolved
 
Test-driven development for TYPO3 (T3DD11)
Test-driven development for TYPO3 (T3DD11)Test-driven development for TYPO3 (T3DD11)
Test-driven development for TYPO3 (T3DD11)
 
FunctionalInterfaces
FunctionalInterfacesFunctionalInterfaces
FunctionalInterfaces
 
Testing the frontend
Testing the frontendTesting the frontend
Testing the frontend
 
Creational pattern 2
Creational pattern 2Creational pattern 2
Creational pattern 2
 
Intro to Testing in Zope, Plone
Intro to Testing in Zope, PloneIntro to Testing in Zope, Plone
Intro to Testing in Zope, Plone
 
Unit Testing Standards - Recommended Best Practices
Unit Testing Standards - Recommended Best PracticesUnit Testing Standards - Recommended Best Practices
Unit Testing Standards - Recommended Best Practices
 
How Does Kubernetes Build OpenAPI Specifications?
How Does Kubernetes Build OpenAPI Specifications?How Does Kubernetes Build OpenAPI Specifications?
How Does Kubernetes Build OpenAPI Specifications?
 

Viewers also liked

Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
Nicolas Bettenburg
 

Viewers also liked (7)

Managing Community Contributions: Lessons Learned from a Case Study on Andro...
Managing Community Contributions:  Lessons Learned from a Case Study on Andro...Managing Community Contributions:  Lessons Learned from a Case Study on Andro...
Managing Community Contributions: Lessons Learned from a Case Study on Andro...
 
A Lightweight Approach to Uncover Technical Information in Unstructured Data
A Lightweight Approach to Uncover Technical Information in Unstructured DataA Lightweight Approach to Uncover Technical Information in Unstructured Data
A Lightweight Approach to Uncover Technical Information in Unstructured Data
 
Mining Development Repositories to Study the Impact of Collaboration on Softw...
Mining Development Repositories to Study the Impact of Collaboration on Softw...Mining Development Repositories to Study the Impact of Collaboration on Softw...
Mining Development Repositories to Study the Impact of Collaboration on Softw...
 
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
Ph.D. Dissertation - Studying the Impact of Developer Communication on the Qu...
 
Studying the impact of Social Structures on Software Quality
Studying the impact of Social Structures on Software QualityStudying the impact of Social Structures on Software Quality
Studying the impact of Social Structures on Software Quality
 
Think Locally, Act Gobally - Improving Defect and Effort Prediction Models
Think Locally, Act Gobally - Improving Defect and Effort Prediction ModelsThink Locally, Act Gobally - Improving Defect and Effort Prediction Models
Think Locally, Act Gobally - Improving Defect and Effort Prediction Models
 
Ahmad Hasan CV
Ahmad Hasan CVAhmad Hasan CV
Ahmad Hasan CV
 

Similar to Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code

Csmr2012 bettenburg presentation
Csmr2012 bettenburg presentationCsmr2012 bettenburg presentation
Csmr2012 bettenburg presentation
SAIL_QU
 
create a new interface called DropoutStackADT for representing a dro.pdf
create a new interface called DropoutStackADT for representing a dro.pdfcreate a new interface called DropoutStackADT for representing a dro.pdf
create a new interface called DropoutStackADT for representing a dro.pdf
f3apparelsonline
 
(1)Objective Binary Search Tree traversal (2 points)Use traversal.pdf
(1)Objective Binary Search Tree traversal (2 points)Use traversal.pdf(1)Objective Binary Search Tree traversal (2 points)Use traversal.pdf
(1)Objective Binary Search Tree traversal (2 points)Use traversal.pdf
arihantmobileselepun
 
Use of Apache Commons and Utilities
Use of Apache Commons and UtilitiesUse of Apache Commons and Utilities
Use of Apache Commons and Utilities
Pramod Kumar
 

Similar to Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code (20)

Csmr2012 bettenburg presentation
Csmr2012 bettenburg presentationCsmr2012 bettenburg presentation
Csmr2012 bettenburg presentation
 
Nick Sieger JRuby Concurrency EMRubyConf 2011
Nick Sieger JRuby Concurrency EMRubyConf 2011Nick Sieger JRuby Concurrency EMRubyConf 2011
Nick Sieger JRuby Concurrency EMRubyConf 2011
 
Junit and testNG
Junit and testNGJunit and testNG
Junit and testNG
 
Spock: A Highly Logical Way To Test
Spock: A Highly Logical Way To TestSpock: A Highly Logical Way To Test
Spock: A Highly Logical Way To Test
 
Writing code that writes code - Nguyen Luong
Writing code that writes code - Nguyen LuongWriting code that writes code - Nguyen Luong
Writing code that writes code - Nguyen Luong
 
TechkTalk #12 Grokking: Writing code that writes code – Nguyen Luong
TechkTalk #12 Grokking: Writing code that writes code – Nguyen LuongTechkTalk #12 Grokking: Writing code that writes code – Nguyen Luong
TechkTalk #12 Grokking: Writing code that writes code – Nguyen Luong
 
Spring data
Spring dataSpring data
Spring data
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotation
 
Spock
SpockSpock
Spock
 
create a new interface called DropoutStackADT for representing a dro.pdf
create a new interface called DropoutStackADT for representing a dro.pdfcreate a new interface called DropoutStackADT for representing a dro.pdf
create a new interface called DropoutStackADT for representing a dro.pdf
 
Oop 1
Oop 1Oop 1
Oop 1
 
Ast transformations
Ast transformationsAst transformations
Ast transformations
 
Spock: Test Well and Prosper
Spock: Test Well and ProsperSpock: Test Well and Prosper
Spock: Test Well and Prosper
 
(1)Objective Binary Search Tree traversal (2 points)Use traversal.pdf
(1)Objective Binary Search Tree traversal (2 points)Use traversal.pdf(1)Objective Binary Search Tree traversal (2 points)Use traversal.pdf
(1)Objective Binary Search Tree traversal (2 points)Use traversal.pdf
 
Core java concepts
Core java  conceptsCore java  concepts
Core java concepts
 
Java9 Beyond Modularity - Java 9 más allá de la modularidad
Java9 Beyond Modularity - Java 9 más allá de la modularidadJava9 Beyond Modularity - Java 9 más allá de la modularidad
Java9 Beyond Modularity - Java 9 más allá de la modularidad
 
55j7
55j755j7
55j7
 
create-netflix-clone-02-server.pdf
create-netflix-clone-02-server.pdfcreate-netflix-clone-02-server.pdf
create-netflix-clone-02-server.pdf
 
Annotation Processing - Demystifying Java's Dark Arts
Annotation Processing - Demystifying Java's Dark ArtsAnnotation Processing - Demystifying Java's Dark Arts
Annotation Processing - Demystifying Java's Dark Arts
 
Use of Apache Commons and Utilities
Use of Apache Commons and UtilitiesUse of Apache Commons and Utilities
Use of Apache Commons and Utilities
 

More from Nicolas Bettenburg

Computing Accuracy Precision And Recall
Computing Accuracy Precision And RecallComputing Accuracy Precision And Recall
Computing Accuracy Precision And Recall
Nicolas Bettenburg
 

More from Nicolas Bettenburg (15)

10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...
10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...
10 Year Impact Award Presentation - Duplicate Bug Reports Considered Harmful ...
 
Mud flash
Mud flashMud flash
Mud flash
 
An Empirical Study on Inconsistent Changes to Code Clones at Release Level
An Empirical Study on Inconsistent Changes to Code Clones at Release LevelAn Empirical Study on Inconsistent Changes to Code Clones at Release Level
An Empirical Study on Inconsistent Changes to Code Clones at Release Level
 
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
An Empirical Study on the Risks of Using Off-the-Shelf Techniques for Process...
 
Fuzzy Logic in Smart Homes
Fuzzy Logic in Smart HomesFuzzy Logic in Smart Homes
Fuzzy Logic in Smart Homes
 
Finding Paths in Large Spaces - A* and Hierarchical A*
Finding Paths in Large Spaces - A* and Hierarchical A*Finding Paths in Large Spaces - A* and Hierarchical A*
Finding Paths in Large Spaces - A* and Hierarchical A*
 
Automatic Identification of Bug Introducing Changes
Automatic Identification of Bug Introducing ChangesAutomatic Identification of Bug Introducing Changes
Automatic Identification of Bug Introducing Changes
 
Cloning Considered Harmful Considered Harmful
Cloning Considered Harmful Considered HarmfulCloning Considered Harmful Considered Harmful
Cloning Considered Harmful Considered Harmful
 
Approximation Algorithms
Approximation AlgorithmsApproximation Algorithms
Approximation Algorithms
 
Predictors of Customer Perceived Quality
Predictors of Customer Perceived QualityPredictors of Customer Perceived Quality
Predictors of Customer Perceived Quality
 
Extracting Structural Information from Bug Reports.
Extracting Structural Information from Bug Reports.Extracting Structural Information from Bug Reports.
Extracting Structural Information from Bug Reports.
 
Computing Accuracy Precision And Recall
Computing Accuracy Precision And RecallComputing Accuracy Precision And Recall
Computing Accuracy Precision And Recall
 
Duplicate Bug Reports Considered Harmful ... Really?
Duplicate Bug Reports Considered Harmful ... Really?Duplicate Bug Reports Considered Harmful ... Really?
Duplicate Bug Reports Considered Harmful ... Really?
 
The Quality of Bug Reports in Eclipse ETX'07
The Quality of Bug Reports in Eclipse ETX'07The Quality of Bug Reports in Eclipse ETX'07
The Quality of Bug Reports in Eclipse ETX'07
 
Metropolis Instant Radiosity
Metropolis Instant RadiosityMetropolis Instant Radiosity
Metropolis Instant Radiosity
 

Recently uploaded

Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 

Recently uploaded (20)

Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Towards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptxTowards a code of practice for AI in AT.pptx
Towards a code of practice for AI in AT.pptx
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 

Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code

  • 1. Using Fuzzy Code Search to Link Code Fragments in Discussions to Source Code Nicolas Bettenburg Stephen W. Thomas Ahmed E. Hassan Queen’s University Software Analysis and Intelligence Lab (SAIL) Kingston, Ontario, Canada
  • 2. “Given enough eyeballs, all bugs are shallow.” Eric S. Raymond - The Cathedral and the Bazaar 2
  • 3. Objective in this Study: Which parts of the source code did developers discuss? 3
  • 4. Objective in this Study: Which parts of the source code did developers discuss? Finding Associations of Discussions with Source Code Files 3
  • 5. Communication Source Code Repository Archive 4
  • 6. Communication Source Code Repository Archive 4
  • 7. Untitled 12-03-15 2:55 PM Untitled 12-03-15 2:55 PM this.opt_withObsolete = opt_withObsolete; Untitled } 12-03-15 2:55 PM /* (non-Javadoc) this.opt_withObsolete = opt_withObsolete; * @see main.IExperiment#getDescription() Untitled 12-03-15 2:55 PM } */ public String getDescription() { /* (non-Javadoc) String description = "We want to run an experiment all those bug this.opt_withObsolete = opt_withObsolete; * @see main.IExperiment#getDescription() reports.nt" } */ + "We extract the complete stacktrace information to study fix public String getDescription() { location and stacktrace interplay.nt"; /* (non-Javadoc) String description = "We want to run an experiment all those bug this.opt_withObsolete = opt_withObsolete; return description; * @see main.IExperiment#getDescription() reports.nt" } } */ + "We extract the complete stacktrace information to study fix public String getDescription() { location and stacktrace interplay.nt"; /* (non-Javadoc) /* (non-Javadoc) String description = "We want to run an experiment all those bug return description; * @see main.IExperiment#getDescription() * @see main.IExperiment#run() reports.nt" } */ */ + "We extract the complete stacktrace information to study fix public String getDescription() { public boolean run() { location and stacktrace interplay.nt"; /* (non-Javadoc) String description = "We want to run an experiment all those bug final boolean return = Main.isCli_withDebugMessages(); DEBUG description; * @see main.IExperiment#run()reports.nt" } */ + "We extract the complete stacktrace information to study fix // Select an appropriate database name on the server depending on the public boolean run() { location and stacktrace interplay.nt"; project demanded via command line options /* (non-Javadoc) final boolean return = Main.isCli_withDebugMessages(); DEBUG description; String dbName = ""; * @see main.IExperiment#run() } if (Main.getCli_project().equalsIgnoreCase("eclipse")) */ // Select an appropriate database name on the server depending on the dbName = "eclipse-december-2007"; public boolean run() { project demanded via command line options /* (non-Javadoc) else { final boolean DEBUG = Main.isCli_withDebugMessages(); String dbName = ""; * @see main.IExperiment#run() System.out.println("We currently only support the Eclipse database if (Main.getCli_project().equalsIgnoreCase("eclipse")) */ !"); // Select an appropriate database name on the server depending on the dbName = "eclipse-december-2007"; public boolean run() { System.exit(0); project demanded via command line options else { final boolean DEBUG = Main.isCli_withDebugMessages(); } String dbName = ""; System.out.println("We currently only support the Eclipse database if (Main.getCli_project().equalsIgnoreCase("eclipse")) !"); // Select an appropriate database name on the server depending on the dbName = "eclipse-december-2007"; System.exit(0); project demanded via command line options // Create the else {Database Connection } String dbName = ""; DatabaseConnector System.out.println("We currently only support the Eclipse database dbc = new DatabaseConnector(Main.getCli_dbHost(), if (Main.getCli_project().equalsIgnoreCase("eclipse")) Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); !"); dbName = "eclipse-december-2007"; dbc.initialize(); System.exit(0); // Create the else { Database Connection if (!dbc.connect()) { } DatabaseConnector System.out.println("We currently only support the Eclipse database dbc = new DatabaseConnector(Main.getCli_dbHost(), System.out.println("Could not connect to database. Check host, port Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); !"); , username and password."); dbc.initialize(); System.exit(0); System.exit(1); // Create the Database Connection if (!dbc.connect()) { } } DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(), System.out.println("Could not connect to database. Check host, port Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); , username and password."); // Fetch a number of Bug Report unique IDs belonging to the following dbc.initialize(); System.exit(1); // Create the Database Connection query if (!dbc.connect()) { } DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(), String setSelectionQuery = "SELECT DISTINCT not connect to database. Check host, port System.out.println("Could bug_id FROM bugzilla_bugs Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC , username and password."); // Fetch a number of Bug Report unique IDs belonging to the following dbc.initialize(); LIMIT " + Main.getCli_amount(); System.exit(1); query if (!dbc.connect()) { int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); } String setSelectionQuery = "SELECT DISTINCT not connect to database. Check host, port System.out.println("Could bug_id FROM bugzilla_bugs int lastID = bugIDs[bugIDs.length -1]; WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC , username and password."); // Fetch a number of Bug Report unique IDs belonging to the following LIMIT " + Main.getCli_amount(); System.exit(1); if (DEBUG) query int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); } System.out.println("* Attempting to fetch " + bugIDs.length + " bugzilla_bugs String setSelectionQuery = "SELECT DISTINCT bug_id FROM int lastID = bugIDs[bugIDs.length -1]; reports from " + Main.getCli_dbHost() + " starting +with ID " BY bug_id ASC WHERE bug_id > " + Main.getCli_startID() " ORDER + // Fetch a number of Bug Report unique IDs belonging to the following Main.getCli_startID()); LIMIT " + Main.getCli_amount(); if (DEBUG) query int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); System.out.println("* Attempting to fetch " + bugIDs.length + " bugzilla_bugs String setSelectionQuery = "SELECT DISTINCT bug_id FROM // Collect the bug reports bugIDs[bugIDs.length -1];up to 100 parallel int lastID = from the database using reports from " + Main.getCli_dbHost() + " starting +with ID " BY bug_id ASC WHERE bug_id > " + Main.getCli_startID() " ORDER + threads. Main.getCli_startID()); LIMIT " + Main.getCli_amount(); if (DEBUG) int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); System.out.println("* Attempting to fetch " + bugIDs.length + " // Collect the bug reports bugIDs[bugIDs.length -1];up to 100 parallel int lastID = from the database using reports from " + Main.getCli_dbHost() + " starting with ID " + threads. Main.getCli_startID()); if (DEBUG) System.out.println("* Attempting to fetch " + bugIDs.length + " // Collect the bug reports from the database using up to 100Page 2 of 4 parallel reports from " + Main.getCli_dbHost() + " starting with ID " + threads. Main.getCli_startID()); // Collect the bug reports from the database using up to 100Page 2 of 4 parallel threads. Page 2 of 4 Page 2 of 4 Communication Source Code Repository Archive 4
  • 8. Untitled 12-03-15 2:55 PM Untitled 12-03-15 2:55 PM this.opt_withObsolete = opt_withObsolete; Untitled } 12-03-15 2:55 PM /* (non-Javadoc) this.opt_withObsolete = opt_withObsolete; * @see main.IExperiment#getDescription() Untitled 12-03-15 2:55 PM } */ public String getDescription() { /* (non-Javadoc) String description = "We want to run an experiment all those bug this.opt_withObsolete = opt_withObsolete; * @see main.IExperiment#getDescription() reports.nt" } */ + "We extract the complete stacktrace information to study fix public String getDescription() { location and stacktrace interplay.nt"; /* (non-Javadoc) String description = "We want to run an experiment all those bug this.opt_withObsolete = opt_withObsolete; return description; * @see main.IExperiment#getDescription() reports.nt" } } */ + "We extract the complete stacktrace information to study fix public String getDescription() { location and stacktrace interplay.nt"; /* (non-Javadoc) /* (non-Javadoc) String description = "We want to run an experiment all those bug return description; * @see main.IExperiment#getDescription() * @see main.IExperiment#run() reports.nt" } */ */ + "We extract the complete stacktrace information to study fix public String getDescription() { public boolean run() { location and stacktrace interplay.nt"; /* (non-Javadoc) String description = "We want to run an experiment all those bug final boolean return = Main.isCli_withDebugMessages(); DEBUG description; * @see main.IExperiment#run()reports.nt" } */ + "We extract the complete stacktrace information to study fix // Select an appropriate database name on the server depending on the public boolean run() { location and stacktrace interplay.nt"; project demanded via command line options /* (non-Javadoc) Traceability final boolean return = Main.isCli_withDebugMessages(); DEBUG description; String dbName = ""; * @see main.IExperiment#run() } if (Main.getCli_project().equalsIgnoreCase("eclipse")) */ // Select an appropriate database name on the server depending on the dbName = "eclipse-december-2007"; public boolean run() { project demanded via command line options /* (non-Javadoc) else { final boolean DEBUG = Main.isCli_withDebugMessages(); String dbName = ""; * @see main.IExperiment#run() System.out.println("We currently only support the Eclipse database if (Main.getCli_project().equalsIgnoreCase("eclipse")) */ !"); // Select an appropriate database name on the server depending on the dbName = "eclipse-december-2007"; public boolean run() { System.exit(0); project demanded via command line options else { final boolean DEBUG = Main.isCli_withDebugMessages(); } String dbName = ""; System.out.println("We currently only support the Eclipse database if (Main.getCli_project().equalsIgnoreCase("eclipse")) !"); // Select an appropriate database name on the server depending on the dbName = "eclipse-december-2007"; System.exit(0); project demanded via command line options // Create the else {Database Connection } String dbName = ""; DatabaseConnector System.out.println("We currently only support the Eclipse database dbc = new DatabaseConnector(Main.getCli_dbHost(), if (Main.getCli_project().equalsIgnoreCase("eclipse")) Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); !"); dbName = "eclipse-december-2007"; dbc.initialize(); System.exit(0); // Create the else { Database Connection if (!dbc.connect()) { } DatabaseConnector System.out.println("We currently only support the Eclipse database dbc = new DatabaseConnector(Main.getCli_dbHost(), System.out.println("Could not connect to database. Check host, port Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); !"); , username and password."); dbc.initialize(); System.exit(0); Links System.exit(1); // Create the Database Connection if (!dbc.connect()) { } } DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(), System.out.println("Could not connect to database. Check host, port Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); , username and password."); // Fetch a number of Bug Report unique IDs belonging to the following dbc.initialize(); System.exit(1); // Create the Database Connection query if (!dbc.connect()) { } DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(), String setSelectionQuery = "SELECT DISTINCT not connect to database. Check host, port System.out.println("Could bug_id FROM bugzilla_bugs Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC , username and password."); // Fetch a number of Bug Report unique IDs belonging to the following dbc.initialize(); LIMIT " + Main.getCli_amount(); System.exit(1); query if (!dbc.connect()) { int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); } String setSelectionQuery = "SELECT DISTINCT not connect to database. Check host, port System.out.println("Could bug_id FROM bugzilla_bugs int lastID = bugIDs[bugIDs.length -1]; WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC , username and password."); // Fetch a number of Bug Report unique IDs belonging to the following LIMIT " + Main.getCli_amount(); System.exit(1); if (DEBUG) query int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); } System.out.println("* Attempting to fetch " + bugIDs.length + " bugzilla_bugs String setSelectionQuery = "SELECT DISTINCT bug_id FROM int lastID = bugIDs[bugIDs.length -1]; reports from " + Main.getCli_dbHost() + " starting +with ID " BY bug_id ASC WHERE bug_id > " + Main.getCli_startID() " ORDER + // Fetch a number of Bug Report unique IDs belonging to the following Main.getCli_startID()); LIMIT " + Main.getCli_amount(); if (DEBUG) query int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); System.out.println("* Attempting to fetch " + bugIDs.length + " bugzilla_bugs String setSelectionQuery = "SELECT DISTINCT bug_id FROM // Collect the bug reports bugIDs[bugIDs.length -1];up to 100 parallel int lastID = from the database using reports from " + Main.getCli_dbHost() + " starting +with ID " BY bug_id ASC WHERE bug_id > " + Main.getCli_startID() " ORDER + threads. Main.getCli_startID()); LIMIT " + Main.getCli_amount(); if (DEBUG) int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); System.out.println("* Attempting to fetch " + bugIDs.length + " // Collect the bug reports bugIDs[bugIDs.length -1];up to 100 parallel int lastID = from the database using reports from " + Main.getCli_dbHost() + " starting with ID " + threads. Main.getCli_startID()); if (DEBUG) System.out.println("* Attempting to fetch " + bugIDs.length + " // Collect the bug reports from the database using up to 100Page 2 of 4 parallel reports from " + Main.getCli_dbHost() + " starting with ID " + threads. Main.getCli_startID()); // Collect the bug reports from the database using up to 100Page 2 of 4 parallel threads. Page 2 of 4 Page 2 of 4 Communication Source Code Repository Archive 4
  • 9. 5
  • 10. 5
  • 12. 3 Approaches in the Past Change Log Analysis Information Retrieval Lightweight Textual Analysis 6
  • 13. Change Log Analysis Untitled 12-03-15 2:55 PM this.opt_withObsolete = opt_withObsolete; } /* (non-Javadoc) * @see main.IExperiment#getDescription() */ public String getDescription() { String description = "We want to run an experiment all those bug reports.nt" + "We extract the complete stacktrace information to study fix location and stacktrace interplay.nt"; return description; } /* (non-Javadoc) * @see main.IExperiment#run() LUCENE-2297: allow reader */ public boolean run() { final boolean DEBUG = Main.isCli_withDebugMessages(); // Select an appropriate database name on the server depending on the Untitled 12-03-15 2:55project demanded via command line options PM String dbName = ""; if (Main.getCli_project().equalsIgnoreCase("eclipse")) dbName = "eclipse-december-2007"; else { System.out.println("We currently only support the Eclipse database !"); this.opt_withObsolete = opt_withObsolete; System.exit(0); } } /* (non-Javadoc) * @see main.IExperiment#getDescription() // Create the Database Connection */ DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(), public String getDescription() { Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); String description = "We want to run an experiment all those bug dbc.initialize(); reports.nt" if (!dbc.connect()) { pooling to be enabled (through + "We extract the complete stacktrace information to study fix System.out.println("Could not connect to database. Check host, port location and stacktrace interplay.nt"; , username and password."); return description; System.exit(1); } } /* (non-Javadoc) // Fetch a number of Bug Report unique IDs belonging to the following * @see main.IExperiment#run() query */ String setSelectionQuery = "SELECT DISTINCT bug_id FROM bugzilla_bugs public boolean run() { WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC final boolean DEBUG = Main.isCli_withDebugMessages(); LIMIT " + Main.getCli_amount(); int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); // Select an appropriate database name on the server depending on the int lastID = bugIDs[bugIDs.length -1]; project demanded via command line options String dbName = ""; if (DEBUG) if (Main.getCli_project().equalsIgnoreCase("eclipse")) System.out.println("* Attempting to fetch " + bugIDs.length + " dbName = "eclipse-december-2007"; reports from " + Main.getCli_dbHost() + " starting with ID " + else { Main.getCli_startID()); System.out.println("We currently only support the Eclipse database !"); // Collect the bug reports from the database using up to 100 parallel System.exit(0); threads. } IndexWriterConfig) even if Untitled // Create the DatabasePM 12-03-15 2:55 Connection Untitled DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(), 12-03-15 2:55 PM Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); dbc.initialize(); Page 2 of 4 if (!dbc.connect()) { System.out.println("Could not connect to database. Check host, port this.opt_withObsolete = opt_withObsolete; , username and password."); } System.exit(1); this.opt_withObsolete = opt_withObsolete; } } /* (non-Javadoc) * @see main.IExperiment#getDescription() // Fetch a number of Bug Report unique IDs belonging to the following /* (non-Javadoc) */ query * @see main.IExperiment#getDescription() public String getDescription() { String setSelectionQuery = "SELECT DISTINCT bug_id FROM */bugzilla_bugs WHERE bug_id > " + Main.getCli_startID() + " ORDER public String getDescription() { String description = "We want to run an experiment all those bug BY bug_id ASC reports.nt" LIMIT " + Main.getCli_amount(); String description = "We want to run an experiment all those bug int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); + "We extract the complete stacktrace information to study fix reports.nt" location and stacktrace interplay.nt"; int lastID = bugIDs[bugIDs.length -1]; + "We extract the complete stacktrace information to study fix return description; location and stacktrace interplay.nt"; if (DEBUG) you're not pulling NRT reader. } return description; System.out.println("* Attempting to fetch " + bugIDs.length + " } /* (non-Javadoc) reports from " + Main.getCli_dbHost() + " starting with ID " + * @see main.IExperiment#run() Main.getCli_startID()); /* (non-Javadoc) */ * @see main.IExperiment#run() public boolean run() { // Collect the bug reports from the database using up to 100 parallel */ final boolean DEBUG = Main.isCli_withDebugMessages(); threads. public boolean run() { final boolean DEBUG = Main.isCli_withDebugMessages(); // Select an appropriate database name on the server depending on the project demanded via command line options // Select an appropriate database name on the server depending on the String dbName = ""; project demanded via command line options if (Main.getCli_project().equalsIgnoreCase("eclipse")) String dbName = ""; dbName = "eclipse-december-2007"; if (Main.getCli_project().equalsIgnoreCase("eclipse")) Page 2 of 4 else { dbName = "eclipse-december-2007"; System.out.println("We currently only support the Eclipse database else { !"); System.out.println("We currently only support the Eclipse database System.exit(0); !"); } System.exit(0); } // Create the Database Connection DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(), // Create the Database Connection Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(), dbc.initialize(); Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); if (!dbc.connect()) { dbc.initialize(); System.out.println("Could not connect to database. Check host, port if (!dbc.connect()) { , username and password."); System.out.println("Could not connect to database. Check host, port System.exit(1); , username and password."); } System.exit(1); } // Fetch a number of Bug Report unique IDs belonging to the following query // Fetch a number of Bug Report unique IDs belonging to the following String setSelectionQuery = "SELECT DISTINCT bug_id FROM bugzilla_bugs query WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC String setSelectionQuery = "SELECT DISTINCT bug_id FROM bugzilla_bugs LIMIT " + Main.getCli_amount(); WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); LIMIT " + Main.getCli_amount(); int lastID = bugIDs[bugIDs.length -1]; int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); int lastID = bugIDs[bugIDs.length -1]; if (DEBUG) System.out.println("* Attempting to fetch " + bugIDs.length + " if (DEBUG) reports from " + Main.getCli_dbHost() + " starting with ID " + System.out.println("* Attempting to fetch " + bugIDs.length + " Main.getCli_startID()); reports from " + Main.getCli_dbHost() + " starting with ID " + Main.getCli_startID()); // Collect the bug reports from the database using up to 100 parallel threads. // Collect the bug reports from the database using up to 100 parallel threads. SVN Page 2 of 4 Page 2 of 4 7
  • 14. Change Log Analysis Untitled 12-03-15 2:55 PM this.opt_withObsolete = opt_withObsolete; } /* (non-Javadoc) * @see main.IExperiment#getDescription() */ public String getDescription() { String description = "We want to run an experiment all those bug reports.nt" + "We extract the complete stacktrace information to study fix location and stacktrace interplay.nt"; return description; } /* (non-Javadoc) * @see main.IExperiment#run() LUCENE-2297: allow reader */ public boolean run() { final boolean DEBUG = Main.isCli_withDebugMessages(); // Select an appropriate database name on the server depending on the Untitled 12-03-15 2:55project demanded via command line options PM String dbName = ""; if (Main.getCli_project().equalsIgnoreCase("eclipse")) dbName = "eclipse-december-2007"; else { System.out.println("We currently only support the Eclipse database !"); this.opt_withObsolete = opt_withObsolete; System.exit(0); } } /* (non-Javadoc) * @see main.IExperiment#getDescription() // Create the Database Connection */ DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(), public String getDescription() { Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); String description = "We want to run an experiment all those bug dbc.initialize(); reports.nt" if (!dbc.connect()) { pooling to be enabled (through + "We extract the complete stacktrace information to study fix System.out.println("Could not connect to database. Check host, port location and stacktrace interplay.nt"; , username and password."); return description; System.exit(1); } } /* (non-Javadoc) // Fetch a number of Bug Report unique IDs belonging to the following * @see main.IExperiment#run() query */ String setSelectionQuery = "SELECT DISTINCT bug_id FROM bugzilla_bugs public boolean run() { WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC final boolean DEBUG = Main.isCli_withDebugMessages(); LIMIT " + Main.getCli_amount(); int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); // Select an appropriate database name on the server depending on the int lastID = bugIDs[bugIDs.length -1]; project demanded via command line options String dbName = ""; if (DEBUG) if (Main.getCli_project().equalsIgnoreCase("eclipse")) System.out.println("* Attempting to fetch " + bugIDs.length + " dbName = "eclipse-december-2007"; reports from " + Main.getCli_dbHost() + " starting with ID " + else { Main.getCli_startID()); System.out.println("We currently only support the Eclipse database !"); // Collect the bug reports from the database using up to 100 parallel System.exit(0); threads. } IndexWriterConfig) even if Untitled // Create the DatabasePM 12-03-15 2:55 Connection Untitled DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(), 12-03-15 2:55 PM Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); dbc.initialize(); Page 2 of 4 if (!dbc.connect()) { System.out.println("Could not connect to database. Check host, port this.opt_withObsolete = opt_withObsolete; , username and password."); } System.exit(1); this.opt_withObsolete = opt_withObsolete; } } /* (non-Javadoc) * @see main.IExperiment#getDescription() // Fetch a number of Bug Report unique IDs belonging to the following /* (non-Javadoc) */ query * @see main.IExperiment#getDescription() public String getDescription() { String setSelectionQuery = "SELECT DISTINCT bug_id FROM */bugzilla_bugs WHERE bug_id > " + Main.getCli_startID() + " ORDER public String getDescription() { String description = "We want to run an experiment all those bug BY bug_id ASC reports.nt" LIMIT " + Main.getCli_amount(); String description = "We want to run an experiment all those bug int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); + "We extract the complete stacktrace information to study fix reports.nt" location and stacktrace interplay.nt"; int lastID = bugIDs[bugIDs.length -1]; + "We extract the complete stacktrace information to study fix return description; location and stacktrace interplay.nt"; if (DEBUG) you're not pulling NRT reader. } return description; System.out.println("* Attempting to fetch " + bugIDs.length + " } /* (non-Javadoc) reports from " + Main.getCli_dbHost() + " starting with ID " + * @see main.IExperiment#run() Main.getCli_startID()); /* (non-Javadoc) */ * @see main.IExperiment#run() public boolean run() { // Collect the bug reports from the database using up to 100 parallel */ final boolean DEBUG = Main.isCli_withDebugMessages(); threads. public boolean run() { final boolean DEBUG = Main.isCli_withDebugMessages(); // Select an appropriate database name on the server depending on the project demanded via command line options // Select an appropriate database name on the server depending on the String dbName = ""; project demanded via command line options if (Main.getCli_project().equalsIgnoreCase("eclipse")) String dbName = ""; dbName = "eclipse-december-2007"; if (Main.getCli_project().equalsIgnoreCase("eclipse")) Page 2 of 4 else { dbName = "eclipse-december-2007"; System.out.println("We currently only support the Eclipse database else { !"); System.out.println("We currently only support the Eclipse database System.exit(0); !"); } System.exit(0); } // Create the Database Connection DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(), // Create the Database Connection Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); DatabaseConnector dbc = new DatabaseConnector(Main.getCli_dbHost(), dbc.initialize(); Main.getCli_dbUser(), Main.getCli_dbPass(), dbName); if (!dbc.connect()) { dbc.initialize(); System.out.println("Could not connect to database. Check host, port if (!dbc.connect()) { , username and password."); System.out.println("Could not connect to database. Check host, port System.exit(1); , username and password."); } System.exit(1); } // Fetch a number of Bug Report unique IDs belonging to the following query // Fetch a number of Bug Report unique IDs belonging to the following String setSelectionQuery = "SELECT DISTINCT bug_id FROM bugzilla_bugs query WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC String setSelectionQuery = "SELECT DISTINCT bug_id FROM bugzilla_bugs LIMIT " + Main.getCli_amount(); WHERE bug_id > " + Main.getCli_startID() + " ORDER BY bug_id ASC int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); LIMIT " + Main.getCli_amount(); int lastID = bugIDs[bugIDs.length -1]; int[] bugIDs = dbc.getIdSetByQuery(setSelectionQuery); int lastID = bugIDs[bugIDs.length -1]; if (DEBUG) System.out.println("* Attempting to fetch " + bugIDs.length + " if (DEBUG) reports from " + Main.getCli_dbHost() + " starting with ID " + System.out.println("* Attempting to fetch " + bugIDs.length + " Main.getCli_startID()); reports from " + Main.getCli_dbHost() + " starting with ID " + Main.getCli_startID()); // Collect the bug reports from the database using up to 100 parallel threads. // Collect the bug reports from the database using up to 100 parallel threads. SVN Page 2 of 4 Page 2 of 4 7