Problemas ao receber ArrayList<>

Bom dia a todos. Gostaria de saber porque o meu ArrayList que recebo, não intera todos os objetos do outro array, e sim apenas o último.

olhe só o código.

no meu DAO eu tenho o seguinte método


public ArrayList<Protocolo> mostrarDados(String filtroProtocolo, String filtro) throws SQLException{
				
		
		ArrayList<Protocolo> listaProtocolos = new ArrayList<Protocolo>();
		Protocolo protocolo = new Protocolo();
		
		String sql = "SELECT * FROM \"Protocolo_protocolo\" WHERE LOWER("+"\""+filtroProtocolo+"\""+") like LOWER('"+filtro+"%')";

.............................................

	while(rs.next()){
			
		qntRegistros++;
									
				protocolo.setData(rs.getDate(1));
				protocolo.setUF(rs.getString(2));
				protocolo.setMunicipio(rs.getString(3));
				protocolo.setNumProcesso(rs.getString(4));
				protocolo.setNomeRequerente(rs.getString(5));
				protocolo.setDestino(rs.getString(6));
				protocolo.setTitulo(rs.getString(7));
				protocolo.setAssunto(rs.getString(8));
				protocolo.setCodigo(rs.getInt(9));
				
		
				
				listaProtocolos.add(protocolo);
		
			
			
		}

… no meu Servlet eu utilizo o método.


protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		controleDAO controleDao = new controleDAO();

		try {
			ArrayList<Protocolo> listaProtocolo = new ArrayList<Protocolo>();
				
			listaProtocolo.addAll(controleDao.mostrarDados(request
					.getParameter("filtroProtocolo"), request
					.getParameter("filtro")));

… e oq acontece é que… listaProtocolo repete todos os valores do último do ArrayList que o método mostrarDados me passa. Não sei porque. :frowning: … eu já fiz o teste dentro do proprio método mostrarDados, e ele funciona perfeito. Mas nesse momento em que eu passo pra servlet e coloco em outro ArrayList, ele só pega os dados do último objeto do ArrayList que mostraDados() retorna.

Alguém poderia me ajudar ?

....   
     while(rs.next()){  
         Protocolo protocolo = new Protocolo();   // você precisa criar um novo objeto para cada linha
               
         qntRegistros++;  
                                       
                 protocolo.setData(rs.getDate(1));  
    ....               
                 listaProtocolos.add(protocolo);  
         }  

Caracas mano… me da um tiro vai ? Putz… como n enxerguei isso… valeu man. era so isso msm… putz… ¬¬ … kkkkk… vacilei ae… Obriago thingol. vlw msm de coração =D. As vezes a gente olha olha olha olha d+, e vem outro e já bate na vista… isso é comum ¬¬ … vlw … obrigado a atenção de todos !