Dunque, avrei un piccolo problemino:

In questa classe java

codice:
public static List<MacchineDTO> findBySimilarName(String nome, int codiceProfilo, String tipo, String ip, String netIp, String servizio)throws Exception{
		Connection conn=null;
		PreparedStatement pstmt=null;
		List<MacchineDTO> result=new ArrayList<MacchineDTO>();
		ResultSet res=null;
		String ipRicerca = "%";
		
		if(netIp.equalsIgnoreCase("*")){
			if(!ip.equalsIgnoreCase("*") && !ip.isEmpty()) ipRicerca = ip;
		}else{
			if(ip.equalsIgnoreCase("*") || ip.isEmpty()){
				ipRicerca = netIp + "%";
			}else{
				if(ip.startsWith(netIp)){
					ipRicerca = ip;
				}else{
					ipRicerca = netIp;
				}
			}
			
		}
		
		if(ProfiliDAO.findByPK(null, codiceProfilo).getIdentificativo().equalsIgnoreCase("administrator")){
			try{
				conn=ConnectionHelper.sorroundConnection(conn);
				pstmt=conn.prepareStatement("SELECT macchine.* FROM macchine, (SELECT interfacce.* FROM interfacce WHERE interfacce.ip LIKE '?') AS ippp WHERE tipo = '?' AND nome LIKE '?' AND macchine.idMacchina = ippp.codiceMacchina;");
				pstmt.clearParameters();
				pstmt.setString(1,ipRicerca);
				pstmt.setString(2,tipo);
				pstmt.setString(3,"%" + nome + "%");
				res=pstmt.executeQuery();
				result=loadRecords(res);
			}catch(Exception e){
				throw e;
			}finally{
				pstmt.close();
				if(res!=null)res.close();
				conn.close();
			}
		}else{
			try{
				conn=ConnectionHelper.sorroundConnection(conn);
				pstmt=conn.prepareStatement("SELECT macchine.* FROM macchine, (SELECT interfacce.* FROM interfacce, (SELECT * FROM permessi WHERE permessi.codiceProfilo = ?) AS ppp WHERE interfacce.ip = ppp.ip AND interfacce.ip LIKE ?) AS ippp WHERE tipo = ? AND nome LIKE ? AND macchine.idMacchina = ippp.codiceMacchina;");
				pstmt.clearParameters();
				pstmt.setInt(1, codiceProfilo);
				pstmt.setString(2, ipRicerca);
				pstmt.setString(3,tipo);
				pstmt.setString(4,"%" + nome + "%");
				res=pstmt.executeQuery();
				result=loadRecords(res);
			}catch(Exception e){
				throw e;
			}finally{
				pstmt.close();
				if(res!=null)res.close();
				conn.close();
			}
		}
		return result;
}
come si vede, eseguo una query, utilizzando i prepared statement. I valori che passo come parametri (la condizione è vera quindi viene eseguita la prima query) sono:

ipRicerca = "%"
tipo = "c"
nome=""

Il problema non è nella classe, perchè viene compilata e funziona tutto a dovere, ma effettuando il debug mi sono accorto che mi viene restituito un resultset vuoto, quando invece se eseguo la query a mano con gli stessi valori sul db mi viene restituito l'unico record che c'è, come dovrebbe essere.
Da cosa può dipendere???