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

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

Introduction

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

Prototype

public final int getAndIncrement() 

Source Link

Document

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

Usage

From source file:com.evilisn.ScheduledTasks.java

@Scheduled(fixedRate = 10 * 60000)
public void scheduledCheckOCSP() throws InterruptedException {
    log.info("fetching certs");
    ArrayList<Cert> certs = (ArrayList<Cert>) getCerts();
    log.info(String.format("[%d] certs to be checked.", certs.size()));

    Date now = new Date();
    long startTime = now.getTime();
    System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "50");
    AtomicInteger c_REVOKED = new AtomicInteger();
    AtomicInteger c_GOOD = new AtomicInteger();
    AtomicInteger c_UNKNOWN = new AtomicInteger();
    AtomicInteger c_VALID = new AtomicInteger();
    AtomicInteger c_EXPIRED = new AtomicInteger();

    certs.parallelStream().forEach(o -> {
        try {//from   ww w.  j  a  v a  2s . c om
            if (o.getClient_cert().getNotAfter().after(now)) {
                OCSP.RevocationStatus.CertStatus resp = OCSP.check(o.getClient_cert(), o.getIssuer_cert())
                        .getCertStatus();
                log.info(String.format("Serial Number [%20s]| OCSP Status:[%s]",
                        o.getClient_cert().getSerialNumber(), resp.toString()));
                c_VALID.getAndIncrement();
                if (resp == OCSP.RevocationStatus.CertStatus.GOOD)
                    c_GOOD.getAndIncrement();
                if (resp == OCSP.RevocationStatus.CertStatus.UNKNOWN)
                    c_UNKNOWN.getAndIncrement();
                if (resp == OCSP.RevocationStatus.CertStatus.REVOKED)
                    c_REVOKED.getAndIncrement();
            } else {
                //expired.
                c_EXPIRED.getAndIncrement();
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (CertPathValidatorException e) {
            e.printStackTrace();
        }
    });
    long endTime = System.currentTimeMillis();
    log.info("ALL " + certs.size() + " certificates processed in " + (endTime - startTime) / 100
            + " seconds, with " + c_VALID.get() + " valid certs, " + c_EXPIRED + " expired certs, among which "
            + c_GOOD.get() + " is GOOD, " + c_REVOKED.get() + " is revoked, and " + c_UNKNOWN.get()
            + " is KNOWN.");
}

From source file:com.spectralogic.ds3client.helpers.FileSystemHelper_Test.java

private void putObjectThenRunVerification(final FileSystemHelper fileSystemHelper,
        final ResultVerifier resultVerifier) throws IOException, URISyntaxException {
    try {/*from   ww  w  .j  a  v  a 2  s. c  o m*/
        final String DIR_NAME = "largeFiles/";
        final String[] FILE_NAMES = new String[] { "lesmis-copies.txt" };

        final Path dirPath = ResourceUtils.loadFileResource(DIR_NAME);

        final AtomicLong totalBookSizes = new AtomicLong(0);

        final List<String> bookTitles = new ArrayList<>();
        final List<Ds3Object> objects = new ArrayList<>();
        for (final String book : FILE_NAMES) {
            final Path objPath = ResourceUtils.loadFileResource(DIR_NAME + book);
            final long bookSize = Files.size(objPath);
            totalBookSizes.getAndAdd(bookSize);
            final Ds3Object obj = new Ds3Object(book, bookSize);

            bookTitles.add(book);
            objects.add(obj);
        }

        final int maxNumBlockAllocationRetries = 1;
        final int maxNumObjectTransferAttempts = 1;
        final int retryDelay = -1;
        final Ds3ClientHelpers ds3ClientHelpers = new Ds3ClientHelpersImpl(client, maxNumBlockAllocationRetries,
                maxNumObjectTransferAttempts, retryDelay, new SameThreadEventRunner(), fileSystemHelper);

        final AtomicInteger numTimesCallbackCalled = new AtomicInteger(0);

        final Ds3ClientHelpers.Job writeJob = ds3ClientHelpers.startWriteJob(BUCKET_NAME, objects);
        writeJob.attachObjectCompletedListener(new ObjectCompletedListener() {
            @Override
            public void objectCompleted(final String name) {
                numTimesCallbackCalled.getAndIncrement();

                final ObjectStorageSpaceVerificationResult result = ds3ClientHelpers
                        .objectsFromBucketWillFitInDirectory(BUCKET_NAME, Arrays.asList(FILE_NAMES),
                                Paths.get("."));

                resultVerifier.verifyResult(result, totalBookSizes.get());
            }
        });

        writeJob.transfer(new FileObjectPutter(dirPath));

        assertEquals(1, numTimesCallbackCalled.get());
    } finally {
        deleteAllContents(client, BUCKET_NAME);
    }
}

From source file:nl.knaw.huygens.alexandria.exporter.LaTeXExporter.java

private Map<TAGMarkup, Integer> calculateLayerIndex(List<TAGMarkup> markupList,
        Map<TAGTextNode, Integer> textNodeIndex) {
    List<MarkupLayer> layers = new ArrayList<>();
    markupList.forEach(tr -> {//  w ww .j a  v a  2s .  com
        Optional<MarkupLayer> oLayer = layers.stream().filter(layer -> layer.canAdd(tr)).findFirst();
        if (oLayer.isPresent()) {
            oLayer.get().addMarkup(tr);

        } else {
            MarkupLayer layer = new MarkupLayer(textNodeIndex);
            layer.addMarkup(tr);
            layers.add(layer);
        }
    });

    AtomicInteger layerCounter = new AtomicInteger();
    Map<TAGMarkup, Integer> index = new HashMap<>();
    layers.stream().sorted(ON_MAX_RANGE_SIZE).forEach(layer -> {
        int i = layerCounter.getAndIncrement();
        layer.getMarkups().forEach(tr -> index.put(tr, i));
    });

    return index;
}

From source file:nl.knaw.huygens.alexandria.exporter.LaTeXExporterInMemory.java

private void appendLimen(StringBuilder latexBuilder, Limen limen) {
    ColorPicker colorPicker = new ColorPicker("blue", "brown", "cyan", "darkgray", "gray", "green", "lightgray", //
            "lime", "magenta", "olive", "orange", "pink", "purple", "red", "teal", "violet", "black");
    latexBuilder.append("\n    % TextNodes\n");
    if (limen != null) {
        Set<Markup> openMarkups = new LinkedHashSet<>();
        AtomicInteger textNodeCounter = new AtomicInteger(0);
        Map<TextNode, Integer> textNodeIndices = new HashMap<>();
        limen.getTextNodeIterator().forEachRemaining(tn -> {
            int i = textNodeCounter.getAndIncrement();
            textNodeIndices.put(tn, i);//www .j ava  2s.com
            Set<Markup> markups = limen.getMarkups(tn);

            List<Markup> toClose = new ArrayList<>(openMarkups);
            toClose.removeAll(markups);
            Collections.reverse(toClose);

            List<Markup> toOpen = new ArrayList<>(markups);
            toOpen.removeAll(openMarkups);

            openMarkups.removeAll(toClose);
            openMarkups.addAll(toOpen);

            addTextNode(latexBuilder, tn, i);
        });

        connectTextNodes(latexBuilder, textNodeCounter);
        markMarkups(latexBuilder, limen, colorPicker, textNodeIndices);
        // drawMarkupsAsSets(latexBuilder, limen, colorPicker, textNodeIndices);
    }
}

From source file:nl.knaw.huygens.alexandria.exporter.LaTeXExporterInMemory.java

private void appendGradedLimen(StringBuilder latexBuilder, Limen limen) {
    int maxMarkupsPerTextNode = limen.textNodeList.parallelStream().map(limen::getMarkups).mapToInt(Set::size)
            .max().getAsInt();/*from  w  ww. j a v  a  2s .  c o m*/
    latexBuilder.append("\n    % TextNodes\n");
    if (limen != null) {
        Set<Markup> openMarkups = new LinkedHashSet<>();
        AtomicInteger textNodeCounter = new AtomicInteger(0);
        // Map<TextNode, Integer> textNodeIndices = new HashMap<>();
        limen.getTextNodeIterator().forEachRemaining(tn -> {
            int i = textNodeCounter.getAndIncrement();
            // textNodeIndices.put(tn, i);
            Set<Markup> markups = limen.getMarkups(tn);

            List<Markup> toClose = new ArrayList<>(openMarkups);
            toClose.removeAll(markups);
            Collections.reverse(toClose);

            List<Markup> toOpen = new ArrayList<>(markups);
            toOpen.removeAll(openMarkups);

            openMarkups.removeAll(toClose);
            openMarkups.addAll(toOpen);

            int size = limen.getMarkups(tn).size();
            float gradient = size / (float) maxMarkupsPerTextNode;

            int r = 255 - Math.round(255 * gradient);
            int g = 255;
            int b = 255 - Math.round(255 * gradient);
            Color color = new Color(r, g, b);
            String fillColor = ColorUtil.toLaTeX(color);

            addGradedTextNode(latexBuilder, tn, i, fillColor, size);
        });

    }
}

From source file:org.synchronoss.cloud.nio.multipart.example.web.MultipartController.java

void sendErrorOrSkip(final AtomicInteger synchronizer, final AsyncContext asyncContext, final String message) {
    if (synchronizer.getAndIncrement() <= 1) {
        try {/*w w w  .java  2 s.  co  m*/
            final ServletResponse servletResponse = asyncContext.getResponse();
            if (servletResponse instanceof HttpServletResponse) {
                ((HttpServletResponse) servletResponse).sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
                        message);
            } else {
                asyncContext.getResponse().getWriter().write(message);
            }
            asyncContext.complete();
        } catch (Exception e) {
            log.error("Failed to send back the error response", e);
        }
    }
}

