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

    +71

    1. 1
    2. 2
    Calendar calendar = new GregorianCalendar();
    calendar.setTime(new Date(System.currentTimeMillis()));

    Eyeless, 19 Апреля 2012

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

    +72

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    String displayName = report.getDisplayName();
                displayName.replace(
                        this.periodStartDateParamName,
                        this.getPeriodStartDateStr() );
                displayName.replace(
                        this.getPeriodEndDateParamName(),
                        this.getPeriodEndDateStr() );
                report.setDisplayName( displayName );

    Имитация бурной деятельности по замене подстрок.

    victor-homyakov, 17 Апреля 2012

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

    +63

    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
    public class ExtendFSDirectoryProvider {
        // skipped
        @Override
        public boolean equals(Object obj) {
            if (obj == this) {
                return true;
            }
            if (obj == null || !(obj instanceof FSDirectoryProvider)) {
                return false;
            }
    
            return indexName.equals(((ExtendFSDirectoryProvider) obj).indexName);
        }
    }

    Даже неважно, что автор делает лишнюю проверку на null - в instanceof указан другой класс! Копипаста детектед.

    victor-homyakov, 17 Апреля 2012

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

    +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
    private static Map<String, Connection> cachedConns =
            Collections.synchronizedMap(new HashMap<String, Connection>(0xA)
        {
            private static final long serialVersionUID = 7466291025126853439L;
    
            @Override
            protected void finalize() throws Throwable
            {
                super.finalize();
    
                for (Connection aConn : this.values())
                {
                    if (!aConn.isClosed())
                    {
                        aConn.close();
                    }
                }
            }
        });

    Плохо настроенный WebLogic не возвращает подключения СУБД обратно в пул.
    Из-за говно-админа и мне ничего больше в голову не могло прийти...

    dwinner, 16 Апреля 2012

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

    +74

    1. 1
    2. 2
    3. 3
    4. 4
    for(int i = 0; i < fCount; i++)
    {
           result += Integer.parseInt(String.valueOf((fPart.charAt(i))), 10)*Math.pow(base, fCount-(i+1));	    			
    }

    brainy, 14 Апреля 2012

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

    +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
    23. 23
    24. 24
    25. 25
    mLoadingTextureMap.put(LINE +i, createFromResource(mLinesAtlas, this, R.drawable.loading_line1, 0, y));
    y+=drawable.getMinimumHeight();
    i++;
    mLoadingTextureMap.put(LINE +i, createFromResource(mLinesAtlas, this, R.drawable.loading_line2, 0, y));
    y+=drawable.getMinimumHeight();
    i++;
    mLoadingTextureMap.put(LINE +i, createFromResource(mLinesAtlas, this, R.drawable.loading_line3, 0, y));
    y+=drawable.getMinimumHeight();
    i++;
    mLoadingTextureMap.put(LINE +i, createFromResource(mLinesAtlas, this, R.drawable.loading_line4, 0, y));
    y+=drawable.getMinimumHeight();
    i++;
    mLoadingTextureMap.put(LINE +i, createFromResource(mLinesAtlas, this, R.drawable.loading_line5, 0, y));
    y+=drawable.getMinimumHeight();
    i++;
    mLoadingTextureMap.put(LINE +i, createFromResource(mLinesAtlas, this, R.drawable.loading_line6, 0, y));
    y+=drawable.getMinimumHeight();
    i++;
    mLoadingTextureMap.put(LINE +i, createFromResource(mLinesAtlas, this, R.drawable.loading_line7, 0, y));
    y+=drawable.getMinimumHeight();
    i++;
    mLoadingTextureMap.put(LINE +i, createFromResource(mLinesAtlas, this, R.drawable.loading_line8, 0, y));
    y+=drawable.getMinimumHeight();
    i++;
    mLoadingTextureMap.put(LINE +i, createFromResource(mLinesAtlas, this, R.drawable.loading_line9, 0, y));

    вот так один паренек загружает в атлас текстуры....
    нафиг циклы вообще нужны (=

    TeknoMatik, 13 Апреля 2012

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

    +68

    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
    if (seriesOrder == SeriesRenderingOrder.REVERSE) {
                    //render series in reverse order
                    for (int pass = 0; pass < passCount; pass++) {
                        int seriesCount = dataset.getSeriesCount();
                        for (int series = seriesCount - 1; series >= 0; series--) {
                            int firstItem = 0;
                            int lastItem = dataset.getItemCount(series) - 1;
                            if (lastItem == -1) {
                                continue;
                            }
                            if (state.getProcessVisibleItemsOnly()) {
                                int[] itemBounds = RendererUtilities.findLiveItems(
                                        dataset, series, xAxis.getLowerBound(),
                                        xAxis.getUpperBound());
                                firstItem = Math.max(itemBounds[0] - 1, 0);
                                lastItem = Math.min(itemBounds[1] + 1, lastItem);
                            }
                            state.startSeriesPass(dataset, series, firstItem,
                                    lastItem, pass, passCount);
                            for (int item = firstItem; item <= lastItem; item++) {
                                renderer.drawItem(g2, state, dataArea, info,
                                        this, xAxis, yAxis, dataset, series, item,
                                        crosshairState, pass);
                            }
                            state.endSeriesPass(dataset, series, firstItem,
                                    lastItem, pass, passCount);
                        }
                    }
                }
                else {
                    //render series in forward order
                    for (int pass = 0; pass < passCount; pass++) {
                        int seriesCount = dataset.getSeriesCount();
                        for (int series = 0; series < seriesCount; series++) {
                            int firstItem = 0;
                            int lastItem = dataset.getItemCount(series) - 1;
                            if (state.getProcessVisibleItemsOnly()) {
                                int[] itemBounds = RendererUtilities.findLiveItems(
                                        dataset, series, xAxis.getLowerBound(),
                                        xAxis.getUpperBound());
                                firstItem = Math.max(itemBounds[0] - 1, 0);
                                lastItem = Math.min(itemBounds[1] + 1, lastItem);
                            }
                            state.startSeriesPass(dataset, series, firstItem,
                                    lastItem, pass, passCount);
                            for (int item = firstItem; item <= lastItem; item++) {
                                renderer.drawItem(g2, state, dataArea, info,
                                        this, xAxis, yAxis, dataset, series, item,
                                        crosshairState, pass);
                            }
                            state.endSeriesPass(dataset, series, firstItem,
                                    lastItem, pass, passCount);
                        }
                    }
                }

    нашел в jfreechart
    Обе ветки if-else идентичны, только в одной цикл идет от нуля, в другой в обратную сторону.
    Говнокод или нет?

    krige, 12 Апреля 2012

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

    +91

    1. 1
    2. 2
    3. 3
    4. 4
    public class HasThisTypePatternTriedToSneakInSomeGenericOrParameterizedTypePatternMatchingStuffAnywhereVisitor
    		extends AbstractPatternNodeVisitor {
    
    	boolean ohYesItHas = false;

    rat4, 12 Апреля 2012

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

    +77

    1. 1
    2. 2
    Superclass s = new Subclass();
    ((Subclass)s).useSubclassMethod();

    Чудеса полиморфизма.

    thePooh, 11 Апреля 2012

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

    +110

    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
    public abstract class AbstractSegment<P extends Number, V extends IOffsettable<P, V>,
    		U extends AbstractSegment<P, V, U>> implements IOffsettable<P, U>, Iterable<V>, Serializable {
    	...
    	
    	protected final List<V> offsetHelper(final P dx, final P dy) {
    		return Lists.transform(points, new Function<V, V>() {
    			@Override
    			public V apply(final V input) {
    				return input.offset(dx, dy);
    			}
    		});
    	}
    
    
    
    public final class FloatSegment extends AbstractSegment<Float, FloatPoint, FloatSegment> {
    	...
    	@Override
    	public FloatSegment offset(final Float dx, final Float dy) {
    		return new FloatSegment(offsetHelper(dx, dy));
    	}
    }

    someone, 11 Апреля 2012

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