#fixed code
                                public void sendFrame(Frame f) {
        StringBuilder sb = new StringBuilder(50);
        sb.append("< send ");
        sb.append(Integer.toHexString(f.getIdentifier()));
        sb.append(' ');
        sb.append(Integer.toString(f.getLength()));
        sb.append(' ');
        String data = Util.byteArrayToHexString(f.getData());
        for(int i=0;i<data.length();i+=2) {
            sb.append(data.charAt(i));
            sb.append(data.charAt(i+1));
            sb.append(' ');
        }
        sb.append(">");
        send(sb.toString());
    }
#vulnerable code 
                                public void sendFrame(Frame f) {
        StringBuilder sb = new StringBuilder();
        sb.append("< send ");
        sb.append(Integer.toHexString(f.getIdentifier()));
        sb.append(' ');
        sb.append(Integer.toString(f.getLength()));
        sb.append(' ');
        String data = Util.byteArrayToHexString(f.getData());
        for(int i=0;i<data.length();i+=2) {
            sb.append(data.charAt(i));
            sb.append(data.charAt(i+1));
            sb.append(' ');
        }
        sb.append(">");
        synchronized(output) {
            output.print(sb.toString());
            output.flush();
        }
    } 
                            #location 15 
                            #vulnerability type THREAD_SAFETY_VIOLATION