1. Лучший говнокод

    В номинации:
    За время:
  2. Java / Говнокод #9574

    +71

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    StringBuffer possibleNames = new StringBuffer();
    int max = item.getPossibleNames().length;
    for (int i = 0; i < max; i++) {
        ..
        possibleNames.append(ing.name + " " + ( i != (max-1) ? ", " : ""));
        ..
    }

    вставка запятых между элементами массива

    itakethisname, 01 Марта 2012

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

    +71

    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
    public class Pages extends TabActivity {
    
    	@Override
    	protected void onResume() {
    		super.onResume();
    		if (!loading) {
    			loading = true;
    			new EmptyThread().execute();
    		}
    	}
    
    	@Override
    	protected void onPause() {
    		Data.killNow = true;
    		super.onPause();
    	}
    
    	private class EmptyThread extends AsyncTask<Void, String, Void> {
    		@Override
    		protected void onPreExecute() {
    			Data.killNow = false;
    		}
    
    		@Override
    		protected Void doInBackground(Void... unused) {
    			while (!Data.killNow) {
    				try {
    					Thread.sleep(1000);
    				} catch (InterruptedException e) {
    				}
    			}
    			return null;
    		}
    
    		@Override
    		protected void onPostExecute(Void unused) {
    			loading = false;
    		}
    	}
    }

    В продолжение предыдущей темы (http://govnokod.ru/9256): из-за столь вольного обращения с модификатором static и адского обращения с AsyncTask*ами программист нарвался на утечку памяти и AsyncTask*и у него прекратили запускаться (не факт, что из-за утечек, я их исходный код не смотрел). Выше вам был представлен костыль, благодаря которому асинхронки всё-таки запускались. Как - я так и не постиг.

    Для справки - когда экран выходит на передний план, срабатывает onResume(), когда уходит с него - onPause().

    QuickNick, 30 Января 2012

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

    +71

    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
    package com.govnoistochnik.servleti;
    
    ...
     
    import javax.servlet.GenericServlet;
    ...
     
    public class GenericReportingServlet extends GenericServlet {
    
    PrintWriter oos;   // Говно источник
    ...
    
    public synchronized void  createReport(...)
    {
    oos = new PrintWriter();
    ...
    // pessot strok govnokoda vida
    oos.println("report");
    ...
    saveToDB(oos.toString());
    
    oos.close;
    }
    
    public synchronized void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
    // Kucha govnokoda
       createReport(...);
    // Prodoljeniye kuchi
    }
    
     ...
     
    }

    Продолжение говнокода
    http://govnokod.ru/9146

    Мы нашли почему там Синхронный метод.

    Глобальная переменная в коде. Какому идеоту пришло в голову так писать.....пи......

    kirpi, 27 Января 2012

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

    +71

    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
    setCookie(new String[] {username, Long.toString(expiryTime), signatureValue}, tokenLifetime, request, response);
    
    int tokenLifetime = calculateLoginLifetime(request, successfulAuthentication);
    
    protected int calculateLoginLifetime(HttpServletRequest request, Authentication authentication) {
            return getTokenValiditySeconds();
        }
    
    protected int getTokenValiditySeconds() {
            return tokenValiditySeconds;
        }
    
    private int tokenValiditySeconds = TWO_WEEKS_S;
    
    public static final int TWO_WEEKS_S = 1209600;

    Spring Security........
    Логирование по куки токену.....

    KaRRamBa, 06 Декабря 2011

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

    +71

    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
    public class AuthorizedUserObservervable implements Runnable {
    
        private long sleepTime = 1000;
        private HashMap<AuthorizedUserObserver, HashMap<AuthorizedUser, Integer>> observers = new HashMap<AuthorizedUserObserver, HashMap<AuthorizedUser, Integer>>();
        
        
        private void setSleepTime(long sleepTime) {
            this.sleepTime = sleepTime;
        }
        
        
        public void add(AuthorizedUserObserver auo) {
            HashMap<AuthorizedUser, Integer> userCache = new HashMap<AuthorizedUser, Integer>();
            for (AuthorizedUser user : auo.getUsers()) {
                userCache.put(user, null);
            }
            observers.put(auo, userCache);
        }
    
        public void beginObservation() {
            new Thread(this).start();
        }
    
        @Override
        public void run() {
            while (true) {
                try {
                    for (Map.Entry<AuthorizedUserObserver, HashMap<AuthorizedUser, Integer>> observer : observers.entrySet()) {
                        for (Map.Entry<AuthorizedUser, Integer> user : observer.getValue().entrySet()) {
                            int newPostsCount = user.getKey().getNewPostsCount();
                            if (user.getValue() == null || newPostsCount != user.getValue()) {
                                HashMap<AuthorizedUser, Integer> userCache = new HashMap<AuthorizedUser, Integer>();
                                userCache.put(user.getKey(), newPostsCount);
                                observers.put(observer.getKey(), userCache);
                                observer.getKey().notify(user.getKey(), newPostsCount);
                            }
                        }
                    }
    
    
                    Thread.sleep(sleepTime);
                } catch (InterruptedException ex) {
                    Logger.getLogger(UserObservervable.class.getName()).log(Level.SEVERE, null, ex);
                } catch (AuthenticationException e) {
                    Thread.currentThread().stop(e);
                }
            }
        }
    }

    Чего стоит гибкость.

    manyrus, 13 Ноября 2011

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

    +71

    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
    /**
     * @see ru.dwin.inbox.gtk.videotypes.IVideo#startPlay(int)
     */
    @Override public void startPlay(int delay)
    {
        try
        {
            Thread.sleep(delay * 1000);
        }
        catch (InterruptedException e1)
        {
            RestartAllThreads();     
        }
        if (theTimer == null)
        {
            theTimer = new Timer(ASECOND, new ActionListener()
            {
                @Override public void actionPerformed(ActionEvent e)
                {
    	if (elapsedTime >= getDuration())
    	{
    	    theTimer.stop();
    	    resetPlay();
    	    Toolkit.getDefaultToolkit().beep();
    	}
    	else
    	{
    	    elapsedTime += (int) ASECOND / 1000;
    	    notifyAddedRenderers(USwingWorker.ALL);
                    }
                }
            });
        }
        else
        {
            theTimer.start();
        }
    }

    Играть через ХЗ сколько секунд...

    dwinner, 03 Ноября 2011

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

    +71

    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
    try {
          getClass(className);
          getExecutableMethod();
          setAccessible();
          try {
                    method.invoke(cClass.newInstance(), dataSource, propMap);
          } catch (InstantiationException e) {
                    e.printStackTrace();
          } catch (IllegalArgumentException e) {
                    e.printStackTrace();
          } catch (IllegalAccessException e) {
                    e.printStackTrace();
          } catch (InvocationTargetException e) {
                    e.printStackTrace();
          }
    
    } catch (ClassNotFoundException e) {
          e.printStackTrace();
    } catch (SecurityException e) {
          e.printStackTrace();
    }

    О чем думал автор - непонятно.

    dakota, 03 Октября 2011

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

    +71

    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
    if (prodAttainment < payeeSalesGoal)
    {
    	cashComp = 1;
    }
    else if (prodAttainment < 1.25 * payeeSalesGoal
    		&& prodAttainment >= payeeSalesGoal)
    {
    	cashComp = 0.75;
    }
    else if (prodAttainment >= 1.25 * payeeSalesGoal)
    {
    	cashComp = 0.5;
    }

    Меня гнет или и правда нужно столько проверок? Чтоб наверняка...

    askell, 27 Сентября 2011

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

    +71

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    @Test
     public void testExecuteNoBean1() {   	
        	try {
                    //...
    		} catch (Exception e) {
    			assertEquals("ActionHandlerDefineDueDate: Error, failed to retrieve ... <over 9000 chars>", e.getMessage());
    		}
     }

    У кого-то явно проблемы с TDD.

    roman-kashitsyn, 23 Августа 2011

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

    +71

    1. 1
    2. 2
    3. 3
    4. 4
    if (wdContext.nodeTable().size() <= 5)
    	wdContext.currentContextElement().setRowsIn(-1);
    else
    	wdContext.currentContextElement().setRowsIn(-1);

    foGa, 12 Августа 2011

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