1. Java / Говнокод #11346

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    status.setCounter(new Number(
     Number.nullToZero(
    status.getCounter()).add(
    value.movePointRight(2))));

    Действительно, кому нужна перегрузка операторов?

    Zozopy, 03 Июля 2012

    Комментарии (106)
  2. Java / Говнокод #11333

    +121

    1. 1
    2. 2
    3. 3
    @SuppressWarnings("deprecation")
    // Stupid GWT doesn't have Calendar, so we have to use a deprecated method. :(
    final int year = new Date().getYear() + 1900;

    someone, 02 Июля 2012

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

    +83

    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
    private String toHTML(String unicode)
        {
            String output = "";
    
            char[] charArray = unicode.toCharArray();
    
            for (int i = 0; i < charArray.length; ++i)
            {                        
                if ((int)charArray[i]>255)
                {
                    String s = ""+Integer.toHexString(charArray[i]);
                    switch (s.length())
                    {
                        case 1: s="\\u000"+s; break;
                        case 2: s="\\u00"+s; break;
                        case 3: s="\\u0"+s; break;
                        case 4: s="\\u"+s; break;
                        default: throw new RuntimeException( s +" is tool long to be a Character");
                    }
                    output += s;
                }
                else
                {
                    output += charArray[i];
                }
                
            }
            return output;
        }

    Эпичнейший говнокод! На серваке top показывает нагрузку 10-12. 3000 пользователей, 100 нод, интеграция с SAP, который пачками проводит документы и выдаёт цены, отчёты по остаткам и т.п. И всё это, как оказалось, капля в море по сравнению с 5 человеками техподдержки, которые сидят в аяксовой консоле мониторинга, для которой HTTP-ответ экранируется данным шедевром. Без этого шедевра нагрузка держится в районе 2-3 даже при достаточно большой активности.

    konsoletyper, 26 Июня 2012

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

    +77

    1. 1
    2. 2
    3. 3
    public static boolean isNull(Collection collection) {
        return collection == null;
    }

    mychka, 25 Июня 2012

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

    +124

    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
    BufferedReader file = null;
        boolean moreData = true;
        //set the parameters
        this.textureDir = textureDir;
    
        //open a file
        try{
          file = new BufferedReader(
              new InputStreamReader(
              (new FileInputStream(filename))), 50000);
        } catch (Exception e) {System.err.println("kan model niet laden"); moreData = false;}
    
        //read shapes until no more data
        while(moreData)
        {
          Shape3D shape = readShape(file);
          if(shape != null)
          {
            tg.addChild(shape);
    
          }
          else
          {
            moreData = false;
          }
        }
    
        try{
          file.close();
          file=null;
        } catch (IOException e)
        {
          System.err.println("file " + filename + " could not be closed!");
        }

    Интересный способ обработки ошибок ввода-вывода.

    Естественно, при неудачном открытии файла вываливается по NullPointerException.

    someone, 20 Июня 2012

    Комментарии (68)
  6. Java / Говнокод #11245

    +87

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
       public static final String HTTP = "http://";
        public static final String HTTPS = "https://";
    
        public static final String HTTP_UP = "HTTP://";
        public static final String HTTPS_UP = "HTTPS://";
    
        public static final String HTTP_UP_1 = "Http://";
        public static final String HTTPS_UP_1 = "Https://";
    
        private static final String STUPID_PROTOCOL = "http://http://";
        private static final String STUPID_PROTOCOL_1 = "ttp://";
        private static final String STUPID_PROTOCOL_2 = "hhttp://";

    из утилит по проверки урлов

    ykhrustalev, 20 Июня 2012

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

    +78

    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
    String result = "";
    
    for (Object obj : col) {
        if (obj instanceof String) {
            result += obj + SEPARATOR;
        } else {
            result += obj.toString() + SEPARATOR;
        }
    }
    					
    if (result.length() >= 2) {
        result = result.substring(0, result.length() - SEPARATOR.length());
    }

    instanceof String доставил.
    Кстати, к проекту подключены apache.commons.lang и guava, так что способов сделать join строк предостаточно.

    roman-kashitsyn, 19 Июня 2012

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

    +69

    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
    String sXLTName = template;
            String[] fileNames = new File(templatePath).list();
            try {
              if (fileNames != null) {
                for (String fileName : fileNames) {
                  if (fileName.equalsIgnoreCase(template)) {
                    sXLTName = fileName;
                    break;
                  }
                }
              }
            } finally {
              tmpBook = POIHelper.openRepBook(templatePath + sXLTName);
            }

    Вместо tmpBook = POIHelper.openRepBook(templatePath + template);

    glprizes, 15 Июня 2012

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

    +70

    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
    public boolean getOrgType() throws SIRException {
            int type = StoredProcedures.getOrgType(getOrgId());
            boolean result = true;
            try {
                if (type == 3 || type == 4) {
                    result = false;
                }
                return result;
            } catch (NumberFormatException e) {
                log.error(e.getMessage(), e);
                throw new SIRException(e.getMessage(), "Ошибка кода организации");
            } catch (Exception e) {
                log.error(e.getMessage(), e);
                throw new SIRException(e.getMessage(), "Ошибка кода организации");
            }
        }

    stalv, 15 Июня 2012

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

    +77

    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
    //...
    final AudioClip bar3Note = new AudioClip(Xylophone.class.getResource(THIRD_SOUND_NODE).toString());
    final AudioClip bar4Note = new AudioClip(Xylophone.class.getResource(FOURTH_SOUND_NODE).toString());
    final AudioClip bar5Note = new AudioClip(Xylophone.class.getResource(FIFTH_SOUND_NODE).toString());
    //...
    
    // ... Далее еще плачевнее...
    bar2Group.setOnMousePressed(new EventHandler<MouseEvent>()
    {
        @Override
        public void handle(MouseEvent me)
        {
            bar2Note.play();
         }
    });
    bar3Group.setOnMousePressed(new EventHandler<MouseEvent>()
    {
        @Override
        public void handle(MouseEvent me)
        {
            bar3Note.play();
        }
    });
    bar4Group.setOnMousePressed(new EventHandler<MouseEvent>()
    {
        @Override
        public void handle(MouseEvent me)
        {
            bar4Note.play();
        }
    });
    // ...
    
    // Ну и, наконец, полный П.З..Ц
    bar1Group.setEffect(l);
    bar2Group.setEffect(l);
    bar3Group.setEffect(l);
    bar4Group.setEffect(l);
    bar5Group.setEffect(l);
    bar6Group.setEffect(l);
    bar7Group.setEffect(l);
    bar8Group.setEffect(l);

    Внедрение JFX без элементарных циклов хорошим не закончится.

    dwinner, 14 Июня 2012

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