1. Лучший говнокод

    В номинации:
    За время:
  2. Java / Говнокод #8489

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    public class User extends HttpApiDealer{
        private int id = 347;
        private Date lustUpdate;
        private long refreshTime = 10;
        private boolean onlineStatus;
        
        
        public boolean isOnline() {
            Date timeForRefresh = new Date();
            timeForRefresh.setTime(new Date().getTime() - refreshTime);
            if(lustUpdate == null) {
                lustUpdate = new Date();
            }else if(lustUpdate.after(timeForRefresh)) {
                
            }
            
            return true; //заглушка
        }
        
    }

    Хм, смущает меня работа с датами в этом коде.

    manyrus, 11 Ноября 2011

    Комментарии (10)
  3. Java / Говнокод #8466

    +74

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    protected static final Set<String> SUCCESS_STATUSES = new HashSet<String>(3) {
        private static final long serialVersionUID = 76234654856701L;{
        add(PROCESSING_COMPLETE_RESULTS_CLEAR.toString());
        add(PROCESSING_COMPLETE_WITH_RESULTS_INFORMATION.toString());
        add(NOT_PROCESSED_STATE_LIMITATION.toString());
    }};

    Эпичный способ создать статическую константную мапу без статического блока в основном классе

    roman-kashitsyn, 10 Ноября 2011

    Комментарии (12)
  4. Java / Говнокод #8163

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    public class test {
    class Oper 
    {
        int a, b, x,y;
        int sum (int x) {
        x = a+b;
        return x;
     }
     int dif (int y) 
     {
      y = a-b;
      return y;
     }
    }
    
    public static void main(String[] args) 
    {
     Oper op = new Oper();
        op.a = 6;
        op.b = 7;
        System.out.println("Сумма=" + op.sum());
        System.out.println("Разность=" + op.dif());
    }

    stonerhawk, 11 Октября 2011

    Комментарии (9)
  5. Java / Говнокод #7908

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    public class Statuses {
        protected List<String> id;
        protected List<String> name;
    
        public List<String> getId() {
            if (id == null) {
                id = new ArrayList<String>();
            }
            return this.id;
        }
    
        public List<String> getName() {
            if (name == null) {
                name = new ArrayList<String>();
            }
            return this.name;
        }
    }
    
    Statuses statuses = new Statuses();
    List<String> statusesString = statuses.getId();

    Создание пустого списка.

    Art, 20 Сентября 2011

    Комментарии (5)
  6. Куча / Говнокод #7892

    +74

    1. 1
    Ваш пароль должен состоять из 6-12 букв или цифр нормальной толщины шрифта.

    Не говнокод, но...

    7ion, 18 Сентября 2011

    Комментарии (58)
  7. Java / Говнокод #7032

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    private static java.util.Hashtable<String, Session> sessions =
        new java.util.Hashtable<String, Session>();
    ...
    public static SessionOperations[] getSessions() {
        int cnt = sessions.size();
        SessionOperations[] res = new SessionOperations[cnt];
        java.util.Enumeration<String> e = sessions.keys();
        for( int i = 0; i < res.length; i++ ) {
          String sid = e.nextElement();
          res[i] = sessions.get( sid ).getOperations( sid );
        }
        return res;
    }

    Удаление из sessions между получением размера и набора ключей приводит к весьма печальным последствиям...

    P.S. В результате в течение трех суток в production не удалялись оставленные сессии (без Logout), sessions отожрал 600М и всё свалилось с OOM.

    Skipy, 23 Июня 2011

    Комментарии (4)
  8. Java / Говнокод #6943

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    public void removeFromBase()
                throws SQLException{
            for(ServiceInstance serv: getServiceInstances())
                serv.removeFromBase();
            for(Pay pay: pays)
                pay.removeFromBase();
            String query;
            PreparedStatement ps = null;
            Connection connection = null;
            try{
                connection = TIDatasource.getInstance().getConnection();
                query = "DELETE FROM orders WHERE id=?";
                ps = connection.prepareStatement(query);
                ps.setLong(1, getId());
                int res = ps.executeUpdate();
                if(res != 1)
                    throw new SQLException("Unexpected number of orders have deleted: " + res);
            }catch(SQLException sqlex){
                throw new SQLException("Can't remove order from base because of error: " + sqlex);
            }finally{
                ps.close();
                connection.close();
            }
        }

    PRIMARY KEY(`id`)

    volatile, 13 Июня 2011

    Комментарии (15)
  9. Java / Говнокод #6670

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    public boolean setBit(byte _position, boolean _state) {
    		if ( !valid ) {
    			LOG.error("value is INVALID");
    			
    			return false;
    		} else if ( _position<0 ) {
    			LOG.error("NEGATIVE _position");
    			
    			return false;
    		} else if ( _position > capacity ) {
    			LOG.warn("_position("+_position+") > cacity("+capacity+") "+
    					"for value "+this);
    			
    			return false;
    		}
    		
    		value|=( (_state ? 1 : 0) << (_position+1) );
    		
    		return true;
    }

    ога, разбежался

    ilardm, 14 Мая 2011

    Комментарии (16)
  10. Java / Говнокод #6652

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    import java.util.Calendar;
    public class CalendarTime {
    	public static void main(String args[]) {
    	Calendar now = Calendar.getInstance();
    	now.setTimeInMillis(System.currentTimeMillis());
    	System.out.println("Now : "+(((now.get(Calendar.YEAR))))+" year.");
    	System.out.println("Now : "+(((now.get(Calendar.MONTH))))+" month.");
    	System.out.println("Now : "+(((now.get(Calendar.DATE))))+" day.");
    	System.out.println("Now : "+(((now.get(Calendar.HOUR_OF_DAY))))+" hour.");
    	System.out.println("Now : "+(((now.get(Calendar.MINUTE))))+" minute.");
    	System.out.println("Now : "+(((now.get(Calendar.SECOND))))+" second.");
    	}
    }

    System.out.println("Now : "+(((now.get(Calendar.MONTH))))+" month.");
    Обратите внимание на эту строку. Отображение идёт некорректно , странно почему??
    С наилучшими пожеланиями, Sun Microsystems ^_^).

    Akira, 13 Мая 2011

    Комментарии (17)
  11. Java / Говнокод #6360

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    public static final int TYPE_A_OK = 0;
    public static final int TYPE_R_OPEN = 1;
    public static final int TYPE_R_STOPSID = 2;
    public static final int TYPE_A_STOPSID = 3;
    //....
    public static final int TYPE_R_ALARM = 26;
    HashMap<String, Integer> typesMap = new HashMap<String, Integer>();
    
    //в конструкторе
    
    public Data() {
    typesMap.put("A_OK", TYPE_A_OK);
    typesMap.put("R_OPEN", TYPE_R_OPEN);
    typesMap.put("R_STOPSID", TYPE_R_STOPSID);
    //...
    typesMap.put("R_ALARM", TYPE_R_ALARM);
    //...
    }
    
    
    //в одном из методов
    
    public boolean processPacket(Packet pack) {
    //...
    StringTokenizer strt = new StringTokenizer(body, "\n");
    		try {
    			id = strt.nextToken();
    			sign = strt.nextToken();
    			type = typesMap.get(strt.nextToken());
    			try {
    				commBody = strt.nextToken();
    			} catch (Exception e) {
    				// System.out.println("ERR: " + id + "; " + sign + "; " + type
    				// + "; ");
    			}
    		} catch (Exception e) {
    			System.err.println(sdf.format(Calendar.getInstance().getTime()) +"packet parsing error");
    			outBody += "A_ERR\n" + e.getMessage();
    		}
    
    switch (type) {
    		case TYPE_A_OK:
    			dontsend = true;
    			break;
    		case TYPE_R_OPEN:
    			outBody = processROpen(comm);
    			break;
    		case TYPE_R_CLOSE:
    			outBody = processRClose(comm);
    			break;
    //...
    case TYPE_R_ALARM:
    			outBody = processRAlarm(comm);
    			break;
    default:
    			outBody += "A_ERR";
    			break;
    }
    //...
    if(debug)
    System.err.println(outBody);
    //...
    return true;
    }

    ява она такая. Вот так. Вынужденно-китайский код. Не умеет свич со строками работать... и не хочется с хэшем заморачиваться. А скоро типов будет больше...

    ark, 14 Апреля 2011

    Комментарии (11)