psrok1/Treeter

Lista bugów

Closed this issue · 0 comments

Serwer

  • Brak szans na moderatora w grupie root w sytuacji czystego modelu
  • pierwszy użytkownik z automatu moderatorem?
  • superadmin predefiniowany w bazie?
  • Powiadomienie "removedFromGroup" nie dociera do samego usuwanego
    Prawdopodobnie jest rozsyłane już po usunięciu z grupy (powinno być tuż przed)
  • Serwer nie importuje poprawnie członkostwa w grupach
  • Serwer po usunięciu użytkownika z grupy, nie usuwa go rekursywnie z podgrup

Przykład
Jesteśmy we wszystkich grupach (grupa1,grupa2,grupa3) i podgrupach grupa1 (podgrupa1..3)
Po zamknięciu i załadowaniu serwera jesteśmy tylko w "/grupa1/podgrupa3" (do tego bez samego "/grupa1")
Natomiast przy jednej grupie - po prostu jej nie ma

Braki w implementacji

  • Po usunięciu jedynego moderatora - jakiś użytkownik powinien być awansowany na moderatora.
  • Po usunięciu ostatniego użytkownika - podgrupa powinna być usunięta
  • Brak przechwytywania wyjątków serwera w main()
    Tworzenie serwera przy zajętym ipku kończy się zwykłą wysypą (dostajemy komunikat, ale od domyślnego handlera)
  • Chyba nie są nigdzie przechwytywane wyjątki z parsera JSON
    One są dość specyficzne, powinny być przechwytywane w wątku Connection, ale nie są

Klient

  • Przy rozłączaniu rzuca NullPointerException na clientListenerThread.interrupt()
    (pewnie wątek nie jest przypisywany do zmiennej :P)
  • Drzewo grup przy zmianach nie jest odświeżane
  • "Akceptuj" na oczekującym uczestniku grupy kończy sie nadaniem mu praw moderatora
    (wysyłany jest setMemberPermission z "moderator")
  • Problem z ponowną synchronizacją danych w niezsynchronizowanej grupie, bez posiadanych uprawnień do pobrania danych
  • USER1 tworzy grupę
  • USER2 prosi o dodanie do tej grupy i ma aktywną kartę
  • USER1 akceptuje użytkownika
  • USER2 blokuje się (ekran nie przeładowuje się, po przeładowaniu ręcznym wyświetla się "Trwa pobieranie danych z serwera")
    Po przelogowaniu dostęp jest uzyskiwany, problem w synchronizacji klienta

Braki w implementacji

  • Brak obsługi wyjątków dla Client:
  • Nie obsługujemy błędów w polu "Adres serwera"
  • Nie obsługujemy problemów z połączeniem - timeout
    Pojawia się NullPointerException
  • Popup menu powinny mieć blokowane niektóre opcje w zależności od stanu.
    Na razie "blokowanie" odbywa się na poziomie błędów ze strony serwera (nie dopuszcza pewnych akcji)
  • Hasło nie jest zasłaniane
  • Nie można przescrollować okna wiadomości (innych pewnie też)

Niekrytyczne ulepszenia

  • ENTER zamiast klikania "Wyślij" cały czas
  • Czyszczenie okienek po akcjach (we wszystkich trzech kartach w widoku grupy)

W oknie logowania może darujmy sobie czyszczenie (wartości pól są wykorzystywane przy zestawianiu połączenia)

  • Przydałoby się gdzieś oznaczyć kto jest zalogowany i na jaką grupę patrzy [tytuł okna]
  • Usunięcie niepotrzebnych printów