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

    +81

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Date date = (Date)value.getParam("DocReceiptDate");
        if (date.getHours() == 24) {
          date.setHours(0);
        }
        String documentReceiptDate = (new SimpleDateFormat("dd.MM.yyyy.kk.mm")).format(date);

    Элегантная попытка форматирования даты.
    Задача было вместо 24 часов писать 00, например не "24.11.2011.24.23", а "24.11.2011.00.23".
    Как все уже догадались, следовало просто использовать формат "dd.MM.yyyy.HH.mm".

    LexeY4eg, 23 Ноября 2011

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

    +80

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Calendar startCal = Calendar.getInstance();
    startCal.setTime(DateUtils.truncateDateAndTimeToDateOnly(startDate));
    Date strtDt = startCal.getTime();
    
    Calendar endCal = Calendar.getInstance();
    endCal.setTime(DateUtils.truncateDateAndTimeToDateOnly(endDate));
    Date endDt = endCal.getTime();

    Далее по тексту strtDt и endDt используются ровно один раз, startCal и endCal не используются больше вообще. Утилитный метод возвращает требуемый экземпляр класса Date.

    roman-kashitsyn, 21 Ноября 2011

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

    +80

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    if((remoteMachineName == null || remoteMachineName == "")){
          result = new Result(false,"Invalid Remote Machine Name..!!");     
        }else{
         CheckOrTerminateProcInstanceTask task = new CheckOrTerminateProcInstanceTask
         (processName, argList, oper,  username, password,remoteMachineName,chkTer,chkTerMatch);
         if (remoteMachineName != null && remoteMachineName.length() > 0) {
         ....
         }else{
         ....
         }
        }

    Суровые индийские проверки

    Desperate, 20 Ноября 2011

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

    +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
    m_scrabblerProperties = Utils.loadPropertiesFile(m_args[1]);
    if (null != m_scrabblerProperties)
    {
    	System.out.println("Executing DBScrubber with properties file " + m_args[1] + " loaded from the classpath");
    }
    else
    {
    	try
    	{
    		m_scrabblerProperties.load(new FileInputStream(m_args[1]));
    		System.out.println("Executing DBScrubber with properties file " + m_args[1] + " loaded from the file system");
    	}
    	catch (IOException e)
    	{
    		System.err.println("Failed to load " + m_args[1] + " from the classpath or the file system");
    	}
    }

    Utils.loadPropertiesFile - какая то хитрая поделуха которая ищет файл в кэше. Если он не найден в кэше, то автор видимо хотел попробовать считать файл с диска, но судя по всему оказался оказался дебилом.

    askell, 18 Ноября 2011

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

    +121

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    // This is de facto a Map<Integer, Long> because SUM() returns longs, but
    // QueryDSL's type inference makes a fluke here and thinks sum() is an Integer.
    // So the return type is Map<Integer, Integer>. Aren't generics fun?
    final Map<Integer, ? extends Number> map =
    		dsl.from(q).where(q.department.eq(params.getDepartment()), q.quantity.ne(0),
    		q.action.in(UserAction.ORDER_ENGRAVE, UserAction.ORDER_STOCK_WASTAGE,
    				UserAction.ORDER_INVOICE, UserAction.ORDER_STOCK_ADJUSTMENT),
    		QueryDsl.subFrom(q2).where(q2.order.eq(q.order), q2.timestamp.goe(interval.getA()),
    				q2.timestamp.lt(interval.getB()),
    				q2.action.in(UserAction.ORDER_ENGRAVE, UserAction.ORDER_STOCK_WASTAGE,
    						UserAction.ORDER_INVOICE, UserAction.ORDER_STOCK_ADJUSTMENT)).exists())
    	.groupBy(q.order.id).having(q.quantity.sum().gt(0)).map(q.order.id, q.quantity.sum());

    someone, 15 Ноября 2011

    Комментарии (1)
  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 / Говнокод #8493

    +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
    Credential credential = (Credential) getCurrentObject();
    if(isNew(credential)) {
    	CredentialDetails details=credential.getCurrentDetails();
    	if(details == null)
    		throw new NullPointerException("Credential details object is null");
    
    	CredentialDetails updatedDetails = credential.getCurrentDetails();
    	updatedDetails.setStartDate(getCurrentDate());
    	updatedDetails.setExternalID(credential.getExternalID());
    }
    if(isNew(credential)==false) {
    		
    	CredentialDetails details=credential.getCurrentDetails();
    	if(details == null)
    		throw new NullPointerException("Credential details object is null");
    	CredentialDetails updatedDetails = credential.getCurrentDetails();
    	updatedDetails.setStartDate(getCurrentDate());
    	updatedDetails.setExternalID(credential.getExternalID());
    	m_existingDetailsClone.setEndDate(updatedDetails.getStartDate());
    	updatedDetails.setPreviousDetails(m_existingDetailsClone);
    			
    	getModCol().addModified( m_existingDetailsClone );
    }

    Такое впечатление что автор кода клинический идиот. Зачем так насиловать несчастные POJO Credential и CredentialDetailsю

    askell, 11 Ноября 2011

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

    +74

    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
    public class User extends HttpApiDealer{
        private int id = 347;
        private Date lustUpdate;
        private long refreshTime = 10;
        private boolean onlineStatus;
        
        
        public boolean isOnline() {
            Date timeForRefresh = new Date();
            timeForRefresh.setTime(new Date().getTime() - refreshTime);
            if(lustUpdate == null) {
                lustUpdate = new Date();
            }else if(lustUpdate.after(timeForRefresh)) {
                
            }
            
            return true; //заглушка
        }
        
    }

    Хм, смущает меня работа с датами в этом коде.

    manyrus, 11 Ноября 2011

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

    +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
    public static java.util.Date getPreviousMonth () throws ParseException {
            Date currentDate = new Date(System.currentTimeMillis());
            Calendar currentCalendar = Calendar.getInstance();
            currentCalendar.setTimeInMillis(currentDate.getTime());
            
            SimpleDateFormat format = new SimpleDateFormat("dd.MM.yyyy");
            //currentCalendar.set(Calendar.MONTH, currentCalendar.get(Calendar.MONTH) - 1);
            currentCalendar.set(Calendar.DAY_OF_MONTH, currentCalendar.get(Calendar.DAY_OF_MONTH) - 30);
            //currentCalendar.set(Calendar.DATE, currentCalendar.getActualMinimum(Calendar.DAY_OF_MONTH));
            format.format(currentCalendar.getTime());
            java.util.Date resultDate = null;
            resultDate = format.parse(format.format(currentCalendar.getTime()));
            return resultDate;
        }

    Занимаюсь рефакторингом. Особо радует предпоследняя строчка.

    MAK, 11 Ноября 2011

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

    +74

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    protected static final Set<String> SUCCESS_STATUSES = new HashSet<String>(3) {
        private static final long serialVersionUID = 76234654856701L;{
        add(PROCESSING_COMPLETE_RESULTS_CLEAR.toString());
        add(PROCESSING_COMPLETE_WITH_RESULTS_INFORMATION.toString());
        add(NOT_PROCESSED_STATE_LIMITATION.toString());
    }};

    Эпичный способ создать статическую константную мапу без статического блока в основном классе

    roman-kashitsyn, 10 Ноября 2011

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