List of usage examples for java.util.concurrent.atomic AtomicInteger incrementAndGet
public final int incrementAndGet()
From source file:com.logsniffer.reader.log4j.Log4jTextReaderTest.java
@Test(timeout = 200 * 1000) public void testPerformanceAndMultiThreading() throws IOException, ParseException { final Log4jTextReader reader = new Log4jTextReader("%d{ABSOLUTE} %-5p [%c] %m%n", "UTF-8"); final byte[] logLine = "00:27:29,456 DEBUG [com.logsniffer.parser.log4j.Log4jParser] Prepared parsing pattern\n" .getBytes();/*w w w . java 2 s. com*/ final ByteLogAccess mockAccess = Mockito.mock(ByteLogAccess.class); Mockito.when(mockAccess.createRelative(Mockito.any(LogPointer.class), Mockito.anyLong())) .thenAnswer(new Answer<LogPointer>() { @Override public LogPointer answer(final InvocationOnMock invocation) throws Throwable { final DefaultPointer from = (DefaultPointer) invocation.getArguments()[0]; final long offset = (long) invocation.getArguments()[1]; return new DefaultPointer(from == null ? offset : from.getOffset() + offset, Long.MAX_VALUE); } }); Mockito.when(mockAccess.getInputStream(null)).thenReturn(new ByteLogInputStream() { int i = 0; @Override public LogPointer getPointer() throws IOException { return new DefaultPointer(i, Long.MAX_VALUE); } @Override public int read() throws IOException { return logLine[i++ % logLine.length]; } }); final int linesToRead = 100000; final long start = System.currentTimeMillis(); final AtomicInteger count = new AtomicInteger(0); reader.readEntries(Mockito.mock(Log.class), mockAccess, null, new LogEntryConsumer() { @Override public boolean consume(final Log log, final LogPointerFactory pointerFactory, final LogEntry entry) throws IOException { try { Thread.sleep(1); } catch (final InterruptedException e) { e.printStackTrace(); } return count.incrementAndGet() < linesToRead; } }); final long size = logLine.length * (count.get() - 1); final long time = System.currentTimeMillis() - start; logger.info("Read {} lines {} total bytes in {}ms: {} bytes/s", count.get() - 1, size, time, size / time * 1000); Assert.assertEquals(linesToRead, count.get()); }
From source file:org.eclipse.hono.service.credentials.impl.FileBasedCredentialsService.java
protected void saveToFile(final Future<Void> writeResult) { if (!dirty) { log.trace("credentials registry does not need to be persisted"); return;//w w w . j a v a2s. c om } final FileSystem fs = vertx.fileSystem(); if (!fs.existsBlocking(filename)) { fs.createFileBlocking(filename); } final AtomicInteger idCount = new AtomicInteger(); JsonArray tenants = new JsonArray(); for (Entry<String, Map<String, JsonArray>> entry : credentials.entrySet()) { JsonArray credentialsArray = new JsonArray(); for (Entry<String, JsonArray> credentialEntry : entry.getValue().entrySet()) { // authId -> full json attributes object JsonArray singleAuthIdCredentials = credentialEntry.getValue(); // from one authId credentialsArray.add(singleAuthIdCredentials); idCount.incrementAndGet(); } tenants.add( new JsonObject().put(FIELD_TENANT, entry.getKey()).put(ARRAY_CREDENTIALS, credentialsArray)); } fs.writeFile(filename, Buffer.factory.buffer(tenants.encodePrettily()), writeAttempt -> { if (writeAttempt.succeeded()) { dirty = false; log.trace("successfully wrote {} credentials to file {}", idCount.get(), filename); writeResult.complete(); } else { log.warn("could not write credentials to file {}", filename, writeAttempt.cause()); writeResult.fail(writeAttempt.cause()); } }); }
From source file:org.apache.hadoop.hbase.zookeeper.lock.TestHReadWriteLockImpl.java
@Test(timeout = 30000) public void testReadLockDoesNotExcludeReaders() throws Exception { final String testName = "testReadLockDoesNotExcludeReaders"; final HReadWriteLockImpl readWriteLock = getReadWriteLock(testName); final CountDownLatch locksAcquiredLatch = new CountDownLatch(NUM_THREADS); final AtomicInteger locksHeld = new AtomicInteger(0); List<Future<Void>> results = Lists.newArrayList(); for (int i = 0; i < NUM_THREADS; ++i) { final String threadDesc = testName + i; results.add(executor.submit(new Callable<Void>() { @Override//from www. ja va 2s . c om public Void call() throws Exception { HReadLockImpl readLock = readWriteLock.readLock(Bytes.toBytes(threadDesc)); readLock.acquire(); try { locksHeld.incrementAndGet(); locksAcquiredLatch.countDown(); Thread.sleep(1000); } finally { readLock.release(); locksHeld.decrementAndGet(); } return null; } })); } locksAcquiredLatch.await(); assertEquals(locksHeld.get(), NUM_THREADS); MultiThreadedTestUtils.assertOnFutures(results); }
From source file:org.apache.tinkerpop.gremlin.server.GremlinServerIntegrateTest.java
@Test public void shouldStartWithDefaultSettings() { // just quickly validate that results are returning given defaults. no graphs are config'd with defaults // so just eval a groovy script. final Cluster cluster = Cluster.open(); final Client client = cluster.connect(); final ResultSet results = client.submit("[1,2,3,4,5,6,7,8,9]"); final AtomicInteger counter = new AtomicInteger(0); results.stream().map(i -> i.get(Integer.class) * 2) .forEach(i -> assertEquals(counter.incrementAndGet() * 2, Integer.parseInt(i.toString()))); cluster.close();//from w ww . j a v a2 s. co m }
From source file:com.ning.arecibo.util.timeline.samples.TestSampleCoder.java
@Test(groups = "fast") public void testTimeRangeSampleProcessor() throws Exception { final DateTime startTime = new DateTime(dateFormatter.parseDateTime("2012-03-23T17:35:11.000Z")); final DateTime endTime = new DateTime(dateFormatter.parseDateTime("2012-03-23T17:35:17.000Z")); final int sampleCount = 2; final List<DateTime> dateTimes = ImmutableList.<DateTime>of(startTime, endTime); final byte[] compressedTimes = timelineCoder.compressDateTimes(dateTimes); final TimelineCursorImpl cursor = new TimelineCursorImpl(compressedTimes, sampleCount); Assert.assertEquals(cursor.getNextTime(), startTime); Assert.assertEquals(cursor.getNextTime(), endTime); // 2 x the value 12: REPEAT_BYTE, SHORT, 2, SHORT, 12 (2 bytes) final byte[] samples = new byte[] { (byte) 0xff, 2, 2, 0, 12 }; final AtomicInteger samplesCount = new AtomicInteger(0); sampleCoder.scan(samples, compressedTimes, sampleCount, new TimeRangeSampleProcessor(startTime, endTime) { @Override/* www.j av a2 s. com*/ public void processOneSample(final DateTime time, final SampleOpcode opcode, final Object value) { if (samplesCount.get() == 0) { Assert.assertEquals(DateTimeUtils.unixSeconds(time), DateTimeUtils.unixSeconds(startTime)); } else { Assert.assertEquals(DateTimeUtils.unixSeconds(time), DateTimeUtils.unixSeconds(endTime)); } samplesCount.incrementAndGet(); } }); Assert.assertEquals(samplesCount.get(), sampleCount); }
From source file:dk.statsbiblioteket.util.xml.XMLStepperTest.java
public void testIterateTags() throws Exception { XMLStreamReader xml = xmlFactory.createXMLStreamReader(new StringReader(SAMPLE)); assertTrue("The first 'bar' should be findable", XMLStepper.findTagStart(xml, "bar")); xml.next();/* w w w. jav a 2s .c om*/ final AtomicInteger count = new AtomicInteger(0); XMLStepper.iterateTags(xml, new XMLStepper.Callback() { @Override public boolean elementStart(XMLStreamReader xml, List<String> tags, String current) throws XMLStreamException { count.incrementAndGet(); return false; } }); assertEquals("Only a single content should be visited", 1, count.get()); assertTrue("The second 'bar' should be findable", XMLStepper.findTagStart(xml, "bar")); }
From source file:org.apache.hadoop.hbase.quotas.TestSpaceQuotasWithSnapshots.java
void waitForStableQuotaSize(Connection conn, TableName tn, String ns) throws Exception { // For some stability in the value before proceeding // Helps make sure that we got the actual last value, not some inbetween AtomicLong lastValue = new AtomicLong(-1); AtomicInteger counter = new AtomicInteger(0); TEST_UTIL.waitFor(15_000, 500, new SpaceQuotaSnapshotPredicate(conn, tn, ns) { @Override/*from w w w . ja va2 s .co m*/ boolean evaluate(SpaceQuotaSnapshot snapshot) throws Exception { LOG.debug("Last observed size=" + lastValue.get()); if (snapshot.getUsage() == lastValue.get()) { int numMatches = counter.incrementAndGet(); if (numMatches >= 5) { return true; } // Not yet.. return false; } counter.set(0); lastValue.set(snapshot.getUsage()); return false; } }); }
From source file:org.eclipse.hono.service.registration.impl.FileBasedRegistrationService.java
private void saveToFile(final Future<Void> writeResult) { if (!dirty) { log.trace("registry does not need to be persisted"); return;/*from w w w . ja v a 2 s . c om*/ } final FileSystem fs = vertx.fileSystem(); if (!fs.existsBlocking(filename)) { fs.createFileBlocking(filename); } final AtomicInteger idCount = new AtomicInteger(); JsonArray tenants = new JsonArray(); for (Entry<String, Map<String, JsonObject>> entry : identities.entrySet()) { JsonArray devices = new JsonArray(); for (Entry<String, JsonObject> deviceEntry : entry.getValue().entrySet()) { devices.add(new JsonObject().put(FIELD_HONO_ID, deviceEntry.getKey()).put(FIELD_DATA, deviceEntry.getValue())); idCount.incrementAndGet(); } tenants.add(new JsonObject().put(FIELD_TENANT, entry.getKey()).put(ARRAY_DEVICES, devices)); } fs.writeFile(filename, Buffer.factory.buffer(tenants.encodePrettily()), writeAttempt -> { if (writeAttempt.succeeded()) { dirty = false; log.trace("successfully wrote {} device identities to file {}", idCount.get(), filename); writeResult.complete(); } else { log.warn("could not write device identities to file {}", filename, writeAttempt.cause()); writeResult.fail(writeAttempt.cause()); } }); }
From source file:org.apache.hadoop.net.unix.TestDomainSocketWatcher.java
@Test(timeout = 300000) public void testStress() throws Exception { final int SOCKET_NUM = 250; final ReentrantLock lock = new ReentrantLock(); final DomainSocketWatcher watcher = newDomainSocketWatcher(10000000); final ArrayList<DomainSocket[]> pairs = new ArrayList<DomainSocket[]>(); final AtomicInteger handled = new AtomicInteger(0); final Thread adderThread = new Thread(new Runnable() { @Override/*ww w .ja va2 s.co m*/ public void run() { try { for (int i = 0; i < SOCKET_NUM; i++) { DomainSocket pair[] = DomainSocket.socketpair(); watcher.add(pair[1], new DomainSocketWatcher.Handler() { @Override public boolean handle(DomainSocket sock) { handled.incrementAndGet(); return true; } }); lock.lock(); try { pairs.add(pair); } finally { lock.unlock(); } } } catch (Throwable e) { LOG.error(e); throw new RuntimeException(e); } } }); final Thread removerThread = new Thread(new Runnable() { @Override public void run() { final Random random = new Random(); try { while (handled.get() != SOCKET_NUM) { lock.lock(); try { if (!pairs.isEmpty()) { int idx = random.nextInt(pairs.size()); DomainSocket pair[] = pairs.remove(idx); if (random.nextBoolean()) { pair[0].close(); } else { watcher.remove(pair[1]); } } } finally { lock.unlock(); } } } catch (Throwable e) { LOG.error(e); throw new RuntimeException(e); } } }); adderThread.start(); removerThread.start(); Uninterruptibles.joinUninterruptibly(adderThread); Uninterruptibles.joinUninterruptibly(removerThread); watcher.close(); }
From source file:org.apache.hadoop.net.unix.TestDomainSocketWatcher.java
@Test(timeout = 300000) public void testStressInterruption() throws Exception { final int SOCKET_NUM = 250; final ReentrantLock lock = new ReentrantLock(); final DomainSocketWatcher watcher = newDomainSocketWatcher(10); final ArrayList<DomainSocket[]> pairs = new ArrayList<DomainSocket[]>(); final AtomicInteger handled = new AtomicInteger(0); final Thread adderThread = new Thread(new Runnable() { @Override//from w w w. j a va 2s. com public void run() { try { for (int i = 0; i < SOCKET_NUM; i++) { DomainSocket pair[] = DomainSocket.socketpair(); watcher.add(pair[1], new DomainSocketWatcher.Handler() { @Override public boolean handle(DomainSocket sock) { handled.incrementAndGet(); return true; } }); lock.lock(); try { pairs.add(pair); } finally { lock.unlock(); } TimeUnit.MILLISECONDS.sleep(1); } } catch (Throwable e) { LOG.error(e); throw new RuntimeException(e); } } }); final Thread removerThread = new Thread(new Runnable() { @Override public void run() { final Random random = new Random(); try { while (handled.get() != SOCKET_NUM) { lock.lock(); try { if (!pairs.isEmpty()) { int idx = random.nextInt(pairs.size()); DomainSocket pair[] = pairs.remove(idx); if (random.nextBoolean()) { pair[0].close(); } else { watcher.remove(pair[1]); } TimeUnit.MILLISECONDS.sleep(1); } } finally { lock.unlock(); } } } catch (Throwable e) { LOG.error(e); throw new RuntimeException(e); } } }); adderThread.start(); removerThread.start(); TimeUnit.MILLISECONDS.sleep(100); watcher.watcherThread.interrupt(); Uninterruptibles.joinUninterruptibly(adderThread); Uninterruptibles.joinUninterruptibly(removerThread); Uninterruptibles.joinUninterruptibly(watcher.watcherThread); }