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

    +73

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private long tournamentId;
    
    /**
     * The winner takes it all
     * The loser standing small
     * Beside the victory
     * That's her destiny
     */
    private boolean theWinnerTakesItAll;

    dvb, 03 Ноября 2010

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    private static final Color COLOR_GREEN = Color.GREEN;
      private static final Color COLOR_GREEN_DARK = JBoard.COLOR_GREEN;
      private static final Color COLOR_RED = Color.RED;
      private static final Color COLOR_RED_DARK = JBoard.COLOR_RED;
      private static final Color COLR_GRAY = Color.GRAY;

    упс, это я случайно )))) если вы это видите, то я это уже рефакторю ))))

    Lure Of Chaos, 29 Октября 2010

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

    +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
    ;
                    Scanner reader = new Scanner(System.in);
                    int razm = 0;
                    boolean flag = false;
    
                    int[] rez = new int[100];
                    for (int i = 0; i < 100; i++)
                             rez[i] = i;
    
                    do {
                            System.out.println("введите размерность матрицы");
                            razm = reader.nextInt();
    
                            for (int i = 0; i < 100; i++) {
                                    if (rez[i] == razm)
                                            flag = true;
                            }
    
                            System.out.println("размерность не является целочисленным типом,повторите ввод");
    
                    } while (flag == false);
    
                    double[][] matrix = new double[razm][razm];
    ;

    Студенческое изделие, блинННН.
    Я даже не знаю, как это прокомментировать....
    я не могу себе представить, КАК надо мыслить, чтоб такое учудить.
    Ну а , то, что сообщение про неправильный ввод выводится
    безотносительно к правильности введённого - это уже так, мелочи жизни.

    minixoid, 28 Октября 2010

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

    +86

    1. 1
    new Date(System.currentTimeMillis());

    Просто и со вкусом

    galak, 25 Октября 2010

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

    +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
    class  JNewConnectionPanel extends JPanel {
    
     public JNewConnectionPanel() {
        this(true, false);
      }
    
      public JNewConnectionPanel(final boolean ok, final boolean cancel) {
        // ...
        if (ok) {
          // ...
        }
        if (cancel) {
          // ...
        }
        // ...
      }
    
     // ...
    }

    продолжаю макакакодить = )

    Lure Of Chaos, 23 Октября 2010

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

    +74

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    cmd = new byte[2]; //name length
    is.read(cmd);
    int fnamel = cmd[0] << 8 | cmd[1];
    cmd = new byte[fnamel];
    is.read(cmd);
    char[] name = byteToChar(cmd);
    cmd = new byte[4];
    is.read(cmd);
    len = (cmd[0] << 24 & 0xFF000000) | (cmd[1] << 16 & 0xFF0000) | (cmd[2] << 8 & 0xFF00) | (cmd[3] & 0xFF);
    System.out.println("FIO requested: "+new String(name)+"; Size: "+len+" bytes;");

    писал (и пишу уже 1 час (планирую через час же закончить)) микро-сетевой аплоадер файлов.

    danilissimus, 23 Октября 2010

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

    +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
    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
    Map<Integer, ArrayList<?>> // filterId : filterParams
    {
    	//
    	// Фильтр занятости квартир (не вписывается в API, поэтому здесь заведены отдельные методы)
    	//
    	
        // хранит: showReserved, DateFrom, DateTo
        private ArrayList<?> reservedFilterParams
    
        public void onDateFilterChanged(Date dateFrom, Date dateTo, boolean showReserved)
        {
    	this.put(QuickFilters.FILTER_RESERVED_ID, reservedFilterParams)
    		
    	reservedFilterParams = ArrayUtils.getOrCreateArrayListWithElements(
    			this, QuickFilters.FILTER_RESERVED_ID, new Boolean(showReserved), dateFrom, dateTo )
    	
    	if (dateFrom == null && dateTo == null)
            {
                reservedFilterParams.set(0,new Boolean(true))
                this.remove(QuickFilters.FILTER_RESERVED_ID)
            }
        }
    
        public boolean doShowReserved()
        {
            return reservedFilterParams ? reservedFilterParams.get(0).booleanValue() : true
        }
    
        public Date getDateFrom()
        {
            return reservedFilterParams?.get(1)
        }
    
        public Date getDateTo()
        {
            return reservedFilterParams?.get(2)
        }
    
    }

    Язык Groovy, стиль - моя переходная форма от Java. Это я сам написал. Вообще мне даже нравится. Есть фильтры для поиска. У каждого фильтра есть только ему ведомые параметры. Приведенный код - это мапка для хранения того, какие пользователь выбрал фильтры и что в них установил.

    Есть API который я делаю, состоящий из типовых фильтров. Этот API автоматически юзает мапку через get/put. Но бывает, придумывается какой-то нетиповой фильтр, и его параметры приходится хардкодить в этой мапке. Короче, мне понравилась идея с мапкой, ведь даже если параметры захардкодены, то они всё равно пихаются в мапку. И читаемость для таких случаев навысоте.

    Bugdog, 20 Октября 2010

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

    +62

    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
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    public int doEndTag() throws JspException {
            HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();
            try {
             	String fieldValue = fdata;
        		String boolVal="false";
        		StringBuffer field_Value = new StringBuffer();
        		String indexString="";
        		int spaceIndex;
        	     
            	int slen = fieldValue.length();
        		int starti=0;
        		int endi= fsize;
        		if (fdata==null) {
        			 boolVal="true";
        			 field_Value.append("");
        		}
        		
        		if (fsize > slen ||  truncateDataSize > fdata.length() ) {
        		   boolVal="true";
        		   field_Value.append(fdata);
        		}
        		
        		if (truncateDataSize!=0  && fdata.length() > truncateDataSize ) {
        		  fieldValue=""; 	
        		  fieldValue = fdata.substring(starti,truncateDataSize);
        		  slen = fieldValue.length(); 
        		}
        		
        		while(boolVal=="false") {
        			indexString=  fieldValue.substring(starti,endi); 
        			spaceIndex = indexString.lastIndexOf(" ");
        			if (spaceIndex == -1) {
        				int initialLength = field_Value.length(); 
        				field_Value.append(fieldValue.substring(starti,endi));
        				// field_Value.append("<br>");
        				// MT-2238 start
        				int firstIndex = indexString.indexOf("<");
        				int lastIndex  = indexString.indexOf(">");
        				if(lastIndex<firstIndex) {
        					lastIndex  = indexString.indexOf(">",(lastIndex+1));
        				}
        				if(firstIndex >= 0 && lastIndex <= indexString.length() && lastIndex>firstIndex) {
        					if(!(indexString.substring(firstIndex+1,lastIndex).equalsIgnoreCase("br"))) {
        						if(lastIndex<=initialLength && indexString.endsWith(">")) {
        							field_Value.append("<br>");
        						}else {
        							field_Value.insert((initialLength+(lastIndex+1)),"<br>");
        						}
        					}
        				}
        				//in case no HTML tags
        				if(!checkInTag(false, field_Value.toString()) 
        						&& firstIndex==-1 && lastIndex==-1
        				) {
        					// add BR tag
        					field_Value.append("<br>");
        				}
        				// MT-2238 end
        			} else {
        				field_Value.append(fieldValue.substring(starti,starti + spaceIndex));
        				endi = starti + spaceIndex + 1;  
            			if(forceWrap == 1){
                			field_Value.append("<br>");
            			} else{
            				field_Value.append(" ");
            			}
        			}
        			starti = endi;
        			if((endi + fsize) > slen) {
        			   endi = slen - endi;
        			   field_Value.append(fieldValue.substring(starti,starti + endi));
        			   boolVal="true";
        			} else {
        				endi = endi + fsize;
        			}
        		}
        		
        		if (truncateDataSize!=0  && fdata.length() > truncateDataSize && singleLine==false) {
        		   field_Value.append("...");
        		}
        		
        		if (singleLine== true ) {
    	    		 if (fsize<fdata.length())	
    	    		 {	
    	    		  field_Value.delete(0,field_Value.length());		
    	    		  field_Value.append(fieldValue.substring(0,fsize));
    	    		  field_Value.append("...");
    	    		 } 
        		}
        		pageContext.getOut().write(field_Value.toString());
            } catch (Exception e) {
            	log.error(" Exception in image tag ",e);
            }
            return EVAL_PAGE;
        }

    Найдено в кастомном теге нашева прилаженийа. Писано паходу интусами %) ы

    Вся соль в строке (#29):
    while(boolVal=="false")

    И что самое интересное.. Оно работает!! :DDD ы

    А работает как я выяснил изза 'smart' части java %)) так как boolVal инитиализируется в этом же методе, то boolVal = "false" и "false" это 1 и тот же объект %) паэтаму и проходит сравнение. Т.е. java подменяет "false" во всех местах на адин и тот же объект %) но если бы "false" пришёл снаружи, то всё.. это другой объект %)

    ппц, я когда увидел долго бился головой ап стенку %)) в папытках понять, почему оно работает %))
    ксати я точно не уверен, но помойму если в настройках компилятора покапаться, то думаю можно сделать так чтобы каждой объявление "false" было новым объектом (или нельзя? О_о хотя ясно, что это бесмыслено), тогда работать не будит %) ы

    Pepper-X, 20 Октября 2010

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

    +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
    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 static Document getDoc(CarPartsAd ad) {
            Document doc = new Document();
            doc.add(new Field("id", ad.getId().toString(), YES, NOT_ANALYZED));
            doc.add(new Field("mark", Long.toString(ad.getMarkId()), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("model", Long.toString(ad.getModelId()), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("frame", Long.toString(ad.getFrameId()), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("engine", Long.toString(ad.getEngineId()), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("type", Long.toString(ad.getTypeId()), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("front_rear", Long.toString(ad.getFrontRear()), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("right_left", Long.toString(ad.getRightLeft()), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("up_down", Long.toString(ad.getUpDown()), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("contact", Long.toString(ad.getContactId()), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("town", Long.toString(ad.getTownId()), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("part_state", Long.toString(ad.getPartState()), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("original_flag", Long.toString(ad.getOriginalFlag()), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("price", Integer.toString(ad.getPriceRub()), Field.Store.YES, NOT_ANALYZED));
            doc.add(new Field("price_flag", (ad.getPriceRub() > 0 ? "0" : "1"), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("date_sort", Long.toString(ad.getSort()).substring(0, 9), Field.Store.YES, NOT_ANALYZED));
            doc.add(new Field("oem", format(ad.getOem()).replaceAll(" ", "").toLowerCase(), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("producer_code", format(ad.getProducerCode()).replaceAll(" ", "").toLowerCase(), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("uplift_rating", Integer.toString(ad.getUpliftRating()), Field.Store.NO, NOT_ANALYZED));
            doc.add(new Field("ads_source", Integer.toString(ad.getAdsSource()), Field.Store.NO, NOT_ANALYZED));
            return doc;
        }

    лучик ненависти авторам lucene за то, что заставляют писать такое :)

    zlob.jc, 20 Октября 2010

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

    +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
    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
    @Entity
    @Table(name = "datastore")
    public final class Datastore
    {
     @SequenceGenerator(name="SEQ_GEN", sequenceName="entity_id_seq", allocationSize = 1)
     @Id  
     @GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "SEQ_GEN")
     private long entityid;
     public float  capacity;
     public String name;
     public float  usage;
     public short vendor;
     public short state;
     public short health;
     public short vmson;
     public short vmsother;    
    
     @Transient private String uuid;
    
     @Override public String toString() {
      return String.format("Datastore{entityid=%d, capacity=%f, health=%d, name='%s', state=%d, usage=%f, vendor=%d, vmson=%d, vmsother=%d}", 
       entityid,
       capacity,
       health,
       name,
       state,
       usage,
       vendor,
       vmson,
       vmsother);
     }
    
     public long getEntityid() {
      return entityid;
     }
     public void setEntityid(long entityid) {
      this.entityid = entityid;
     }
     public float getCapacity() {
      return capacity;
     }
     public void setCapacity(float capacity) {
      this.capacity = capacity;
     }
     public String getName() {
      return name;
     }
     public void setName(String name) {
      this.name = name;
     }
     public float getUsage() {
      return usage;
     }
     public void setUsage(float usage) {
      this.usage = usage;
     }
     public short getVendor() {
      return vendor;
     }
     public void setVendor(short vendor) {
      this.vendor = vendor;
     }
     public short getState() {
      return state;
     }
     public void setState(short state) {
      this.state = state;
     }
     public short getHealth() {
      return health;
     }
     public void setHealth(short health) {
      this.health = health;
     }
     public short getVmson() {
      return vmson;
     }
     public void setVmson(short vmson) {
      this.vmson = vmson;
     }
     public short getVmsoff() {
      return vmsother;
     }
     public void setVmsoff(short vmsoff) {
      this.vmsother = vmsoff;
     }
     
     @Transient public void   setUuid(String value) { this.uuid = value; }
    }

    Вот так жесткие швейцарские кодеры объявляют persistent beans.
    Самый отжиг это не pubilc fields дублированные с getters/setters, а setter помеченный @Transient

    galak, 18 Октября 2010

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