szybki opis problemu:
przy pierwszym uruchomieniu metody odczytajKsiazki jest wszystko ok, natomiast kolejne wywolania tej metody zwracaja takie same wyniki!
po stronie servera:
protected void wyslijKsiazke(Ksiazka ksiazka) {
if (s != null) {
try {
output.writeObject(ksiazka);
output.flush();
System.out.println("Wysylanie,numer:" + ksiazka.getNumer() + "nazwisko:" + ksiazka.getNazwisko());
} catch (Exception e) {
System.out.println("Wyjatek klienta przy wysylaniu ksiazki " + e);
}
}
}
protected void wyslijKsiazki(ArrayList<Ksiazka> mksiazka) {
Ksiazka pom;
Iterator it = mksiazka.iterator();
while (it.hasNext()) {
wyslijWiadomosc(good);
pom = (Ksiazka) it.next();
wyslijKsiazke(pom);
}
wyslijWiadomosc(bad);
}
po stronie klienta:
protected Ksiazka odbierzKsizke() {
Ksiazka ksiazka = null;
Object obj=null;
try {
obj = input.readObject();
ksiazka=(Ksiazka) obj;
System.out.println("odbieranie,numer:" + ksiazka.getNumer() + "nazwisko:" + ksiazka.getNazwisko());
} catch (Exception e) {
System.out.println("Wyjatek przy odbieraniu ksiazki " + e);
}
return ksiazka;
}
protected ArrayList<Ksiazka> odbierzKsizki() {
ArrayList<Ksiazka> mksiazka = null;
Ksiazka pom;
if (odbierzWiadomosc().porownajWiadomosc(good)) {
mksiazka = new ArrayList<Ksiazka>();
do {
pom = odbierzKsizke();
mksiazka.add(pom);
} while (odbierzWiadomosc().porownajWiadomosc(good));
}
return mksiazka;
}
i jeszcze co to jest ksiazka:
public class Ksiazka implements Serializable {
private String nazwisko = "a";
private String aaa = "abc";
private int numer;
...
}
szybki dump serwera:
Klient zaczyna prace 1
wiad 1 : pokazTytuly_ksiazki
wiad 1 : dodajTytul_ksiazki
wiad 1 : pokazTytuly_ksiazki
wiad 1 : pokazTytuly_ksiazki
wiad 1 : pokazKsiazki
wiad 1 : dodajKsiazke
wiad 1 : pokazTytuly_ksiazki
wiad 1 : pokazKsiazki
Wysylanie,numer:123nazwisko:a
wiad 1 : oddajKsiazke
wiad 1 : wypozyczKsiazke
wiad 1 : pokazTytuly_ksiazki
wiad 1 : pokazKsiazki
Wysylanie,numer:123nazwisko:qwe
wiad 1 : dodajTytul_ksiazki
wiad 1 : pokazTytuly_ksiazki
wiad 1 : pokazKsiazki
Wysylanie,numer:123nazwisko:qwe
wiad 1 : pokazTytuly_ksiazki
wiad 1 : pokazKsiazki
wiad 1 : pokazTytuly_ksiazki
wiad 1 : pokazKsiazki
Wysylanie,numer:123nazwisko:qwe
wiad 1 : byebye
Klient konczy prace 1
jeszcze szybszy dump klienta:
odbieranie,numer:123nazwisko:a
odbieranie,numer:123nazwisko:a
odbieranie,numer:123nazwisko:a
odbieranie,numer:123nazwisko:a
jak widac z tych dumpow wyniki sa sprzeczne i w tym problem.
pomysly/pytania ? cokolwiek. rece mi juz opadaja.