Program: 180490
Project: 180490
Buggy source:
/** 
 * applet initialization
 */
public void init(){
  System.out.println("String_Node_Str");
  SpringLayout<P2PVertex,P2PConnection> sp_layout=null;
  try {
    BufferedReader in;
    if (ontheweb) {
      URL yahoo=new URL(DEF_LOG_URL);
      in=new BufferedReader(new InputStreamReader(yahoo.openStream()));
    }
 else {
      if (mylogfile == null)       in=new BufferedReader(new FileReader(DEF_LOG_FILE));
 else {
        in=new BufferedReader(new FileReader(mylogfile));
        System.out.println("String_Node_Str" + mylogfile.getAbsolutePath());
      }
    }
    myGraphEvolution=new LinkedList<LogEvent>();
    hiddenGraph=new P2PNetworkGraph();
    sp_layout=new SpringLayout<P2PVertex,P2PConnection>(hiddenGraph,new P2PNetEdgeLengthFunction());
    sp_layout.setSize(new Dimension(DEFWIDTH,DEFHEIGHT));
    sp_layout.setForceMultiplier(0.6);
    sp_layout.setInitializer(new P2PVertexPlacer(sp_layout,new Dimension(DEFWIDTH,DEFHEIGHT)));
    sp_layout.initialize();
    String str;
    List<LogEvent> colouringEvents=new LinkedList<LogEvent>();
    List<P2PVertex> queryPeers=new LinkedList<P2PVertex>();
    int totalLines=Integer.parseInt(in.readLine());
    int lineCount=0;
    myGraphEvolution.add(new LogEvent("String_Node_Str"));
    while ((str=in.readLine()) != null) {
      lineCount++;
      LogEvent gev=new LogEvent(str);
      if (gev.isConstructing()) {
        graphConstructionEvent(gev,hiddenGraph);
        sp_layout.step();
        sp_layout.step();
      }
      if (gev.getType().equals("String_Node_Str") || gev.getType().equals("String_Node_Str")) {
        colouringEvents.add(LogEvent.createOpposingLogEvent(gev,2000));
        if (gev.getType().equals("String_Node_Str")) {
          queryPeers.add(new PeerVertex(gev.getParam(1)));
        }
      }
 else       if (gev.getType().equals("String_Node_Str")) {
        colouringEvents.add(LogEvent.createOpposingLogEvent(gev,750));
        P2PVertex queriedPeer=new PeerVertex(gev.getParam(1));
        for (        P2PVertex querySender : queryPeers) {
          if (hiddenGraph.findEdge(querySender,queriedPeer) != null) {
            LogEvent ev=new LogEvent(gev.getTime() + 1,"String_Node_Str",querySender.getKey(),queriedPeer.getKey());
            colouringEvents.add(ev);
            colouringEvents.add(LogEvent.createOpposingLogEvent(ev,750));
            break;
          }
        }
        queryPeers.add(queriedPeer);
      }
      Collections.sort(colouringEvents);
      for (Iterator<LogEvent> iter=colouringEvents.iterator(); iter.hasNext(); ) {
        LogEvent event=(LogEvent)iter.next();
        if (event.getTime() < gev.getTime()) {
          myGraphEvolution.addLast(event);
          iter.remove();
        }
 else {
          break;
        }
      }
      myGraphEvolution.addLast(gev);
    }
    myGraphEvolution.add(new LogEvent((myGraphEvolution.getLast().getTime()) + "String_Node_Str"));
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
  layout=sp_layout;
  visibleGraph=new P2PNetworkGraph();
  vv=new VisualizationViewer<P2PVertex,P2PConnection>(layout,new Dimension(DEFWIDTH,DEFHEIGHT));
  JRootPane rp=this.getRootPane();
  rp.putClientProperty("String_Node_Str",Boolean.TRUE);
  getContentPane().setLayout(new BorderLayout());
  getContentPane().setFont(new Font("String_Node_Str",Font.PLAIN,12));
  getContentPane().setBounds(0,0,DEFWIDTH,DEFHEIGHT);
  DefaultModalGraphMouse<P2PVertex,P2PConnection> gm=new DefaultModalGraphMouse<P2PVertex,P2PConnection>();
  vv.setGraphMouse(gm);
  vv.getRenderer().getVertexLabelRenderer().setPosition(Renderer.VertexLabel.Position.CNTR);
  vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller<P2PVertex>());
  vv.getRenderContext().setVertexShapeTransformer(new P2PVertexShapeTransformer());
  vv.getRenderContext().setEdgeStrokeTransformer(new P2PEdgeStrokeTransformer());
  vv.getRenderContext().setEdgeShapeTransformer(new P2PEdgeShapeTransformer());
  vv.getRenderContext().setVertexFillPaintTransformer(new P2PVertexFillPaintTransformer(vv.getPickedVertexState()));
  vv.getRenderContext().setVertexStrokeTransformer(new P2PVertexStrokeTransformer());
  vv.setForeground(Color.white);
  eventthread=new EventPlayingThread(myGraphEvolution);
  vv.addComponentListener(new ComponentAdapter(){
    /** 
 * @see java.awt.event.ComponentAdapter#componentResized(java.awt.event.ComponentEvent)
 */
    @Override public void componentResized(    ComponentEvent arg0){
      super.componentResized(arg0);
      layout.setSize(arg0.getComponent().getSize());
    }
  }
);
  JPanel graphsPanel=new JPanel();
  graphsPanel.add(vv);
  Relaxer relaxer=new VisRunner((IterativeContext)layout);
  relaxer.stop();
  relaxer.setSleepTime(80L);
  relaxer.relax();
  relaxerButton=new JButton("String_Node_Str");
  relaxerButton.addActionListener(new relaxerButtonListener(relaxer));
  stopButton=new JButton("String_Node_Str");
  stopButton.addActionListener(new StopButtonListener());
  fastReverseButton=new JButton("String_Node_Str");
  fastReverseButton.addActionListener(new FastReverseButtonListener());
  reverseButton=new JButton("String_Node_Str");
  reverseButton.addActionListener(new ReverseButtonListener());
  pauseButton=new JButton("String_Node_Str");
  pauseButton.addActionListener(new PauseButtonListener());
  forwardButton=new JButton("String_Node_Str");
  forwardButton.addActionListener(new ForwardButtonListener());
  fastforwardButton=new JButton("String_Node_Str");
  fastforwardButton.addActionListener(new FastforwardButtonListener());
  playbackSlider=new JSlider(JSlider.HORIZONTAL,0,(int)myGraphEvolution.getLast().getTime(),0);
  playbackSlider.addChangeListener(new SliderListener());
  playbackSlider.setMajorTickSpacing(playbackSlider.getExtent() / 4);
  playbackSlider.setMajorTickSpacing(playbackSlider.getExtent() / 8);
  playbackSlider.setPaintTicks(true);
  playbackSlider.setPaintLabels(false);
  playbackSlider.setBackground(Color.GRAY);
  playbackSlider.setForeground(Color.BLUE);
  GridBagLayout southLayout=new GridBagLayout();
  GridBagConstraints southConstraints=new GridBagConstraints();
  JPanel south=new JPanel();
  south.setBackground(Color.GRAY);
  south.setLayout(new GridLayout(2,1));
  JPanel buttonPanel=new JPanel();
  buttonPanel.setBackground(Color.GRAY);
  buttonPanel.setLayout(southLayout);
  buttonPanel.add(fastReverseButton);
  buttonPanel.add(reverseButton);
  buttonPanel.add(pauseButton);
  buttonPanel.add(forwardButton);
  southConstraints.gridwidth=GridBagConstraints.REMAINDER;
  southLayout.setConstraints(fastforwardButton,southConstraints);
  buttonPanel.add(fastforwardButton);
  south.add(buttonPanel);
  south.add(playbackSlider);
  stopButton.setEnabled(false);
  fastReverseButton.setEnabled(false);
  reverseButton.setEnabled(false);
  pauseButton.setEnabled(false);
  forwardButton.setEnabled(false);
  fastforwardButton.setEnabled(false);
  playbackSlider.setEnabled(false);
  GridBagLayout westLayout=new GridBagLayout();
  GridBagConstraints westConstraints=new GridBagConstraints();
  JPanel west=new JPanel();
  west.setBorder(BorderFactory.createTitledBorder("String_Node_Str"));
  west.setBackground(Color.GRAY);
  west.setLayout(westLayout);
  JPanel p=new JPanel();
  p.setBorder(BorderFactory.createTitledBorder("String_Node_Str"));
  p.setBackground(Color.GRAY);
  p.add(gm.getModeComboBox());
  westConstraints.gridwidth=GridBagConstraints.REMAINDER;
  westLayout.setConstraints(p,westConstraints);
  west.add(p);
  westLayout.setConstraints(relaxerButton,westConstraints);
  west.add(relaxerButton);
  westLayout.setConstraints(stopButton,westConstraints);
  west.add(stopButton);
  getContentPane().add(graphsPanel,BorderLayout.CENTER);
  getContentPane().add(south,BorderLayout.SOUTH);
  getContentPane().add(west,BorderLayout.WEST);
}

