[Demonstration 1]

[Buggy Method]
public void enableTray(boolean enable) {
    if (enable && SystemTray.isSupported()) {
        frame.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
        SystemTray tray = SystemTray.getSystemTray();
        if (trayIcon == null) {
            // Menu
            PopupMenu menu = new PopupMenu();
            MenuItem item = new MenuItem("Open");
            item.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    frame.setVisible(true);
                }
            });
            menu.add(item);
            menu.addSeparator();
            item = new MenuItem("Exit");
            item.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    System.exit(0);
                }
            });
            menu.add(item);
            // Icon
            trayIcon = new TrayIcon(Toolkit.getDefaultToolkit().getImage(defaultIcon), "Console", menu);
            trayIcon.setImageAutoSize(true);
            trayIcon.addMouseListener(new MouseListener() {

                public void mouseClicked(MouseEvent e) {
                    if (e.getClickCount() == 2)
                        frame.setVisible(true);
                }

                public void mouseEntered(MouseEvent e) {
                }

                public void mouseExited(MouseEvent e) {
                }

                public void mousePressed(MouseEvent e) {
                }

                public void mouseReleased(MouseEvent e) {
                }
            });
        }
        try {
            tray.add(trayIcon);
        } catch (AWTException e) {
            System.err.println("TrayIcon could not be added.");
        }
    } else {
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        SystemTray.getSystemTray().remove(trayIcon);
    }
}

[Buggy Hunk]
Toolkit.getDefaultToolkit().getImage(defaultIcon),

[Patch]
Toolkit.getDefaultToolkit().getImage(DEFAULT_ICON),

[Demonstration 2]

[Buggy Method]
private static void setupSystemTray() {
    if (SystemTray.isSupported() == false)
        return;
    fontForIcon = createFont();
    final Image img = createFontIcon(fontForIcon, "\uf19c", new Color(0xff, 0x0, 0x0));
    EventQueue.invokeLater(new Runnable() {

        public void run() {
            final SystemTray tray = SystemTray.getSystemTray();
            assert tray != null;
            assert img != null;
            //                    final TrayIcon trayIcon = new TrayIcon(img, STARTING, null);
            //                    trayIcon.setImageAutoSize(true);
            //
            //                    final JPopupMenu jpopup = new JPopupMenu();
            //
            //                    JMenuItem javaCupMI = new JMenuItem("Example", new ImageIcon("javacup.gif"));
            //                    jpopup.add(javaCupMI);
            //
            //                    jpopup.addSeparator();
            //
            //                    JMenuItem exitMI = new JMenuItem("Exit");
            //                    jpopup.add(exitMI);
            //
            //                    trayIcon.addMouseListener(new MouseAdapter() {
            //                        public void mouseReleased(MouseEvent e) {
            //                            if (e.getButton() == MouseEvent.BUTTON1) {
            //                                jpopup.setLocation(e.getX(), e.getY());
            //                                jpopup.setInvoker(null);
            //                                jpopup.setVisible(true);
            //                            }
            //                        }
            //                    });
            PopupMenu popup = new PopupMenu();
            final TrayIcon trayIcon = new TrayIcon(img, STARTING, popup);
            trayIcon.setImageAutoSize(true);
            MenuItem item;
            item = new MenuItem("Shutdown");
            item.addActionListener(new ActionListener() {

                public void actionPerformed(ActionEvent e) {
                    tray.remove(trayIcon);
                    System.exit(0);
                }
            });
            popup.add(item);
            try {
                tray.add(trayIcon);
                trayIcon.displayMessage("Staring Civilizer...", "Please wait...", MessageType.INFO);
            } catch (AWTException e) {
                e.printStackTrace();
                throw new Error(e);
            }
        }
    });
    // EventQueue.invokeLater()
}

[Buggy Hunk]
if (SystemTray.isSupported() == false)

[Patch]
if (systemTraySupported() == false)

[Demonstration 3]

[Buggy Method]
protected void init() {
    // Create a queue for processing
    queue = new LinkedBlockingQueue<String>(10000);
    GeoPosHelper fac = new GeoPosHelper();
    // Build SWE Common record structure
    twitterData = new DataRecordImpl();
    twitterData.setName(getName());
    twitterData.setDefinition("http://sensorml.com/ont/swe/property/Event");
    // Add timestamp, location, text, and user
    twitterData.addComponent("time", fac.newTimeStampIsoUTC());
    Vector locVector = fac.newLocationVectorLatLon(SWEConstants.DEF_SENSOR_LOC);
    locVector.setLabel("Location");
    locVector.setDescription("Lat/Long vector of a Tweet");
    twitterData.addComponent("location", locVector);
    twitterData.addComponent("text", fac.newText(GeoPosHelper.getPropertyUri("Text"), "Text", "The text content of a Tweet"));
    twitterData.addComponent("user", fac.newText(GeoPosHelper.getPropertyUri("User"), "Uesr", "The user who pulbished a Tweet"));
    // Generate encoding definition
    twitterEncoding = fac.newXMLEncoding();
}

[Buggy Hunk]
twitterEncoding = fac.newXMLEncoding();

[Patch]
twitterEncoding = fac.newTextEncoding(",", "\n");