Example usage for java.util.concurrent.atomic AtomicInteger incrementAndGet

List of usage examples for java.util.concurrent.atomic AtomicInteger incrementAndGet

Introduction

In this page you can find the example usage for java.util.concurrent.atomic AtomicInteger incrementAndGet.

Prototype

public final int incrementAndGet() 

Source Link

Document

Atomically increments the current value, with memory effects as specified by VarHandle#getAndAdd .

Usage

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);
}