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

    +74

    1. 1
    for (Integer i = 0; i<_pwiList.size(); i++)

    Вот к чему приводит бездумное использование классов-обёрток "для унификации". Конечно, оптимизатор может здесь сообразить, но не факт. А если данный фрагмент трактовать буквально, то i++ приведёт к unboxing, увеличению и последующему boxing.

    konsoletyper, 30 Июля 2010

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

    +75

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    PriceWithInterval pwi = new PriceWithInterval();
                pwi.setPrice(p);
                pwi.setStart(dateFormat.parse(dateFormat.format(p.getStartDate())).getTime());
                Long endTm = dateFormat.parse(dateFormat.format(p.getEndDate())).getTime();
                //Больше 50 лет - техническая бесконечность
                if (((endTm-pwi.getStart())/1000/3600/24/365)>50)
                {
                    endTm = dateFormat.parse("31.12.9999").getTime();
                }
    
                // Где dateFormat объявлен как
                new SimpleDateFormat("dd.MM.yyyy");

    Вот такое вот масло масляное. Думается, что этот трюк применён здесь для того, чтобы получить начало дня. Чем не устраивает Calendar, неясно. Ну в крайнем случае, можно было целочисленно поделить и умножить на 1000 * 3600 * 24. Ну и вычисление в общем-то константной "технической бесконечности" радует неимоверно.

    konsoletyper, 30 Июля 2010

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

    +144

    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
    script type="text/javascript" src="/js/jquery.form.js"></script>
    <script type="text/javascript">
    $(document).ready(function(){
    
      var options = {
    
      	target: '#output',
            dataType:  'json',
            type: 'POST',
            success:   processJson
    
      };
    
    
      $('#myForm1').submit(function() {
        $(this).ajaxSubmit(options);
       
        return false;
      });
    
    });
    function processJson(data) {
       
        alert(data.name);
    $('#output').html('<p>'+data.name+'</p><p>').append()
    
    }
    </script>
    <div id="output"></div>
    <form action="/pm/send/"   id="myForm1" method="post">
    Логин получателя: <input type="text" value="{{loginauthor}}" name="whom" id="ValidLogin"/><br/>
    Тема: <input type="text" name="title"><br/>
    Сообщение: <textarea rows="10" cols="20"
    name=text>
    </textarea><br/>
    <input type="submit" value="Отправить" name="but"  style="background: #EFEFEF;"/> 
    
    обработчик 
    ....
     $arr=array('name'=>$done);
                                    echo json_encode($arr);
    
    
    пост уходит, но никакой реакции ни алерта ничего, и сам скрипт не срабатывает

    dalass, 29 Июля 2010

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

    +64

    1. 1
    reader = new CSVReader(new BufferedReader(new InputStreamReader(new FileInputStream(csvFile), "UTF-8")), Config.getCSVDelimiter());

    Хорошо что файл ещё не зазипован...

    tinynick, 29 Июля 2010

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

    +115

    1. 1
    s.replaceAll("(\\/\\.\\.\\/)+", "/").replaceFirst("^((\\.)+\\/)+", "");

    вот такие вот суровые паттерны
    как я это увидел - мне сразу вид двух друзей переханных трактором вспомнился

    String s="../../../a./../../files/file1.rar"; // надо убрать строки вида "../"

    3.14159265, 28 Июля 2010

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

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public class SomeClass
    {
    	@SuppressWarnings("unused")
    	private Validator validator;
    
    	... 
    }

    Эта переменная реально не используется. Удалить бы - ан нет, автор почему-то считает, что лучше пометить её как неиспользуемую, чтобы компилятор и Эклипс не ругались.
    Чем только народ думает...

    asolntsev, 21 Июля 2010

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

    +82

    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
    @ValidationExpression(value = "if (inn != null && !\"\".equals(inn)) {\n" +
                                  "char[] st = inn.toCharArray();\n" +
                                  "for(int i=0; i < st.length; i++) {\n" +
                                  "if (!Character.isDigit(st[i])) { return false; }\n" +
                                  "}\n" +
                                  "}" +
                                  "return true;", message = Messages.WRONG_INN_FORMAT)
    @Expression(value = "if (inn != null && !\"\".equals(inn)) {\n" +
                        "char[] st = inn.toCharArray();\n" +
                        "for(int i=0; i < st.length; i++) {\n" +
                        "if (!Character.isDigit(st[i])) { return false; }\n" +
                        "}\n" +
                        "}" +
                        "return true;", messageKey = Messages.WRONG_INN_FORMAT)
    public String getinn() {
    	return getPerson().getinn();
    }
    
    @Required(messageKey = Messages.REQUIRED)
    @DictEntityExists(dictId = MDictionaries.DICT_CURRENCY, message = Messages.NO_DICT_ENTITY)
    @Expression(value = "SystemCounter.DICTCURRENCY__RUR_CURRENCY_TYPE.equals(agentStatementCurrencyId) ? " +
                        "   (" +
                        "       SystemCounter.DICTCURRENCY__RUR_CURRENCY_TYPE.equals(currency_id) ? " +
                        "           true : " +
                        "           SystemCounter.DICTCONTRACTCLASS__CONTRACT_CLASS_XXX.equals(contract_class_id) ? " +
                        "               false : " +
                        "               is_currency_equivalent == 1" +
                        "   ) : (" +
                        "       SystemCounter.DICTCONTRACTCLASS__CONTRACT_CLASS_GENERIC.equals(contract_class_id) &&" +
                        "       is_currency_equivalent == 0 &&" +
                        "       agentStatementCurrencyId.equals(currency_id)" +
                        "   )", messageKey = Messages.CURRENCY_NOT_EQUIVALENT_WITH_AGENT_STATEMENT)
    public String getcurrency_id() {return getContract().getcurrency_id();}

    нет слов

    borka, 21 Июля 2010

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

    +79

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    private void getCurrentBranch();
    public TDictBranch getCurrentBrach();
    public TDictBranch2 getCurrentBrach2();
    public TDictBranch2 getCurrentBrach2(Date lookupDate);
    public String getCurrentBrachId();
    public String getCurrentBrunchCode();
    public static String getCurrentBranchCharId();

    некоторые методы из класса конфигурации приложения

    borka, 20 Июля 2010

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

    +72

    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 String getClassName(final HWND hWnd) {
    	final char[] cname_b = new char[1024];
    	User32.INSTANCE.GetClassName(hWnd, cname_b, 1000);
    
    	final char[] cname_b_truncated = ArrayUtils.toPrimitive(Iterables
    		.toArray(Functional.takeWhile(Arrays.asList(ArrayUtils
    			.toObject(cname_b)), Predicates.not(Predicates
    			.equalTo(Character.valueOf((char) 0)))),
    			Character.class));
    
    	return String.valueOf(cname_b_truncated);
        }

    Только что выдавил)

    Интерес представляют строки с 5 по 9. Тут должно было быть всего-лишь
    takeWhile (/= '\0') cname_b
    но из-за боксинга/анбоксинга (примитивные типы в Java не могут быть параметрами Generic), и из-за того, что массивы в Java не Iterable - получилось ЭТО.

    burdakovd, 17 Июля 2010

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

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    float lan = getLan();
           float lon = getLan();
           if(lan == lan || lon == lon)
           {
               throw new RuntimeException("Bad value");
           }

    Из моего реалного проекта. Этот код реально делает полезную вещь

    xaoc, 16 Июля 2010

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