Giter Site home page Giter Site logo

aeds3's People

Contributors

homeniquem avatar lucassnatiago avatar rafaelamauri avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

samuelpietra

aeds3's Issues

EOF , IOE e NullPointerException em '1) Listar respostas'

Esse erro acontece simultaneamente com o erro descrito em #17 , a única diferença é que em vez de eu pedir para listar as respostas de um usuário específico, eu peço para imprimir todas as respostas de determinada pergunta

Saida do terminal

java.io.EOFException
        at java.base/java.io.RandomAccessFile.readInt(RandomAccessFile.java:837)
        at menu.pergunta.indices.ListaIDs$Bloco.lerBloco(ListaIDs.java:231)
        at menu.pergunta.indices.ListaIDs.readP(ListaIDs.java:174)
        at menu.pergunta.indices.ListaIDs.read(ListaIDs.java:134)
        at menu.sistema.CrudAPI.getRespostaArrayGeral(CrudAPI.java:532)
        at menu.resposta.RespostaAPI.listarRespostasDoGeral(RespostaAPI.java:28)
        at menu.sistema.CrudAPI.verificarRequisicaoEmPergunta(CrudAPI.java:207)
        at menu.Menu.navegarPergunta(Menu.java:277)
        at menu.sistema.CrudAPI.verificarRequisicaoDoUsuario(CrudAPI.java:130)
        at menu.Menu.acessoGarantido(Menu.java:197)
        at menu.Menu.Inicio(Menu.java:96)
        at Main.main(Main.java:12)
java.io.IOException: Negative seek offset
        at java.base/java.io.RandomAccessFile.seek(RandomAccessFile.java:589)
        at crud.Crud.read(Crud.java:95)
        at menu.sistema.CrudAPI.getRespostaArrayGeral(CrudAPI.java:542)
        at menu.resposta.RespostaAPI.listarRespostasDoGeral(RespostaAPI.java:28)
        at menu.sistema.CrudAPI.verificarRequisicaoEmPergunta(CrudAPI.java:207)
        at menu.Menu.navegarPergunta(Menu.java:277)
        at menu.sistema.CrudAPI.verificarRequisicaoDoUsuario(CrudAPI.java:130)
        at menu.Menu.acessoGarantido(Menu.java:197)
        at menu.Menu.Inicio(Menu.java:96)
        at Main.main(Main.java:12)
Exception in thread "main" java.lang.NullPointerException
        at menu.resposta.RespostasFrontEnd.listarRespostasGeral(RespostasFrontEnd.java:55)
        at menu.resposta.RespostaAPI.listarRespostasDoGeral(RespostaAPI.java:34)
        at menu.sistema.CrudAPI.verificarRequisicaoEmPergunta(CrudAPI.java:207)
        at menu.Menu.navegarPergunta(Menu.java:277)
        at menu.sistema.CrudAPI.verificarRequisicaoDoUsuario(CrudAPI.java:130)
        at menu.Menu.acessoGarantido(Menu.java:197)
        at menu.Menu.Inicio(Menu.java:96)
        at Main.main(Main.java:12)

bug: Hotfix na sobrecrista do banco de dados

Após alterar uma reposta, ela sobrescreve o conteúdo de si e da proxima:

java.io.IOException: Negative seek offset
        at java.base/java.io.RandomAccessFile.seek(RandomAccessFile.java:589)
        at crud.Crud.read(Crud.java:95)
        at menu.backend.cruds.RespostasCRUD.achar(RespostasCRUD.java:60)
        at menu.api.RespostasAPI.escolherResposta(RespostasAPI.java:222)
        at menu.api.RespostasAPI.arquivarResposta(RespostasAPI.java:177)
        at menu.api.APIControle.requisicaoEmPerguntas(APIControle.java:181)
        at menu.Menu.navegarPergunta(Menu.java:300)
        at menu.Menu.acessoGarantido(Menu.java:217)
        at menu.Menu.Inicio(Menu.java:104)
        at Main.main(Main.java:75)
Operação terminou com erro!

Após esse erro, se o usuário tentar imprimir a lista de todas as respostas para aquela pergunta, o seguinte erro ocorre:

java.io.IOException: Negative seek offset
        at java.base/java.io.RandomAccessFile.seek(RandomAccessFile.java:589)
        at crud.Crud.read(Crud.java:95)
        at menu.backend.cruds.UsuariosCRUD.achar(UsuariosCRUD.java:75)
        at menu.frontend.RespostasFrontEnd.listarGeral(RespostasFrontEnd.java:67)
        at menu.api.RespostasAPI.listarRespostasDoGeral(RespostasAPI.java:58)
        at menu.api.APIControle.requisicaoEmPerguntas(APIControle.java:159)
        at menu.Menu.navegarPergunta(Menu.java:300)
        at menu.Menu.acessoGarantido(Menu.java:217)
        at menu.Menu.Inicio(Menu.java:104)
        at Main.main(Main.java:75)
Exception in thread "main" java.lang.NullPointerException
        at menu.frontend.RespostasFrontEnd.listarGeral(RespostasFrontEnd.java:67)
        at menu.api.RespostasAPI.listarRespostasDoGeral(RespostasAPI.java:58)
        at menu.api.APIControle.requisicaoEmPerguntas(APIControle.java:159)
        at menu.Menu.navegarPergunta(Menu.java:300)
        at menu.Menu.acessoGarantido(Menu.java:217)
        at menu.Menu.Inicio(Menu.java:104)
        at Main.main(Main.java:75)

[BUG] Problema ao inserir a primeira pergunta, quando tem mais de um usuário

O problema é basicamente este:

Se você tentar inserir uma pergunta, quando o sistema tem mais de um usuário, essa pergunta será registrada no primeiro usuário, e então será adicionado a todos usuários até chegar no usuário N.

Possíveis culpados:

Crud.java
PerguntasCRUD.java
ADMPerguntas.java

Para melhor explicar a situação, considere os dois exemplos:

  • No primeiro caso eu criei dois usuários: Gustavo e Thiago. e então eu fui em Thiago e tentei inserir uma pergunta. Curiosamente, a pergunta não foi armazenada em Thiago, mas sim em Gustavo. Para ficar ainda mais confuso, se eu adicionar mais uma pergunta, a pergunta agora sim vai para Thiago e esse BUG desaparece e agora as perguntas são adicionadas da maneira como deveria ser.

  • No segundo caso eu adicionei três usuários: Gustavo, Thiago e Lucas e então eu fui em Lucas e tentei inserir uma pergunta. No primeiro e segundo caso, não aconteceu nada, nenhuma pergunta foi inserida. Porém no terceiro caso finalmente a pergunta foi adicionada. Quando eu fui olhar as outras contas, eu percebi que a primeira pergunta que eu adicionei em Lucas apareceu em Gustavo, e a segunda apareceu em Thiago.

Quando todos os usuários possuem perguntas, o BUG não se manifesta, então eu não sei se isso tem haver com a maneira como o Crud funciona, ou se eu falhei em observar algum erro do "PerguntasCRUD.java".

Notas e Comentários ainda a serem adicionados

Para aqueles que forem mexer com as versões da branch : feat/Resposta, a feature de respostas ainda está em processo de implementação, e por isso, mais testes são necessários.

Sobre as notas e comentários, os menus estão "funcionando" mas sugiro que ninguém tente acessá-los, até porque a implementação não passou da fase de concepção.

bug: erro na escrita em ListaIDs

O método create está com um erro na escrita em disco

Ao executar o código abaixo, era suposto cada pergunta ter seu espaço no disco. Alguns testes mostraram que essas perguntas estão sendo sobreescritas.

public class Teste {
    public static void main(String[] args) {
        ListaIDs lista = new ListaIDs("Dados/db");

        lista.create(0, 0);
        lista.create(0, 1);

        lista.create(1, 0);

        lista.create(2, 0);
        lista.create(2, 1);

    }
}

Refatoração do código usando 'Clean Code' e arquitetura 'SOLID'

Nesse exato momento, o código está passando por uma grande refatoração, para deixar ele mais fácil de leitura para todos, e para isso está sendo usando como base as ideias de 'Clean Code' e arquitetura 'SOLID'

A primeira fase da refatoração teve seu término, olhe para a branch 'refactor' para mais detalhes, mas saiba que por enquanto que essa versão ainda não está funcional, tentar compilar ela apenas resultará em problemas, então tome cuidado a acessar o conteúdo dessa branch.

Problema ao listar a primeira pergunta ao ter 10 usuarios

Tendo 10 usuários ou mais e clicar para listar as perguntas o programa trava dando essa mensagem de erro:

java.io.IOException: Negative seek offset
	at java.base/java.io.RandomAccessFile.seek(RandomAccessFile.java:589)
	at crud.Crud.read(Crud.java:94)
	at menu.sistema.CrudAPI.getPerguntaArray(CrudAPI.java:295)
	at menu.pergunta.PerguntasAPI.listarPerguntas(PerguntasAPI.java:227)
	at menu.sistema.CrudAPI.verificarRequisicaoDoUsuario(CrudAPI.java:120)
	at menu.Menu.acessoGarantido(Menu.java:190)
	at menu.Menu.Inicio(Menu.java:90)
	at Main.main(Main.java:12)
Exception in thread "main" java.lang.NullPointerException
	at menu.pergunta.PerguntasFrontEnd.listarPerguntas(PerguntasFrontEnd.java:32)
	at menu.pergunta.PerguntasAPI.listarPerguntas(PerguntasAPI.java:233)
	at menu.sistema.CrudAPI.verificarRequisicaoDoUsuario(CrudAPI.java:120)
	at menu.Menu.acessoGarantido(Menu.java:190)
	at menu.Menu.Inicio(Menu.java:90)
	at Main.main(Main.java:12)

Implementações a serem feitas no feat/Comentario

O que falta a ser feito

  • Corrigir a data e hora que aparecem nos comentários das perguntas
  • Inserir o nome do autor do comentário na pergunta
  • Modificar a função RespostasFrontEnd para listar os comentarios das respostas

Nota

  • O bug que estava ocorrendo na hora de listar o comentario da pergunta foi corrigido.

Erro: IOE e EOF exception ao '1) Listar suas respostas'

Durante o processo de listagem de respostas de um determinado usuário, o programa jogou um IOE e EOF exception. A causa exata é algo que eu não consigo determinar exatamente, mas decidi abrir o 'Issue' para que todos fiquem sabendo do problema:

Situação atual do banco de dados

  • 4 usuários no banco de dados
  • 2 deles tem perguntas registradas
    • Ambas as perguntas possuem respostas de usuários diferentes

Como que eu cheguei nesse erro:

Ao registrar as respostas na primeira pergunta , nada de estranho ocorreu e inclusive eu consegui registrar respostas com diferentes usuários. O erro só se manifestou quando eu fui inserir respostas na segunda pergunta registrada: eu inseri a resposta, e quando fui listar, isso foi imprimido na tela:

Saida do terminal

java.io.EOFException
        at java.base/java.io.RandomAccessFile.readInt(RandomAccessFile.java:837)
        at menu.pergunta.indices.ListaIDs$Bloco.lerBloco(ListaIDs.java:231)
        at menu.pergunta.indices.ListaIDs.readP(ListaIDs.java:174)
        at menu.pergunta.indices.ListaIDs.read(ListaIDs.java:134)
        at menu.sistema.CrudAPI.getRespostaArrayUser(CrudAPI.java:499)
        at menu.resposta.RespostaAPI.listarRespostasDoUsuario(RespostaAPI.java:50)
        at menu.sistema.CrudAPI.verificarRequisicaoEmPergunta(CrudAPI.java:211)
        at menu.Menu.navegarPergunta(Menu.java:277)
        at menu.sistema.CrudAPI.verificarRequisicaoDoUsuario(CrudAPI.java:130)
        at menu.Menu.acessoGarantido(Menu.java:197)
        at menu.Menu.Inicio(Menu.java:96)
        at Main.main(Main.java:12)
java.io.IOException: Negative seek offset
        at java.base/java.io.RandomAccessFile.seek(RandomAccessFile.java:589)
        at crud.Crud.read(Crud.java:95)
        at menu.sistema.CrudAPI.getRespostaArrayUser(CrudAPI.java:506)
        at menu.resposta.RespostaAPI.listarRespostasDoUsuario(RespostaAPI.java:50)
        at menu.sistema.CrudAPI.verificarRequisicaoEmPergunta(CrudAPI.java:211)
        at menu.Menu.navegarPergunta(Menu.java:277)
        at menu.sistema.CrudAPI.verificarRequisicaoDoUsuario(CrudAPI.java:130)
        at menu.Menu.acessoGarantido(Menu.java:197)
        at menu.Menu.Inicio(Menu.java:96)
        at Main.main(Main.java:12)
■■■■■■■■■■■■■■
■▒Respostas▒▒■
■■■■■■■■■■■■■■

Operação terminou com sucesso!

Pressione 'Enter' para continuar...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.