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

    +83

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    class o{
    	public  o o(o o){
    			return o;
    	}
    }

    Может не в тему, но выглядит забавно.

    levsha128, 02 Февраля 2012

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

    +73

    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
    if (!policyIds.isEmpty()) {
        AtomicInteger recordCount = new AtomicInteger(0);  // <- WTF?!!!!
        try {
            for (final BigDecimal policyId : policyIds) {
                helper.processPolicy(policyId.longValue(), /* ещё 7 параметров */ recordCount);
            }
        } catch (IOException e) {
                    // код обработки исключения опущен
        }
        saveToFile(ctx, fileName, outputStream.toByteArray(), recordCount);
    }
    
    // А вот что делает helper.processPolicy
    if (selector.matches(policy)) {
        if (processRequestImpl(policy, ctx, fileName, outputStream, ioService, outputDir, applicationContext)) {
            recordCount.getAndAdd(1);
        }
    }

    Integer иммутабелен? Не проблема!

    roman-kashitsyn, 02 Февраля 2012

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

    +74

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    synchronized public void refreshConversionTable() {
            btnClick = true;
            if (dataModel != null)
                dataModel.reset();
            dataModel = null;
        }

    если модель данных существует, сначала сбросить все данные, а потом занулим....

    mrFoxs, 31 Января 2012

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

    +72

    1. 1
    2. 2
    3. 3
    4. 4
    //Функция
     }
    return (s1.compareTo("") != 0 ? s1 + (s.compareTo("") != 0 ? GlomoConfig.distInfo.smsCustomTailSeparator() + s : "") : "").toLowerCase();
    }

    Взято из декомпилированного кода java-игрушки.

    Govnocoder#0xFF, 30 Января 2012

    Комментарии (10)
  5. 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)
  6. Java / Говнокод #9256

    +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
    56. 56
    57. 57
    public class Pages extends TabActivity {
    
    	public static TabHost host;	
           
            @Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		host = getTabHost();
                    // много говнокода
            }
    }
    
    public class Table extends Activity {
    //много говнокода
    
    	@Override
    	protected void onResume() {
    		super.onResume();
    		if (!loading) {
    			loading = true;
    			new MainTask().execute();
    		}
    	}
    
    	private class MainTask extends AsyncTask<Void, String, Void> {
                    //безумнейший парсинг в donInBackground()
    
    		@Override
    		protected void onPostExecute(Void unused) {
                           //разбираемся с тем, что пришло - для начала отлавливаем ошибки в парсере.
    			if (!timeOut) {
    				AlertDialog dlg = new AlertDialog.Builder(TableOfGroups.this).setTitle(Data.lowConnectionTitle)
    						.setMessage(Data.lowConnectionText).setOnCancelListener(new DialogInterface.OnCancelListener() {
    							@Override
    							public void onCancel(DialogInterface dialog) {
    								loading = false;
    								if (!update) {
    									Pages.host.setCurrentTab(Data.savePageIndex - 1);
    								}
    							}
    						}).setPositiveButton("OK", new DialogInterface.OnClickListener() {
    							@Override
    							public void onClick(DialogInterface dialog, int whichButton) {
    								loading = false;
    								if (!update) {
    									Pages.host.setCurrentTab(Data.savePageIndex - 1);
    								}
    							}
    						}).create();
    				dlg.show();
    				if (!update)
    					return;
    			}
                            //ещё около 150 строк подобной ловли
                    }
            }
    }

    Задача (Android): имеется активити со вкладками (Pages), внутри него - дочерние активити. Если в активити Table на 4-й вкладке происходит косяк, то нужно показать диалог и перепрыгнуть на 1-ю вкладку.

    QuickNick, 30 Января 2012

    Комментарии (19)
  7. 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)
  8. Java / Говнокод #9235

    +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
    public class SQLExecutor {
     
        ..............
    
        private static class Done extends RuntimeException {}
    
        private static class Break extends RuntimeException {}
    
        ...............
    
        public boolean init(....) {
            Connection conn = null;
            try {
                ..........
            } catch (Done d) {
                return true;
            } catch (Break b) {
                return false;
            } finally {
                cleanup();
            }
            return true;
        }
    
    
    }

    Anonimous, 27 Января 2012

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

    +69

    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
    int limit = 10;
            int countNews = daoService.getCountNews();
            int currentPage = 1;
            if (linkOffset != 0) {
                currentPage += linkOffset / limit;
            }
            int offset = countNews - (linkOffset + limit);
            if (offset < 0) {
                offset = 0;
                limit = (countNews - (linkOffset + limit)) + limit;
            }
    
            List newsList = daoService.getLimitNews(limit, offset);
            List news = new ArrayList();
            int index = 0;
            for (int i = newsList.size() - 1; i >= 0; i--) {
                news.add(index, newsList.get(i));
                index++;
            }
    
    //DaoService.getLimitNews:
        public List getLimitNews(String owner, int limit, int offset) {
            return super.getSimpleJdbcTemplate().query(
                    "SELECT * FROM news WHERE owner=? AND apply=? AND local=? "
                    + "ORDER BY created limit ? offset ?",
                    new NewsMapper(),
                    owner, true, true, limit, offset);
        }

    Получение списка новостей в ленте в обратном хронологическом порядке.

    0rt, 25 Января 2012

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

    +64

    1. 1
    2. 2
    3. 3
    if (MaritalStatus.S == prevMaritalStatus && MaritalStatus.M == maritalStatus) {
        studentOver100MilesFromHome = false;
    }

    Философский код

    roman-kashitsyn, 25 Января 2012

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