From source file:nl.knaw.huygens.alexandria.exporter.LaTeXExporter.java

private void appendDocument(StringBuilder latexBuilder, TAGDocument document) {
    ColorPicker colorPicker = new ColorPicker("blue", "brown", "cyan", "darkgray", "gray", "green", "lightgray", //
            "lime", "magenta", "olive", "orange", "pink", "purple", "red", "teal", "violet", "black");
    latexBuilder.append("\n    % TextNodes\n");
    if (document != null) {
        Set<TAGMarkup> openMarkups = new LinkedHashSet<>();
        AtomicInteger textNodeCounter = new AtomicInteger(0);
        Map<TAGTextNode, Integer> textNodeIndices = new HashMap<>();
        document.getTextNodeStream().forEach(tn -> {
            int i = textNodeCounter.getAndIncrement();
            textNodeIndices.put(tn, i);//from   w  w  w.  j a va  2s.  c  o  m
            Set<TAGMarkup> markups = document.getMarkupStreamForTextNode(tn)//
                    .collect(Collectors.toSet());

            List<TAGMarkup> toClose = new ArrayList<>(openMarkups);
            toClose.removeAll(markups);
            Collections.reverse(toClose);

            List<TAGMarkup> toOpen = new ArrayList<>(markups);
            toOpen.removeAll(openMarkups);

            openMarkups.removeAll(toClose);
            openMarkups.addAll(toOpen);

            addTextNode(latexBuilder, tn, i);
        });

        connectTextNodes(latexBuilder, textNodeCounter);
        markMarkups(latexBuilder, document, colorPicker, textNodeIndices);
        // drawMarkupsAsSets(latexBuilder, document, colorPicker, textNodeIndices);
    }
}

