@SuppressFBWarnings("STT_TOSTRING_STORED_IN_FIELD") public ExpensiveTestObject(final long maxIdleMillis, final int nrUsesToFailAfter, final long minOperationMillis, final long maxOperationMillis) { this.maxIdleMillis = maxIdleMillis; this.nrUsesToFailAfter = nrUsesToFailAfter; this.minOperationMillis = minOperationMillis; this.maxOperationMillis = maxOperationMillis; lastTouchedTimeMillis = System.currentTimeMillis(); nrUses = 0; simulateDoStuff(maxOperationMillis - minOperationMillis); id = "Test Object " + OBJ_COUNT.getAndIncrement(); }
public void testObject() throws IOException { LOG.debug("Testing object {}", id); long currentTime = System.currentTimeMillis(); if (currentTime - lastTouchedTimeMillis > maxIdleMillis) { throw new IOException("Connection closed " + id); } if (nrUses > nrUsesToFailAfter) { throw new IOExceptionImpl("Simulated random crap " + id); } simulateDoStuff(0); nrUses++; lastTouchedTimeMillis = System.currentTimeMillis(); }
public void doStuff() throws IOException { if (failAll) { throw new IOExceptionImpl("Failall " + id); } long currentTime = System.currentTimeMillis(); if (currentTime - lastTouchedTimeMillis > maxIdleMillis) { throw new ClosedChannelException(); } if (nrUses > nrUsesToFailAfter) { throw new IOExceptionImpl("Simulated random crap " + id); } simulateDoStuff(maxOperationMillis - minOperationMillis); nrUses++; lastTouchedTimeMillis = System.currentTimeMillis(); }