FrontGroup / Project007

A4B33SI
http://groups.google.com/group/frontgroup
4 stars 1 forks source link

NullPointerException v serveru při nepovedené inicializaci spojení s databází #31

Closed rtob closed 12 years ago

rtob commented 12 years ago

Zdravím, předpokládejme, že se serveru nepodařilo navázat spjení s databází. Když se k němu zkusí připojit klient, tak server vypíše do konzole následující zprávu, ale klientovi už nic neodpoví. Ten v důsledku toho vytuhne.

Nepodarilo sa nacitat MySQL driver Pripojenie zlyhalo Exception in thread "Thread-0" java.lang.NullPointerException at server.DBConnection.login(DBConnection.java:54) at server.Protocol.process(Protocol.java:43) at server.ClientConnection.run(ClientConnection.java:39) at java.lang.Thread.run(Thread.java:662)

Správně by měl server klientovi odpovědět něco ve smyslu "KO Can't connect to database."

Jak to reprodukovat: odebrat mysql jdbc konektor z netbeans a spustit server a klient. V klientovi se pak pokusit přihlásit.

Prosím o opravení.

Conpuerus commented 12 years ago

Mě se při pokusu přihlásit se k adminovi vypíše, že je chyba v „Iterator items = r.getMenuItems().iterator();”. Když to zakomentuju (plus ten while hned pod tím), tak se to bez problému přihlásí. Konkrétně to hlásí: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at client.MainFrame.(MainFrame.java:48) at client.LoginFrame$1.actionPerformed(LoginFrame.java:106) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028) atd - celkem to má 37 řádků a to sem radši dávat nebudu... stejně to jsou jen swing a awt (a nějaké dva java.security)

rtob commented 12 years ago

Petře, to je jiná chyba - příště prosím vypiš separátní bug/issue.

Tu chybu jsem už opravil, šlo o to, že v LoginFrame kolem řádku 100, kde se rozhoduje, pod jakou rolí se uživatel přihlásil, nebyly ošetřeny okrajové podmínky. Vlastně přihlášení pod jakoukoliv jinou rolí, než admin, vedlo k této chybě. Opravil jsem to a patch už je na githubu.

bob-si commented 12 years ago

Vyreseno, v DBConnection zmenen zpusob pripojovani.