1. C# / Говнокод #16202

    +145

    1. 1
    Ошибка сервера в приложении '/'. Выполнение этой команды требует открытого доступного соединения. Текущее состояние соединения: разорвано. Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода. Сведения об исключении: System.InvalidOperationException: Выполнение этой команды требует открытого доступного соединения. Текущее состояние соединения: разорвано. Ошибка источника: Необработанное исключение при выполнении текущего веб-запроса. Информацию о происхождении и месте возникновения исключения можно получить, используя следующую трассировку стека исключений. Трассировка стека: [InvalidOperationException: Выполнение этой команды требует открытого доступного соединения. Текущее состояние соединения: разорвано.]    System.Data.Objects.ObjectContext. EnsureConnection() +11438147    System.Data.Objects.ObjectContext. CreateFunctionObjectResult (EntityCommand entityCommand, ReadOnlyMetadataCollection`1 entitySets, EdmType[] edmTypes, MergeOption mergeOption) +133    System.Data.Objects.ObjectContext. ExecuteFunction(String functionName, MergeOption mergeOption, ObjectParameter[] parameters) +411    System.Data.Objects.ObjectContext. ExecuteFunction(String functionName, ObjectParameter[] parameters) +78    Dmir.ContentCommon.Entities. ContentCommonDb.ContentGet (Nullable`1 contentID, Nullable`1 isModerator) in D:\Projects \DmirCollection\CommonObject \Dmir.ContentCommon \Dmir.ContentCommon\Entities \Model1.cs:745    Dmir.ContentCommon.Entities. ContentCommonRepository. ContentGet(Guid contentID, Boolean isModerator) in D:\Projects \DmirCollection\CommonObject \Dmir.ContentCommon \Dmir.ContentCommon\Entities \ContentCommonRepository.cs:30    Dmir.ContentCommon.Services. ContentCommonService.ContentGet (Guid contentID, Boolean isModerator)  in D:\Projects\DmirCollection \CommonObject \Dmir.ContentCommon \Dmir.ContentCommon\Services \ContentCommonService.cs:142    Dmir.Realty.Content.MvcApp. Controllers.ContentHelperController. View(Guid contentViewID, Int32 page, Boolean isModerator) in D: \Projects\DmirCollection\WebSite \Dmir.Realty.Content \Dmir.Realty.Content.MvcApp \Controllers \ContentHelperController.cs:211    lambda_method(Closure , ControllerBase , Object[] ) +252    System.Web.Mvc. ReflectedActionDescriptor.Execute (ControllerContext controllerContext, IDictionary`2 parameters) +261    System.Web.Mvc. ControllerActionInvoker. InvokeActionMethod (ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39    System.Web.Mvc.Async.<>c__ DisplayClass42.< BeginInvokeSynchronousActionMethod >b__41() +34    System.Web.Mvc.Async.<>c__ DisplayClass39.< BeginInvokeActionMethodWithFilters> b__33() +124    System.Web.Mvc.Async.<>c__ DisplayClass4f.<InvokeActionMethodF ilterAsynchronously>b__49() +839035    System.Web.Mvc.Async.<>c__ DisplayClass37.< BeginInvokeActionMethodWithFilters> b__36(IAsyncResult asyncResult) +15    System.Web.Mvc.Async.<>c__ DisplayClass2a.<BeginInvokeAction>b __20() +33    System.Web.Mvc.Async.<>c__ DisplayClass25.<BeginInvokeAction>b __22(IAsyncResult asyncResult) +839620    System.Web.Mvc.<>c__ DisplayClass1d.<BeginExecuteCore>b __18(IAsyncResult asyncResult) +28    System.Web.Mvc.Async.<>c__ DisplayClass4.<MakeVoidDelegate>b_ _3(IAsyncResult ar) +15    System.Web.Mvc.Controller. EndExecuteCore(IAsyncResult asyncResult) +65    System.Web.Mvc.Async.<>c__ DisplayClass4.<MakeVoidDelegate>b_ _3(IAsyncResult ar) +15    System.Web.Mvc.Controller. EndExecute(IAsyncResult asyncResult) +51    System.Web.Mvc.<>c__ DisplayClass8.<BeginProcessRequest> b__3(IAsyncResult asyncResult) +42    System.Web.Mvc.Async.<>c__ DisplayClass4.<MakeVoidDelegate>b_ _3(IAsyncResult ar) +15    System.Web.Mvc.MvcHandler. EndProcessRequest(IAsyncResult asyncResult) +51 System.Web.CallHandlerExecutionStep .System.Web.HttpApplication. IExecutionStep.Execute() +606    System.Web.HttpApplication. ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288 Информация о версии: Платформа Microsoft .NET Framework, версия:4.0.30319; ASP.NET, версия:4.0.30319.18446

    http://dm-realty.ru/RepairConstruction/View?contentViewID=317f4680-bdb0-4d4e-a423-041a0d833e71

    И нахуй вот это простому пользователю?

    Pythoner, 21 Июня 2014

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

    +80

    1. 1
    private HttpClient httpServer = new DefaultHttpClient();

    У нас в приложении есть свой сервер!!1

    javahutt, 21 Июня 2014

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

    +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
    24. 24
    25. 25
    26. 26
    public void onBackPressed() {
    	if (getSupportFragmentManager().getBackStackEntryCount()==0 || getSupportFragmentManager().getBackStackEntryCount()==1) { 
    							finish();
    							android.os.Process.killProcess(android.os.Process.myPid());
    							((MainActivity)instance).onDestroy();
    	}
    }
    
    /* чуть дальше */
    
                JSONObject jsonObjectA = null, jsonObjectB = null;
                try {
                    jsonObjectA = new JSONObject(a.toString());
                    jsonObjectB = new JSONObject(b.toString());
                } catch (JSONException e1) {
                    e1.printStackTrace();
                }
    
                if ((jsonObjectA != null || jsonObjectB != null) || (jsonObjectA != null && jsonObjectB != null)) {
                    try {
                        valA = jsonObjectA.getString("name");
                        valB = jsonObjectB.getString("name");
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }

    Первый фрагмент кода - это больше специфика Android - при нажатии кнопки назад: закрыть приложение, убить процесс и дернуть метод onDestroy() который в норме должен автоматом вызваться при закрытии приложения но не вызывается из-за того что мы убиваем процесс. Про то что условие if можно оптимизировать я умолчу.

    На if() во втором фрагменте заглючил даже встроенный в intelliJ Idea инструмент рефакторинга...

    TAX, 20 Июня 2014

    Комментарии (7)
  4. PHP / Говнокод #16199

    +159

    1. 1
    2. 2
    3. 3
    4. 4
    if(!preg_match('/@rambler.ru/', $item['email']) ) { 
       cmsCore::addSessionMessage('Можно использовать почту только <strong>rambler.ru</strong>', 'error');
        $errors = true;
    }

    // код надо расширить добавив другие домены, тот кто это писал явно не думал что придется это делать..

    ma-ix, 20 Июня 2014

    Комментарии (13)
  5. Objective C / Говнокод #16198

    −195

    1. 1
    2. 2
    // optimization. Should only be used to read it. Never to write it.
    extern CGFloat	__ccContentScaleFactor;

    Может быть, я бунтарь!
    __ccContentScaleFactor = -666;

    tirinox, 20 Июня 2014

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

    +142

    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
    public Config(string[] str)
            {
                InitializeComponent();
                try
                {
                    textBox5.Text = str[0];
                    textBox6.Text = str[1];
                    textBox1.Text = str[2];
                    textBox2.Text = str[3];
                    textBox3.Text = str[4];
                    textBox4.Text = str[5];
                    textBox7.Text = str[6];
                    raz = str[7];
                }
                catch (Exception)
                {
                    return;
                }
            }

    Классика. Говнокод эпохи барокко. Строк мало, но пованивает.

    GreatMASTERcpp, 19 Июня 2014

    Комментарии (22)
  7. PHP / Говнокод #16196

    +154

    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
    $this->db->from("admin_sidebar");
            $this->db->where("folder", 1);
            $this->db->order_by("sort", "asc");
            $query = $this->db->get();
            $data[0] = $query->result();
            $this->db->from("admin_sidebar");
            $this->db->where("folder", 2);
            $this->db->order_by("sort", "asc");
            $query = $this->db->get();
            $data[1] = $query->result();
            $this->db->from("admin_sidebar");
            $this->db->where("folder", 3);
            $this->db->order_by("sort", "asc");
            $query = $this->db->get();
            $data[2] = $query->result();
            $this->db->from("admin_sidebar");
            $this->db->where("folder", 4);
            $this->db->order_by("sort", "asc");
            $query = $this->db->get();
            $data[3] = $query->result();
            $this->db->from("admin_sidebar");
            $this->db->where("folder", 5);
            $this->db->order_by("sort", "asc");
            $query = $this->db->get();
            $data[4] = $query->result();

    asdozzz, 19 Июня 2014

    Комментарии (2)
  8. SQL / Говнокод #16195

    −165

    1. 1
    passport integer

    Из дипломной работы. Человек хоть раз открывал свой паспорт?

    bormand, 19 Июня 2014

    Комментарии (49)
  9. PHP / Говнокод #16194

    +159

    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
    if($ank['rating']>=0 && $ank['rating']<=1)echo " <img src='/rating/img/1.gif'></img>"; 
    if($ank['rating']>=2 && $ank['rating']<=3)echo " <img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=4 && $ank['rating']<=5)echo " <img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=6 && $ank['rating']<=7)echo " <img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=8 && $ank['rating']<=9)echo " <img src='/rating/img/2.gif'></img>";
    if($ank['rating']>=10 && $ank['rating']<=11)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=12 && $ank['rating']<=13)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=14 && $ank['rating']<=15)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=16 && $ank['rating']<=17)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=18 && $ank['rating']<=19)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img>";
    if($ank['rating']>=20 && $ank['rating']<=21)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=22 && $ank['rating']<=23)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=24 && $ank['rating']<=25)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=26 && $ank['rating']<=27)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=28&& $ank['rating']<=29)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img>";
    if($ank['rating']>=30 && $ank['rating']<=31)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=32&& $ank['rating']<=33)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=34 && $ank['rating']<=35)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=36 && $ank['rating']<=37)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img><img src='/rating/img/1.gif'></img>";
    if($ank['rating']>=38 && $ank['rating']<=39)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img>";
    if($ank['rating']>=40 && $ank['rating']<=41)echo " <img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/2.gif'></img><img src='/rating/img/1.gif'></img>";

    А что есть для этого циклы незнают

    Reds, 19 Июня 2014

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

    +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
    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
    // Current Month Days
                for (int i = 1; i <= _nDaysInMonth; i++) {
                    if (_myPrefs.getIfConfigured()) {
                        if (_regionWithHolidays != null && _regionWithHolidays.length > 0) {
    
                            String holidayDateStringFormat = String.valueOf(i) + "-" + getMonthAsString(nCurrentMonth) + "-" + _strCurrentSelectedYear;
                            for (int index = 0; index < _regionWithHolidays.length; index++) {
                                if (_regionWithHolidays[index].getHolidayDate().equals(holidayDateStringFormat)) {
                                    list.add(String.valueOf(i) + "-RED" + "-" + getMonthAsString(nCurrentMonth) + "-" + yy);
                                }
                            }
                        }
                    }
    
                    if (i == getCurrentDayOfMonth()) {
                        list.add(String.valueOf(i) + "-BLUE" + "-" + getMonthAsString(nCurrentMonth) + "-" + yy);
                    } else {
                        list.add(String.valueOf(i) + "-WHITE" + "-" + getMonthAsString(nCurrentMonth) + "-" + yy);
                        if (_myPrefs.getIfConfigured()) {
                            if (_regionWithHolidays != null && _regionWithHolidays.length != 0) {
                                String otherDates = String.valueOf(i) + "-" + getMonthAsString(nCurrentMonth) + "-" + _strCurrentSelectedYear;
                                for (int index = 0; index < _regionWithHolidays.length; index++) {
                                    if (_regionWithHolidays[index].getHolidayDate().equals(otherDates)) {
                                        list.remove(String.valueOf(i) + "-WHITE" + "-" + getMonthAsString(nCurrentMonth) + "-" + yy);
                                    }
                                }
                            }
                        }
                    }
                }
    
                // some code
    
                for (int i = 1; i <= _nDaysInMonth; i++) {
                    String[] day_color = list.get(i).split("-");
                    if (day_color[1].equals("WHITE")) {
                        //active dates in current month
                        dayNumberView.setTextColor(getResources().getColor(R.color.darkGrey_font));
                    } else if (day_color[1].equals("BLUE")) {
                        //current date in current month
                        holder.tvTime.setTextColor(getResources().getColor(R.color.whitetranslucent));
                        dayNumberView.setTextColor(getResources().getColor(R.color.whitetranslucent));
                        cell.setBackgroundResource(R.color.blue_font);
                    } else if (day_color[1].equals("RED")) {
                        //active dates in current month
                        dayNumberView.setTextColor(getResources().getColor(R.color.red));
                    }
                }

    Это приложение с десятками тысяч пользователей. Мне выпала честь править в нем баги. На сколько я могу судить задача этого куска была отобразить календарь на текущий месяц на экране и подсветить WHITE - обычные дни, BLUE - текущий, RED - выходные и праздничные. Итак в чем соль:
    1) сама соль метода - в одном цикле создается список строк вида НОМЕР-ЦВЕТ-МЕСЯЦ-ГОД, чуть ниже в аналогичном цикле эти строки разбиваются по "-" и сравнивается по строковому значению цвета. Кроме того день может быть или текущим или праздничным, но никак не одновременно.
    2) два практически одинаковых куска кода по 10 строк - строки 4-13 и 19-28, первый при определенных условия добавляет ПРАЗДНИЧНЫЙ день в календарь, потом день в 16-18 строках день всегда добавляется еще раз этот день, либо обычный(WHITE) либо текущий(BLUE), и выполняется второй кусок и если проходят те же условия т.е. фактические если был добавлен праздничный день(RED) то удаляется добавленный ОБЫЧНЫЙ день. Баг был в том что если текущий день был еще и праздничным то они задваивались. Сделать по нормальному - если день уже добавлен, не добавлять еще раз или сделать continue главному циклу. Не говоря уже о том чтобы добавить break после 9 строки, видно автор не знал про эти операторы.

    TAX, 19 Июня 2014

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