-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue 63 - Gerenciamento de Reservas #63
Conversation
adicionado o nome Lista para diferenciar de outros repositories que poderão ser criados mais pra frente
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
observação 1
Ao tentar rodar o programa recebi um erro:
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.ravin.App.mainMenu(App.java:34)
at org.ravin.App.main(App.java:21)
Caused by: java.lang.NullPointerException
at java.base/java.util.Objects.requireNonNull(Objects.java:209)
at org.ravin.views.View.(View.java:8)
Acredito que seja pela modificação do local da logo do ravin: View.java:8, como a imagem não está no mesmo nível de diretório da View.java, é preciso ir voltando o diretório através da adição de ''../' até que que ele encontre a imagem. Usar "../../../images/logo.png" funcionou pra mim.
Observação 2
Percebi que a estrutura de pastas foi modificada em algum momento em commits anteriores, talvez até em branchs anteriores, pois já esta assim na dev:
observação 3
App.java:
exceptions devem ser tratadas dentro do método que chamar outros métodos que podem as gerar, nunca na main, pois nesse caso, se ocorrerem irão parar a execução do programa.
Sei que há casos de exemplificação que aparerecem dessa forma, mas acredito que sejam apenas para ser mais didático e poupar mais linhas de código para o leitor.
observação 4
Ao tentar cadastrar uma mesa recebi o segfuinte erro:
java.lang.NullPointerException: Cannot invoke "org.ravin.models.Funcionario.getNome()" because the return value of "org.ravin.models.Mesa.getFuncionario()" is null
at org.ravin.views.mesa.SubmenuMesa.imprimeMesa(SubmenuMesa.java:56)
at org.ravin.views.mesa.CadastrarMesaView.cadastrarMesa(CadastrarMesaView.java:31)
at org.ravin.views.mesa.SubmenuMesa.menuMesa(SubmenuMesa.java:27)
at org.ravin.App.processaOpcaoMenu(App.java:60)
at org.ravin.App.mainMenu(App.java:39)
at org.ravin.App.main(App.java:21)
Acho que colocando um teste na linha SubmenuMesa.java:56 pra checar se há um funcionário e em caso contrário omitir a informação, já resolve;
observação 5
Um problema semelhante a observação 4 ocorre ao selecionar a opção listar mesas e entre a lista de mesas existir uma sem funcionário:
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "org.ravin.models.Funcionario.getNome()" because the return value of "org.ravin.models.Mesa.getFuncionario()" is null
at org.ravin.views.mesa.RecuperarMesaView.listarMesas(RecuperarMesaView.java:31)
at org.ravin.views.mesa.SubmenuMesa.menuMesa(SubmenuMesa.java:30)
at org.ravin.App.processaOpcaoMenu(App.java:60)
at org.ravin.App.mainMenu(App.java:39)
at org.ravin.App.main(App.java:21)
observação 6
Em que momento se insere um funcionário a uma mesa?
Existe a possibilidade de trocar o funcionário de uma mesa?
observação 7
Pouco relevante, mas na CadastrarReservaView linha 52, no caso de um cliente não ser encontrado o ideal é exibir a mensagem retornada pela controller.
observação 8
Ao tentar inserir uma reserva obtive um erro que encerrou a aplicação:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Resolvido:
- Exceções vazando para Main
- Lidar com erros em
src/main/java/org/ravin/views/reserva/CadastrarReservaView.java
- Posto tratamento de erro em inserir() de ReservaController
- Reserva Service agora lida com 3 tipos de erros distintos, dependendo do tipo de situação que a mesa se encontra
- Loop infinito em inserir() de Mesa
- Exibir mesa caso Funcionário seja nulo (erro de nullpointer)
Sistema de Reservas implementado
Implementado
Nota
Acabei esquecendo de trocar de branch, então por isso to repetindo o issue.