- 1
for(int iyhx=0; iyhx<nLen; iyhx++)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+106
for(int iyhx=0; iyhx<nLen; iyhx++)
"А идите вы на iyhx."
+83
class o{
public o o(o o){
return o;
}
}
Может не в тему, но выглядит забавно.
+73
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 иммутабелен? Не проблема!
+74
synchronized public void refreshConversionTable() {
btnClick = true;
if (dataModel != null)
dataModel.reset();
dataModel = null;
}
если модель данных существует, сначала сбросить все данные, а потом занулим....
+72
//Функция
}
return (s1.compareTo("") != 0 ? s1 + (s.compareTo("") != 0 ? GlomoConfig.distInfo.smsCustomTailSeparator() + s : "") : "").toLowerCase();
}
Взято из декомпилированного кода java-игрушки.
+71
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().
+68
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-ю вкладку.
+71
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
Мы нашли почему там Синхронный метод.
Глобальная переменная в коде. Какому идеоту пришло в голову так писать.....пи......
+80
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;
}
}
+69
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);
}
Получение списка новостей в ленте в обратном хронологическом порядке.