From source file:org.fcrepo.client.ConnectionManagementTest.java

/**
 * Demonstrates that HTTP connections are released when the FcrepoClient throws an exception.  Each method of the
 * FcrepoClient (get, put, post, etc.) is tested.
 *//*from   w w w.  jav  a 2s  . c  o  m*/
@Test
public void connectionReleasedOnException() {
    // Removing MOVE and COPY operations as the mock server does not handle them
    final int expectedCount = HttpMethods.values().length - 2;
    final AtomicInteger actualCount = new AtomicInteger(0);
    final MockHttpExpectations.Uris uri = uris.uri500;

    Stream.of(HttpMethods.values())
            // MOVE and COPY do not appear to be supported in the mock server
            .filter(method -> HttpMethods.MOVE != method && HttpMethods.COPY != method).forEach(method -> {
                connect(client, uri, method, null);
                actualCount.getAndIncrement();
            });

    assertEquals("Expected to make " + expectedCount + " connections; made " + actualCount.get(), expectedCount,
            actualCount.get());

    verifyConnectionRequestedAndClosed(actualCount.get(), connectionManager);
}

From source file:nl.knaw.huygens.alexandria.exporter.LaTeXExporter.java

private void appendGradedTAGDocument(StringBuilder latexBuilder, TAGDocument document) {
    long maxMarkupsPerTextNode = document.getTextNodeStream().map(document::getMarkupStreamForTextNode)//
            .mapToLong(Stream::count)//
            .max()//
            .getAsLong();/*  w ww  .j a v  a 2  s .c  o  m*/
    latexBuilder.append("\n    % TextNodes\n");
    if (document != null) {
        Set<TAGMarkup> openMarkups = new LinkedHashSet<>();
        AtomicInteger textNodeCounter = new AtomicInteger(0);
        // Map<TextNodeWrapper, Integer> textNodeIndices = new HashMap<>();
        document.getTextNodeStream().forEach(tn -> {
            int i = textNodeCounter.getAndIncrement();
            // textNodeIndices.put(tn, i);
            Set<TAGMarkup> markups = document.getMarkupStreamForTextNode(tn).collect(Collectors.toSet());

            List<TAGMarkup> toClose = new ArrayList<>(openMarkups);
            toClose.removeAll(markups);
            Collections.reverse(toClose);

            List<TAGMarkup> toOpen = new ArrayList<>(markups);
            toOpen.removeAll(openMarkups);

            openMarkups.removeAll(toClose);
            openMarkups.addAll(toOpen);

            long size = document.getMarkupStreamForTextNode(tn).count();
            float gradient = size / (float) maxMarkupsPerTextNode;

            int r = 255 - Math.round(255 * gradient);
            int g = 255;
            int b = 255 - Math.round(255 * gradient);
            Color color = new Color(r, g, b);
            String fillColor = ColorUtil.toLaTeX(color);

            addGradedTextNode(latexBuilder, tn, i, fillColor, size);
        });

    }
}

From source file:org.synchronoss.cloud.nio.multipart.example.web.MultipartController.java

void sendResponseOrSkip(final AtomicInteger synchronizer, final AsyncContext asyncContext,
        final VerificationItems verificationItems) {
    if (synchronizer.getAndIncrement() == 1) {
        try {//w ww  .j  ava2  s  .c  o  m
            final Writer responseWriter = asyncContext.getResponse().getWriter();
            responseWriter.write(GSON.toJson(verificationItems));
            asyncContext.complete();
        } catch (Exception e) {
            log.error("Failed to send back the response", e);
        }
    }
}