Na most kicsit sok idő kimaradt, az utóbbi időben jól el voltam látva munkával. Az XML-es ámokfutásomat is csak most tudom majd újrakezdeni. Bocsi mindenkitől, aki másnapra várta.
Megint kis bullshitelés következik.
Mese... A régi cache-interszatyorhoz írtam egy unit tesztet, ami párhuzamosan futó szálak lockolási megoldását teszteli. Azt a tulajdonságát akartam unit teszt karókkal megtámogatni néhány oldalról, hogy ha egyszerre egy cachelt szolgáltatást ezren meghívnak egyszerre, ne történjen meg minden hívás, hanem csak egy, a többi pedig kapja ugyanazt - ez egy fontos opció a cuccban, könnyen agyoncsaphatjuk valamelyik backendünket. Ezt kétféleképpen is verifikálom: minden szál lefutás után a ugyanazt étréket kell visszaadja a cache-ből, valamint mivel a cache-vel körbevett metódus maga úgy lett leheggesztve, hogy 1000 ms-ig tartson, azt is ellenőrzöm hogy 1000 ms-nél több időbe telljen a hívás, és persze az érintett cache-vel körbefalazott metódus csak egyszer hívódjon meg ténylegesen.
És ment is elsőre mint a karikacsapás, boldogság zöld csíkja. Egészen addig, amig be nem dobtam az SVN-be a cuccot és a nyilván linuxon futó build agenteink fel nem kapták hogy ők is kipróbálják tényleg megy-e. És nem ment :-) Nagyon gyanúsan 1000 ms köré eső értékek jöttek, de hát alatta voltak kicsivel.
A probléma az volt, hogy a System.currentTimeMillis() nem egészen pontosan adja vissza minden operációs rendszeren a jelenlegi értéket, hanem egy kicsit szemcsésen. Csak 64 bites linuxon sikerült ezt elérni amúgy. Ez így emlékeztetőnek kiválló volt, hogy ilyeneket ne írjak unit tesztekbe :)
Egyébkén köszi a szavazatokat, 4.5 fölött van idáig az átlagom, legutóbb általános iskolában volt így talán.