SlideShare une entreprise Scribd logo
1  sur  60
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Nhibernate Part 2
Nhibernate   Part 2Nhibernate   Part 2
Nhibernate Part 2guest075fec
 
Executing Sql Commands
Executing Sql CommandsExecuting Sql Commands
Executing Sql Commandsleminhvuong
 
Jdk 7 4-forkjoin
Jdk 7 4-forkjoinJdk 7 4-forkjoin
Jdk 7 4-forkjoinknight1128
 
Hoisting Nested Functions
Hoisting Nested FunctionsHoisting Nested Functions
Hoisting Nested FunctionsFeras Tanan
 
Hoisting Nested Functions
Hoisting Nested Functions Hoisting Nested Functions
Hoisting Nested Functions Feras Tanan
 
Java8 - Interfaces, evolved
Java8 - Interfaces, evolvedJava8 - Interfaces, evolved
Java8 - Interfaces, evolvedCharles Casadei
 
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
 
Testing the frontend
Testing the frontendTesting the frontend
Testing the frontendHeiko Hardt
 
Creational pattern 2
Creational pattern 2Creational pattern 2
Creational pattern 2Naga Muruga
 
Intro to Testing in Zope, Plone
Intro to Testing in Zope, PloneIntro to Testing in Zope, Plone
Intro to Testing in Zope, PloneQuintagroup
 
Unit Testing Standards - Recommended Best Practices
Unit Testing Standards - Recommended Best PracticesUnit Testing Standards - Recommended Best Practices
Unit Testing Standards - Recommended Best PracticesVitaliy Kulikov
 
How Does Kubernetes Build OpenAPI Specifications?
How Does Kubernetes Build OpenAPI Specifications?How Does Kubernetes Build OpenAPI Specifications?
How Does Kubernetes Build OpenAPI Specifications?reallavalamp
 

Tendances (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?
 

En vedette

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...Nicolas Bettenburg
 
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 DataNicolas Bettenburg
 
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...Nicolas Bettenburg
 
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
 
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 QualityNicolas Bettenburg
 
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 ModelsNicolas Bettenburg
 

En vedette (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
 

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

Csmr2012 bettenburg presentation
Csmr2012 bettenburg presentationCsmr2012 bettenburg presentation
Csmr2012 bettenburg presentationSAIL_QU
 
Nick Sieger JRuby Concurrency EMRubyConf 2011
Nick Sieger JRuby Concurrency EMRubyConf 2011Nick Sieger JRuby Concurrency EMRubyConf 2011
Nick Sieger JRuby Concurrency EMRubyConf 2011Nick Sieger
 
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 TestHoward Lewis Ship
 
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 LuongVu Huy
 
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 LuongGrokking VN
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotationjavatwo2011
 
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.pdff3apparelsonline
 
Ast transformations
Ast transformationsAst transformations
Ast transformationsHamletDRC
 
Spock: Test Well and Prosper
Spock: Test Well and ProsperSpock: Test Well and Prosper
Spock: Test Well and ProsperKen Kousen
 
(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.pdfarihantmobileselepun
 
Core java concepts
Core java  conceptsCore java  concepts
Core java conceptsRam132
 
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 modularidadDavid Gómez García
 
create-netflix-clone-02-server.pdf
create-netflix-clone-02-server.pdfcreate-netflix-clone-02-server.pdf
create-netflix-clone-02-server.pdfShaiAlmog1
 
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 ArtsJames Kirkbride
 
Use of Apache Commons and Utilities
Use of Apache Commons and UtilitiesUse of Apache Commons and Utilities
Use of Apache Commons and UtilitiesPramod Kumar
 

Similaire à 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
 

Plus de Nicolas Bettenburg

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 ...Nicolas Bettenburg
 
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 LevelNicolas Bettenburg
 
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...Nicolas Bettenburg
 
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*Nicolas Bettenburg
 
Automatic Identification of Bug Introducing Changes
Automatic Identification of Bug Introducing ChangesAutomatic Identification of Bug Introducing Changes
Automatic Identification of Bug Introducing ChangesNicolas Bettenburg
 
Cloning Considered Harmful Considered Harmful
Cloning Considered Harmful Considered HarmfulCloning Considered Harmful Considered Harmful
Cloning Considered Harmful Considered HarmfulNicolas Bettenburg
 
Predictors of Customer Perceived Quality
Predictors of Customer Perceived QualityPredictors of Customer Perceived Quality
Predictors of Customer Perceived QualityNicolas Bettenburg
 
Extracting Structural Information from Bug Reports.
Extracting Structural Information from Bug Reports.Extracting Structural Information from Bug Reports.
Extracting Structural Information from Bug Reports.Nicolas Bettenburg
 
Computing Accuracy Precision And Recall
Computing Accuracy Precision And RecallComputing Accuracy Precision And Recall
Computing Accuracy Precision And RecallNicolas Bettenburg
 
Duplicate Bug Reports Considered Harmful ... Really?
Duplicate Bug Reports Considered Harmful ... Really?Duplicate Bug Reports Considered Harmful ... Really?
Duplicate Bug Reports Considered Harmful ... Really?Nicolas Bettenburg
 
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'07Nicolas Bettenburg
 

Plus de 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
 

Dernier

URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdfSoniaTolstoy
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptxPoojaSen20
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxNirmalaLoungPoorunde1
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAssociation for Project Management
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfUmakantAnnand
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docxPoojaSen20
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsKarinaGenton
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 

Dernier (20)

Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1Código Creativo y Arte de Software | Unidad 1
Código Creativo y Arte de Software | Unidad 1
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdfBASLIQ CURRENT LOOKBOOK  LOOKBOOK(1) (1).pdf
BASLIQ CURRENT LOOKBOOK LOOKBOOK(1) (1).pdf
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptx
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Employee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptxEmployee wellbeing at the workplace.pptx
Employee wellbeing at the workplace.pptx
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
Concept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.CompdfConcept of Vouching. B.Com(Hons) /B.Compdf
Concept of Vouching. B.Com(Hons) /B.Compdf
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
MENTAL STATUS EXAMINATION format.docx
MENTAL     STATUS EXAMINATION format.docxMENTAL     STATUS EXAMINATION format.docx
MENTAL STATUS EXAMINATION format.docx
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its Characteristics
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 

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