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

    +81

    1. 1
    if (loggedInUser.getEmail().equalsIgnoreCase( "" ) ) { ... }

    raorn, 26 Мая 2010

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

    +70

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    public int someGetCountMethod() {
            try {
                ResultSet rs2 = db.select("call someGetCountMethod('')");
                rs2.first();
                return rs2.getInt(1);
            } catch (Exception ex) {
                return 0;
            }
        }

    где-то откапал вот такое

    zlob.jc, 25 Мая 2010

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

    +80

    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
    private String nextUTF8Character() throws IOException, CharacterCodingException
      {
        int iCodePoint = 0;
        int byte1, byte2, byte3, byte4;
        byte1 = is.read();
        if (byte1 == -1)
          return null;
        // проверяем является ли первый бит нулевым
        if ((byte1 & 0x80) == 0)
        {
          // один байт
          iCodePoint = byte1 & 0x7F;
          return new String(Character.toChars(iCodePoint));
        }
        byte2 = is.read();
        if (byte2 == -1)
          return null;
        if ((byte1 & 0xE0) == 0xC0 && (byte2 & 0xC0) == 0x80)
        {
          // два байта
          iCodePoint = ((byte1 & 0x1F) << 6) | (byte2 & 0x3F);
          if (iCodePoint > 0x7F)
            return new String(Character.toChars(iCodePoint));
          else
            throw new CharacterCodingException();
        }
        byte3 = is.read();
        if (byte3 == -1)
          return null;
        if ((byte1 & 0xF0) == 0xE0 && (byte2 & 0xC0) == 0x80 && (byte3 & 0xC0) == 0x80)
        {
          // три байта
          iCodePoint = ((byte1 & 0x0F) << 12) | ((byte2 & 0x3F) << 6) | (byte3 & 0x3F);
          if (iCodePoint > 0x7FF)
            return new String(Character.toChars(iCodePoint));
          else
            throw new CharacterCodingException();
        }
        byte4 = is.read();
        if (byte4 == -1)
          return null;
        if ((byte1 & 0xF8) == 0xF0 && (byte2 & 0xC0) == 0x80 &&
                (byte3 & 0xC0) == 0x80 && (byte4 & 0xC0) == 0x80)
        {
          // четыре байта
          iCodePoint = ((byte1 & 0x07) << 18) | ((byte2 & 0x3F) << 12) |
                  ((byte3 & 0x3F) << 6) | (byte4 & 0x3F);
          if (iCodePoint > 0x0FFFF)
            return new String(Character.toChars(iCodePoint));
          else
            throw new CharacterCodingException();
        }
        throw new CharacterCodingException();
      }

    Мегаоптимизированный код для получения букафф в кодироффке UTFфф-8
    По данным профилировщика именно этот фрагмент самый тормозной в моей сетевой проге

    Max ID, 20 Мая 2010

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

    +77

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    int min = 10;
    int max = 4095;
    for (SomeClass cc : someList) {
      if ( cc.getMinVlan( ) != null ) min = cc.getMinVlan( ) > min ? cc.getMinVlan( ) : min;
      if ( cc.getMaxVlan( ) != null ) max = cc.getMaxVlan( ) < max ? cc.getMaxVlan( ) : max;
    }

    Таким образом суровые калифорнийские мужыки ищут большой диапазон, куда можно поместить кучку маленьких диапазончиков.

    raorn, 20 Мая 2010

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

    +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
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    private static NavigableSet<Integer> availableVlans = populate( );
    
    private static NavigableSet<Integer> populate( ) {
      NavigableSet<Integer> list = new ConcurrentSkipListSet<Integer>( );
      for ( int i = 1; i < 4095; i++ )
        list.add( i );
      return list;
    }
    
    public static void trim( int min, int max ) {
      NavigableSet<Integer> newVlanList = Sets.newTreeSet( );
    
      for ( int i = min; i < max; i++ )
        newVlanList.add( i );
      newVlanList.removeAll( availableVlans );
      availableVlans.removeAll( availableVlans.headSet( min ) );
      availableVlans.removeAll( availableVlans.tailSet( max ) );
      for ( int i = min; i < max; i++ ) {
        if ( !newVlanList.contains( i ) ) {
          availableVlans.add( i );
        }
      }
    }

    Очередной кусок калифорнийского кода.

    raorn, 20 Мая 2010

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

    +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
    List<String> runningVmIds = new ArrayList<String>( );
        for ( VmInfo runVm : request.getVms( ) ) {
          runningVmIds.add( runVm.getInstanceId( ) );
        }
        for ( String vmId : VmInstances.getInstance( ).getKeys( ) ) {
          if ( runningVmIds.contains( vmId ) ) {
            continue;
          }
          VmInstance vm = null;
          try {
            vm = VmInstances.getInstance( ).lookup( vmId );
            long splitTime = vm.getSplitTime( );
            if ( splitTime > SHUT_DOWN_TIME ) {
              VmInstances.getInstance( ).disable( vm.getName( ) );
              vm.resetStopWatch( );
              vm.setState( VmState.TERMINATED );
              vm.setReason( INSTANCE_EXPIRED );
              SystemState.cleanUp( vm );
            }
          } catch ( NoSuchElementException e ) {}
        }
        
        List<String> knownVmIds = new ArrayList<String>( );
        knownVmIds.addAll( VmInstances.getInstance( ).getKeys( ) );
        if ( knownVmIds.removeAll( runningVmIds ) ) {//<-- active registered vms not reported in describe
          for ( String vmId : knownVmIds ) {
            VmInstance vm = null;
            try {
              vm = VmInstances.getInstance( ).lookup( vmId );
              long splitTime = vm.getSplitTime( );
              if ( splitTime > SHUT_DOWN_TIME ) {
                VmInstances.getInstance( ).disable( vm.getName( ) );
                vm.resetStopWatch( );
                vm.setState( VmState.TERMINATED );
                vm.setReason( INSTANCE_EXPIRED );
                SystemState.cleanUp( vm );
              }
            } catch ( NoSuchElementException e ) {
              /* should never happen, just pulled the key set, if it does ignore it */
            }
          }
        }

    Я, наверно, тупой и ещё мало кофе с утра выпил, но мне кажется, что один из циклов тут явно лишний...

    raorn, 19 Мая 2010

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

    +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
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    public String FormatDocumentNumber(String docNum)
        {
            int len = docNum.length();
            int lenDiff = len - Integer.toString(this.document_num).length();
            char[] arr = docNum.toCharArray();
            char[] number = Integer.toString(this.document_num).toCharArray();
            
            for(int i=0; i<len; i++)
            {
                    arr[i] = '0';
            }
    
            for(int i=0; i<number.length; i++ )
            {
                arr[lenDiff+i] = number[i];
            }
    
            StringBuffer sb = new StringBuffer();
            for(int i=0; i<len; i++)
            {
                sb.append(arr[i]);
            }
    
            return sb.toString();
        }

    Как сделать красивую функцию, которая формирует строку определенной длины с числом с ведущими нулями?

    nolka4, 17 Мая 2010

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

    +81

    1. 1
    Network notwork = null;

    Ну и естественно, что нихрена не работает...

    raorn, 14 Мая 2010

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

    +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
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    public void write(byte[] bytesToSend) {
            // System.out.println("Write begin.");
            try {
                socket.setSoTimeout(10000);
                packageID = 0;
                // Add bytes to send
                saveBytesToPackeges(bytesToSend);
                // Begin new Thread to be sure it was delivered
                mySendChecker = new SendChecker();
                Thread myThread = new Thread(mySendChecker);
                myThread.start();
                byte[] buf2 = new byte[50];
                // Sending number of packeges
                byte[] buf = bytesFromInt(numberOfPackages);
                for (int i = 0; i < 4; i++) {
                    buf2[i] = buf[i];
                    
                }
                packageID = -2;
                buf = packetFromBytes(buf2, sizeOfPackage - 4);
                DatagramPacket myPacket = new DatagramPacket(buf, buf.length,
                        addressToSendTo, portToSendTo);
                socket.send(myPacket);
                mySendChecker.setPacket(-2, myPacket);
                // recieve answer
                socket.receive(myPacket);
                buf = myPacket.getData();
                  mySendChecker.removePacket(-2);
                // send delieverer
                buf = packetFromBytes(buf2, sizeOfPackage - 4);
                socket.send(myPacket);
                // starting to send data
                for (int i = 0; i < numberOfPackages; i++) {
                    myPacket = new DatagramPacket(bytesToSendSave[i],
                            bytesToSendSave[i].length, addressToSendTo,
                            portToSendTo);
                    socket.send(myPacket);
                    mySendChecker.setPacket(i, myPacket);
                }
                // start to recieve answers
                int numberOfPackegeRecieved = 0;
                while (true) {
                    buf = new byte[8];
                    if (mySendChecker.isEmpty()) {
                        break;
                        
                    }
                    myPacket = new DatagramPacket(buf, buf.length);
                    socket.receive(myPacket);
                    buf = myPacket.getData();
                    numberOfPackegeRecieved = intFromBytes(buf, 4);
                    if (-3 != intFromBytes(buf, 4)) {
                        continue;
                        
                    }
                    numberOfPackegeRecieved = intFromBytes(buf, 0);
                    mySendChecker.removePacket(numberOfPackegeRecieved);
                    myPacket = new DatagramPacket(buf, buf.length, addressToSendTo,
                            portToSendTo);
                    socket.send(myPacket);
                }
                buf = bytesFromInt(-5);
                myPacket = new DatagramPacket(buf, buf.length, addressToSendTo,
                        portToSendTo);
                socket.send(myPacket);
                mySendChecker.setPacket(-5, myPacket);
                // System.out.println("WRITE Sending -5");
                while (true) {
                    buf = new byte[4];
                    myPacket = new DatagramPacket(buf, buf.length);
                    socket.receive(myPacket);
                    buf = myPacket.getData();
                    if (-5 == intFromBytes(buf, 0)) {
                        // System.out.println("WRITE recieved -5");
                        break;
                    }
                }
                mySendChecker.end();
                
                socket.setSoTimeout(100);
                while (true) {
                    try {
                        socket.receive(myPacket);
                    } catch (SocketTimeoutException e) {
                        break;
                    }
                }
                socket.setSoTimeout(0);
                // System.out.println("Write end.");
                ... TO BE CONTINUED ...

    Лучшая реализация потокового протокола поверх UDP среди студентов. Остальное в таком же стиле.

    rootman, 14 Мая 2010

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

    +76

    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
    long[] times = new long[9];
    times[0] = System.currentTimeMillis();
    initPsrList();
    times[1] = System.currentTimeMillis();
    initPsrHierarchy();
    times[2] = System.currentTimeMillis();
    initPsrCheckList()
    times[3] = System.currentTimeMillis();
    initTranslationTables();
    times[4] = System.currentTimeMillis();
    initTranslationInfo()
    times[5] = System.currentTimeMillis();
    initVoltage();
    times[6] = System.currentTimeMillis();        
    initElectroMetterPrecision();
    times[7] = System.currentTimeMillis();        
    initMeasTransformers();
    times[8] = System.currentTimeMillis();
    
    long diff;
    System.out.println("\n\n\n\n******************************************************************");
    diff = times[1] - times[0];
    System.out.println("-- initPsrList() = " + diff + "ms");
    diff = times[2] - times[1];
    System.out.println("-- initPsrHierarchy() = " + diff + "ms");
    diff = times[3] - times[2];
    System.out.println("-- initPsrCheckList() = " + diff + "ms");
    diff = times[4] - times[3];
    System.out.println("-- initTranslationTables() = " + diff + "ms");
    diff = times[5] - times[4];
    System.out.println("-- initTranslationInfo() = " + diff + "ms");
    diff = times[6] - times[5];
    System.out.println("-- initVoltage() = " + diff + "ms");
    diff = times[7] - times[6];
    System.out.println("-- initElectroMettersPrecision() = " + diff + "ms");
    diff = times[8] - times[7];
    System.out.println("-- initMeasTransformers() = " + diff + "ms");
    diff = times[8] - times[0];
    System.out.println("total = " + diff + "ms");
    System.out.println("\n******************************************************************\n\n\n\n ");

    Код подготовки отображаемой страницы на сервере.

    Eyeless, 12 Мая 2010

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