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

    +79

    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
    import java.util.Random
    
    def random = new Random()
    def latitude = ''
    def longitude = ''
    def validDigits = 1..9
    
    for(def i in 1..16) {
    	if(i == 3){
    		latitude += '.'
    		longitude += '.'
    	}
    	latitude += validDigits[random.nextInt(validDigits.size())]
    	longitude += validDigits[random.nextInt(validDigits.size())]
    }
    
    testRunner.testCase.testSuite.setPropertyValue('soapuiclient.user.coordinates.latitude', latitude)
    testRunner.testCase.testSuite.setPropertyValue('soapuiclient.user.coordinates.longitude', longitude)

    Есть у нас монга, на ней хранятся в координаты. Проиндексировано всё, поиск быстрый, все дела... Ну и на это дело тест есть в SoapUI. Генерятся случайные координаты, сохраняются и вычитываются. Всё работало до поры до времени..

    И тут тест упал. На ровном месте регрессия. Лезу в логи, нахожу ошибку: координаты: [ 51.16344233595981, 94.45587248671733 ]. Ага, думаю, долгота больше 90 градусов... Проверил - так и есть, умняшка монга валидирует координаты. Ну понятно, рандом подкачал, ща поправим. Но там был не просто рандом...

    madhead, 19 Декабря 2013

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

    +129

    1. 1
    com.sun.java.swing.plaf.nimbus.InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState

    Класс из состава JDK 6.

    someone, 18 Декабря 2013

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

    +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
    for (int i = 0; i != nl.length(); i++)
    {
        out.write(nl.charAt(i));
    }
    
    for (int i = 0; i != footerStart.length(); i++)
    {
        out.write(footerStart.charAt(i));
    }
    
    for (int i = 0; i != type.length(); i++)
    {
        out.write(type.charAt(i));
    }
    
    for (int i = 0; i != footerTail.length(); i++)
    {
        out.write(footerTail.charAt(i));
    }
    
    for (int i = 0; i != nl.length(); i++)
    {
        out.write(nl.charAt(i));
    }

    Зачем писать функцию, когда можно успешно копипастить циклы

    http://grepcode.com/file/repo1.maven.org/maven2/org.bouncycastle/bcpg-jdk16/1.45/org/bouncycastle/bcpg/ArmoredOutputStream.java

    roman-kashitsyn, 15 Декабря 2013

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

    +72

    1. 1
    2. 2
    3. 3
    4. 4
    SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEWITHMD5ANDTRIPLEDES");
    PBEKeySpec spec = new PBEKeySpec(password, salt, 1024, 128);
    SecretKey key = factory.generateSecret(spec);
    hexdump(key.getEncoded());

    http://ideone.com/bVElQG

    Не, ну я все понимаю, PKCS #5 1.5 аля PBE, MD5 и DES не считаются безопасными алгоритмами... но не настолько же...

    bormand, 14 Декабря 2013

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

    +73

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    GZIPOutputStream out = new GZIPOutputStream(out) {
        {
            def.setLevel(Deflater.BEST_COMPRESSION);
        }
    };

    Вот так можно выставить максимальную степень сжатия GZIP-потока в жабе.

    roman-kashitsyn, 13 Декабря 2013

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

    +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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    private int compareDates(java.sql.Date date1, java.sql.Date date2) {
    
    if (date1.getYear() < date2.getYear())
    return 1;
    
    if (date1.getYear() > date2.getYear())
    return -1;
     
    if (date1.getMonth() < date2.getMonth())
    return 1;
    
    if (date1.getMonth() > date2.getMonth())
    return -1;
     
    if (date1.getDate() < date2.getDate())
    return 1;
    
    if (date1.getDate() > date2.getDate())
    return -1;
     
    return 0;
    }

    Сравнение двух дат

    iboken, 10 Декабря 2013

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

    +78

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public class LocalizedMatcher implements Matcher, ContainsExtraTypeInformation, CapturesArguments, MatcherDecorator, Serializable {
    
        ...
     
        public void _dont_implement_Matcher___instead_extend_BaseMatcher_() {
            // yeah right
        }
    
        ...
    
    }

    Порадовал именно коммент :)

    myzone, 08 Декабря 2013

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

    +73

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    int k = 0;
    for (int i = 1; i<=str.length(); i++){
      k = i;
    }
    System.out.println("dlina: "+k);

    Счётчик длины строки....

    fedes, 06 Декабря 2013

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

    +69

    1. 1
    2. 2
    3. 3
    4. 4
    if (errors.isEmpty())
                success(result);
            else
                throw new UnsupportedOperationException();

    ошибки быть не может!

    Dougrinch, 03 Декабря 2013

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

    +77

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    final Pair<List<Pair<Pair<Long, String>, Maybe<String>>>, List<Pair<Pair<Long, String>, Maybe<String>>>> split = Cu.split(pushResults, new Filter<Pair<Pair<Long, String>, Maybe<String>>>() {
                @Override
                public boolean fits(final Pair<Pair<Long, String>, Maybe<String>> arg) {
                    return arg.second.hasValue();
                }
            });

    Functional Java: simply clever

    roman-kashitsyn, 02 Декабря 2013

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