Fixed version (ground truth):
/** 
 * applet initialization
 */
public void init(){
  System.out.println("String_Node_Str");
  SpringLayout<P2PVertex,P2PConnection> sp_layout=null;
  try {
    BufferedReader in;
    if (ontheweb) {
      URL yahoo=new URL(DEF_LOG_URL);
      in=new BufferedReader(new InputStreamReader(yahoo.openStream()));
    }
 else {
      if (mylogfile == null)       in=new BufferedReader(new FileReader(DEF_LOG_FILE));
 else {
        in=new BufferedReader(new FileReader(mylogfile));
        System.out.println("String_Node_Str" + mylogfile.getAbsolutePath());
      }
    }
    myGraphEvolution=new LinkedList<LogEvent>();
    hiddenGraph=new P2PNetworkGraph();
    sp_layout=new SpringLayout<P2PVertex,P2PConnection>(hiddenGraph,new P2PNetEdgeLengthFunction());
    sp_layout.setSize(new Dimension(DEFWIDTH,DEFHEIGHT));
    sp_layout.setForceMultiplier(0.6);
    sp_layout.setInitializer(new P2PVertexPlacer(sp_layout,new Dimension(DEFWIDTH,DEFHEIGHT)));
    sp_layout.initialize();
    String str;
    List<LogEvent> colouringEvents=new LinkedList<LogEvent>();
    List<P2PVertex> queryPeers=new LinkedList<P2PVertex>();
    int totalLines=Integer.parseInt(in.readLine());
    int lineCount=0;
    myGraphEvolution.add(new LogEvent("String_Node_Str"));
    while ((str=in.readLine()) != null) {
      lineCount++;
      LogEvent gev=new LogEvent(str);
      if (gev.isConstructing()) {
        graphConstructionEvent(gev,hiddenGraph);
        sp_layout.step();
        sp_layout.step();
      }
      if (gev.getType().equals("String_Node_Str") || gev.getType().equals("String_Node_Str")) {
        colouringEvents.add(LogEvent.createOpposingLogEvent(gev,2000));
        if (gev.getType().equals("String_Node_Str")) {
          queryPeers.add(new PeerVertex(gev.getParam(1)));
        }
      }
 else       if (gev.getType().equals("String_Node_Str")) {
        colouringEvents.add(LogEvent.createOpposingLogEvent(gev,750));
        P2PVertex queriedPeer=new PeerVertex(gev.getParam(1));
        for (        P2PVertex querySender : queryPeers) {
          if (hiddenGraph.findEdge(querySender,queriedPeer) != null) {
            LogEvent ev=new LogEvent(gev.getTime() + 1,"String_Node_Str",querySender.getKey(),queriedPeer.getKey());
            colouringEvents.add(ev);
            colouringEvents.add(LogEvent.createOpposingLogEvent(ev,750));
            break;
          }
        }
        queryPeers.add(queriedPeer);
      }
      Collections.sort(colouringEvents);
      for (Iterator<LogEvent> iter=colouringEvents.iterator(); iter.hasNext(); ) {
        LogEvent event=(LogEvent)iter.next();
        if (event.getTime() < gev.getTime()) {
          myGraphEvolution.addLast(event);
          iter.remove();
        }
 else {
          break;
        }
      }
      myGraphEvolution.addLast(gev);
    }
    myGraphEvolution.add(new LogEvent((myGraphEvolution.getLast().getTime()) + "String_Node_Str"));
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
  layout=sp_layout;
  visibleGraph=new P2PNetworkGraph();
  vv=new VisualizationViewer<P2PVertex,P2PConnection>(layout,new Dimension(DEFWIDTH,DEFHEIGHT));
  JRootPane rp=this.getRootPane();
  rp.putClientProperty("String_Node_Str",Boolean.TRUE);
  getContentPane().setLayout(new BorderLayout());
  getContentPane().setFont(new Font("String_Node_Str",Font.PLAIN,12));
  getContentPane().setBounds(0,0,DEFWIDTH,DEFHEIGHT);
  DefaultModalGraphMouse<P2PVertex,P2PConnection> gm=new DefaultModalGraphMouse<P2PVertex,P2PConnection>();
  vv.setGraphMouse(gm);
  vv.getRenderer().getVertexLabelRenderer().setPosition(Renderer.VertexLabel.Position.CNTR);
  vv.getRenderContext().setVertexLabelTransformer(new ToStringLabeller<P2PVertex>());
  vv.getRenderContext().setVertexShapeTransformer(new P2PVertexShapeTransformer());
  vv.getRenderContext().setEdgeStrokeTransformer(new P2PEdgeStrokeTransformer());
  vv.getRenderContext().setEdgeShapeTransformer(new P2PEdgeShapeTransformer());
  vv.getRenderContext().setVertexFillPaintTransformer(new P2PVertexFillPaintTransformer(vv.getPickedVertexState()));
  vv.getRenderContext().setVertexStrokeTransformer(new P2PVertexStrokeTransformer());
  vv.setForeground(Color.white);
  eventthread=new EventPlayingThread(myGraphEvolution);
  vv.addComponentListener(new ComponentAdapter(){
    /** 
 * @see java.awt.event.ComponentAdapter#componentResized(java.awt.event.ComponentEvent)
 */
    @Override public void componentResized(    ComponentEvent arg0){
      super.componentResized(arg0);
      layout.setSize(arg0.getComponent().getSize());
    }
  }
);
  JPanel graphsPanel=new JPanel();
  graphsPanel.add(vv);
  Relaxer relaxer=new VisRunner((IterativeContext)layout);
  relaxer.stop();
  relaxer.setSleepTime(80L);
  relaxer.relax();
  relaxerButton=new JButton("String_Node_Str");
  relaxerButton.addActionListener(new relaxerButtonListener(relaxer));
  stopButton=new JButton("String_Node_Str");
  stopButton.addActionListener(new StopButtonListener());
  fastReverseButton=new JButton("String_Node_Str");
  fastReverseButton.addActionListener(new FastReverseButtonListener());
  reverseButton=new JButton("String_Node_Str");
  reverseButton.addActionListener(new ReverseButtonListener());
  pauseButton=new JButton("String_Node_Str");
  pauseButton.addActionListener(new PauseButtonListener());
  forwardButton=new JButton("String_Node_Str");
  forwardButton.addActionListener(new ForwardButtonListener());
  fastforwardButton=new JButton("String_Node_Str");
  fastforwardButton.addActionListener(new FastforwardButtonListener());
  playbackSlider=new JSlider(JSlider.HORIZONTAL,0,(int)myGraphEvolution.getLast().getTime(),0);
  SliderListener s=new SliderListener();
  playbackSlider.addChangeListener(s);
  playbackSlider.addMouseListener(s);
  playbackSlider.setMajorTickSpacing(playbackSlider.getExtent() / 4);
  playbackSlider.setMajorTickSpacing(playbackSlider.getExtent() / 8);
  playbackSlider.setPaintTicks(true);
  playbackSlider.setPaintLabels(false);
  playbackSlider.setBackground(Color.GRAY);
  playbackSlider.setForeground(Color.BLUE);
  GridBagLayout southLayout=new GridBagLayout();
  GridBagConstraints southConstraints=new GridBagConstraints();
  JPanel south=new JPanel();
  south.setBackground(Color.GRAY);
  south.setLayout(new GridLayout(2,1));
  JPanel buttonPanel=new JPanel();
  buttonPanel.setBackground(Color.GRAY);
  buttonPanel.setLayout(southLayout);
  buttonPanel.add(fastReverseButton);
  buttonPanel.add(reverseButton);
  buttonPanel.add(pauseButton);
  buttonPanel.add(forwardButton);
  southConstraints.gridwidth=GridBagConstraints.REMAINDER;
  southLayout.setConstraints(fastforwardButton,southConstraints);
  buttonPanel.add(fastforwardButton);
  south.add(buttonPanel);
  south.add(playbackSlider);
  stopButton.setEnabled(false);
  fastReverseButton.setEnabled(false);
  reverseButton.setEnabled(false);
  pauseButton.setEnabled(false);
  forwardButton.setEnabled(false);
  fastforwardButton.setEnabled(false);
  playbackSlider.setEnabled(false);
  GridBagLayout westLayout=new GridBagLayout();
  GridBagConstraints westConstraints=new GridBagConstraints();
  JPanel west=new JPanel();
  west.setBorder(BorderFactory.createTitledBorder("String_Node_Str"));
  west.setBackground(Color.GRAY);
  west.setLayout(westLayout);
  JPanel p=new JPanel();
  p.setBorder(BorderFactory.createTitledBorder("String_Node_Str"));
  p.setBackground(Color.GRAY);
  p.add(gm.getModeComboBox());
  westConstraints.gridwidth=GridBagConstraints.REMAINDER;
  westLayout.setConstraints(p,westConstraints);
  west.add(p);
  westLayout.setConstraints(relaxerButton,westConstraints);
  west.add(relaxerButton);
  westLayout.setConstraints(stopButton,westConstraints);
  west.add(stopButton);
  getContentPane().add(graphsPanel,BorderLayout.CENTER);
  getContentPane().add(south,BorderLayout.SOUTH);
  getContentPane().add(west,BorderLayout.WEST);
}