Example usage for java.util.concurrent.atomic AtomicBoolean AtomicBoolean

List of usage examples for java.util.concurrent.atomic AtomicBoolean AtomicBoolean

Introduction

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

Prototype

public AtomicBoolean(boolean initialValue) 

Source Link

Document

Creates a new AtomicBoolean with the given initial value.

Usage

From source file:com.alibaba.wasp.client.TestAdmin.java

/**
 * Modify table is async so wait on completion of the table operation in
 * master.//ww  w . j  a v  a2  s.c  o m
 * 
 * @param tableName
 * @param htd
 * @throws java.io.IOException
 */
private void modifyTable(final byte[] tableName, final FTable htd) throws IOException {
    FMasterServices services = TEST_UTIL.getMiniWaspCluster().getMaster();
    ExecutorService executor = services.getExecutorService();
    AtomicBoolean done = new AtomicBoolean(false);
    executor.registerListener(EventType.C_M_MODIFY_TABLE, new DoneListener(done));
    admin.modifyTable(tableName, htd);
    while (!done.get()) {
        synchronized (done) {
            try {
                done.wait(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    executor.unregisterListener(EventType.C_M_MODIFY_TABLE);
}

From source file:com.barchart.http.server.TestHttpServer.java

@Test
public void testShutdown() throws Exception {

    final ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);

    final AtomicBoolean pass = new AtomicBoolean(false);

    executor.schedule(new Runnable() {

        @Override//  w  ww.j ava2s . c o  m
        public void run() {

            try {
                server.shutdown().sync();
            } catch (final InterruptedException e1) {
                e1.printStackTrace();
            }

            try {
                client.execute(new HttpGet("http://localhost:" + port + "/basic"));
            } catch (final HttpHostConnectException hhce) {
                pass.set(true);
            } catch (final Exception e) {
                e.printStackTrace();
            }

        }

    }, 1000, TimeUnit.MILLISECONDS);

    final HttpGet get = new HttpGet("http://localhost:" + port + "/client-disconnect");
    final HttpResponse response = client.execute(get);
    assertEquals(200, response.getStatusLine().getStatusCode());
    // assertTrue(pass.get());

}

From source file:com.adaptris.core.ftp.FtpConsumerTest.java

public void testConsumeWithNonMatchingFilter() throws Exception {
    int count = 1;
    EmbeddedFtpServer helper = new EmbeddedFtpServer();
    MockMessageListener listener = new MockMessageListener();
    FileSystem filesystem = helper.createFilesystem_DirsOnly();
    for (int i = 0; i < count; i++) {
        filesystem.add(/*from w ww .  j  a v a  2  s. c om*/
                new FileEntry(DEFAULT_WORK_DIR_CANONICAL + SLASH + DEFAULT_FILENAME + i + ".txt", PAYLOAD));
    }
    FakeFtpServer server = helper.createAndStart(filesystem);
    StandaloneConsumer sc = null;
    try {
        ConfiguredConsumeDestination ccd = new ConfiguredConsumeDestination(SERVER_ADDRESS, "^*.xml$",
                "testConsumeWithNonMatchingFilter");
        AtomicBoolean pollFired = new AtomicBoolean(false);
        FixedIntervalPoller poller = new FixedIntervalPoller(new TimeInterval(300L, TimeUnit.MILLISECONDS))
                .withPollerCallback(e -> {
                    log.trace("Poll Fired {}", getName());
                    if (e == 0) {
                        pollFired.set(true);
                    }
                });
        FtpConsumer ftpConsumer = createForTests(listener, ccd, poller);
        ftpConsumer.setFileFilterImp(RegexFileFilter.class.getCanonicalName());
        FtpConnection consumeConnection = create(server);
        sc = new StandaloneConsumer(consumeConnection, ftpConsumer);
        start(sc);
        long waitTime = waitForPollCallback(pollFired);
        log.trace("Waited for {}ms for == 0 poll", waitTime);
        helper.assertMessages(listener.getMessages(), 0);
        assertEquals(count, filesystem.listFiles(DEFAULT_WORK_DIR_CANONICAL).size());
    } catch (Exception e) {
        throw e;
    } finally {
        stop(sc);
        server.stop();
    }
}

From source file:io.druid.segment.realtime.plumber.RealtimePlumberSchoolTest.java

private void testPersistHydrantGapsHelper(final Object commitMetadata) throws Exception {
    final AtomicBoolean committed = new AtomicBoolean(false);
    Interval testInterval = new Interval(new DateTime("1970-01-01"), new DateTime("1971-01-01"));

    RealtimePlumber plumber2 = (RealtimePlumber) realtimePlumberSchool.findPlumber(schema2, tuningConfig,
            metrics);//from  w  w  w . j a v a 2s  .  c om
    plumber2.getSinks().put(0L,
            new Sink(testInterval, schema2, tuningConfig, new DateTime("2014-12-01T12:34:56.789").toString()));
    Assert.assertNull(plumber2.startJob());

    final Committer committer = new Committer() {
        @Override
        public Object getMetadata() {
            return commitMetadata;
        }

        @Override
        public void run() {
            committed.set(true);
        }
    };
    plumber2.add(getTestInputRow("1970-01-01"), Suppliers.ofInstance(committer));
    plumber2.add(getTestInputRow("1970-02-01"), Suppliers.ofInstance(committer));
    plumber2.add(getTestInputRow("1970-03-01"), Suppliers.ofInstance(committer));
    plumber2.add(getTestInputRow("1970-04-01"), Suppliers.ofInstance(committer));
    plumber2.add(getTestInputRow("1970-05-01"), Suppliers.ofInstance(committer));

    plumber2.persist(committer);

    while (!committed.get()) {
        Thread.sleep(100);
    }
    plumber2.getSinks().clear();
    plumber2.finishJob();

    File persistDir = plumber2.computePersistDir(schema2, testInterval);

    /* Check that all hydrants were persisted */
    for (int i = 0; i < 5; i++) {
        Assert.assertTrue(new File(persistDir, String.valueOf(i)).exists());
    }

    /* Create some gaps in the persisted hydrants and reload */
    FileUtils.deleteDirectory(new File(persistDir, "1"));
    FileUtils.deleteDirectory(new File(persistDir, "3"));
    RealtimePlumber restoredPlumber = (RealtimePlumber) realtimePlumberSchool.findPlumber(schema2, tuningConfig,
            metrics);
    restoredPlumber.bootstrapSinksFromDisk();

    Map<Long, Sink> sinks = restoredPlumber.getSinks();
    Assert.assertEquals(1, sinks.size());

    List<FireHydrant> hydrants = Lists.newArrayList(sinks.get(new Long(0)));
    DateTime startTime = new DateTime("1970-01-01T00:00:00.000Z");
    Assert.assertEquals(0, hydrants.get(0).getCount());
    Assert.assertEquals(new Interval(startTime, new DateTime("1970-01-01T00:00:00.001Z")),
            hydrants.get(0).getSegment().getDataInterval());
    Assert.assertEquals(2, hydrants.get(1).getCount());
    Assert.assertEquals(new Interval(startTime, new DateTime("1970-03-01T00:00:00.001Z")),
            hydrants.get(1).getSegment().getDataInterval());
    Assert.assertEquals(4, hydrants.get(2).getCount());
    Assert.assertEquals(new Interval(startTime, new DateTime("1970-05-01T00:00:00.001Z")),
            hydrants.get(2).getSegment().getDataInterval());

    /* Delete all the hydrants and reload, no sink should be created */
    FileUtils.deleteDirectory(new File(persistDir, "0"));
    FileUtils.deleteDirectory(new File(persistDir, "2"));
    FileUtils.deleteDirectory(new File(persistDir, "4"));
    RealtimePlumber restoredPlumber2 = (RealtimePlumber) realtimePlumberSchool.findPlumber(schema2,
            tuningConfig, metrics);
    restoredPlumber2.bootstrapSinksFromDisk();

    Assert.assertEquals(0, restoredPlumber2.getSinks().size());
}

From source file:info.archinnov.achilles.it.TestJSONCall.java

@Test
public void should_insert_json_if_not_exists() throws Exception {
    //Given//from  w w w. jav a 2s .c  o  m
    final long id = RandomUtils.nextLong(0L, Long.MAX_VALUE);

    //When
    String json = "{\"id\": " + id + ", \"clust\": 1, \"value\": \"val\", " + "\"liststring\": [\"one\"], "
            + "\"setstring\": [\"two\"], " + "\"mapstring\": {\"3\": \"three\"}" + "}";

    AtomicBoolean success = new AtomicBoolean(false);
    final CountDownLatch latch = new CountDownLatch(1);
    manager.crud().insertJSON(json).ifNotExists().withLwtResultListener(new LWTResultListener() {

        @Override
        public void onSuccess() {
            success.getAndSet(true);
            latch.countDown();
        }

        @Override
        public void onError(LWTResult lwtResult) {
            latch.countDown();
        }
    }).execute();

    //Then
    latch.await();
    assertThat(success.get()).isTrue();
    final Row row = session.execute(
            "SELECT * FROM achilles_embedded.entity_for_json_function_call WHERE id = " + id + "AND clust = 1")
            .one();
    assertThat(row).isNotNull();
    assertThat(row.getString("value")).isEqualTo("val");
    assertThat(row.getList("liststring", String.class)).containsExactly("one");
    assertThat(row.getSet("setstring", String.class)).containsExactly("two");
    assertThat(row.getMap("mapstring", Integer.class, String.class)).hasSize(1).containsEntry(3, "three");
}

From source file:com.dragoniade.deviantart.favorites.FavoritesDownloader.java

public void execute(int offset) {
    int skipped = 0;
    requestCount = 0;//from   w  ww . j a  v  a 2 s  . c  o m
    searcher.setFrame(owner);
    searcher.setUser(userId);
    searcher.startAt(offset);

    progress.setTotalMax(Integer.MAX_VALUE);
    progress.setTotalValue(offset);

    int total = -1;

    YesNoAllDialog matureMoveDialog = new YesNoAllDialog();
    YesNoAllDialog overwriteDialog = new YesNoAllDialog();
    YesNoAllDialog overwriteNewerDialog = new YesNoAllDialog();
    YesNoAllDialog deleteEmptyDialog = new YesNoAllDialog();

    List<Collection> collections;
    if (skipCollection) {
        collections = new ArrayList<Collection>();
        collections.add(null);
    } else {
        collections = searcher.getCollections();
    }

    for (Collection collection : collections) {
        searcher.startAt(offset);
        progress.setTotalValue(offset);

        while (!progress.isCancelled()) {

            progress.setText("Fetching results " + (collection != null ? collection.getName() : "..."));
            List<Deviation> results = searcher.search(progress, collection);
            requestCount++;

            if (results == null) {
                return;
            }
            total = searcher.getTotal();
            progress.setTotalMax(total);

            if (results.size() > 0) {
                for (Deviation da : results) {
                    if (progress.isCancelled()) {
                        return;
                    }
                    boolean downloaded = false;
                    progress.setUnitMax(1);

                    if (da.getDocumentDownloadUrl() != null) {
                        String url = da.getDocumentDownloadUrl();
                        String filename = da.getDocumentFilename();

                        if (filename == null) {
                            AtomicBoolean download = new AtomicBoolean(true);
                            url = getDocumentUrl(da, download);
                            if (url == null) {
                                return;
                            }
                            if (!download.get()) {
                                skipped++;
                                if (!nextDeviation(skipped)) {
                                    return;
                                }
                                continue;
                            }
                        }
                        filename = Deviation.extractFilename(url);
                        STATUS status = downloadFile(da, url, filename, false, matureMoveDialog,
                                overwriteDialog, overwriteNewerDialog, deleteEmptyDialog);

                        if (status == null) {
                            return;
                        }

                        switch (status) {
                        case CANCEL:
                            return;
                        case SKIP:
                            skipped++;
                            if (!nextDeviation(skipped)) {
                                return;
                            }
                            continue;
                        case DOWNLOADED:
                            downloaded = true;
                            break;
                        case NOTFOUND:
                            if (da.getImageDownloadUrl() == null) {
                                String text = "<br/><a style=\"color:red;\" href=\"" + da.getUrl() + "\">" + url
                                        + " was not found" + "</a>";
                                setPaneText(text);
                                progress.incremTotal();
                            }
                        }
                    }

                    if (da.getImageDownloadUrl() != null && !downloaded) {
                        String url = da.getImageDownloadUrl();
                        String filename = da.getImageFilename();

                        STATUS status = downloadFile(da, url, filename, false, matureMoveDialog,
                                overwriteDialog, overwriteNewerDialog, deleteEmptyDialog);

                        if (status == null) {
                            return;
                        }

                        switch (status) {
                        case CANCEL:
                            return;
                        case SKIP:
                            skipped++;
                            if (!nextDeviation(skipped)) {
                                return;
                            }
                            continue;
                        case DOWNLOADED:
                            downloaded = true;
                            break;
                        case NOTFOUND:
                            String text = "<br/><a style=\"color:red;\" href=\"" + da.getUrl() + "\">" + url
                                    + " was not found" + "</a>";
                            setPaneText(text);
                            progress.incremTotal();
                        }
                    }
                    if (!nextDeviation(skipped)) {
                        return;
                    }
                }
            } else {
                break;
            }
        }
    }
}

From source file:com.barchart.netty.server.http.TestHttpServer.java

@Test
public void testShutdown() throws Exception {

    final ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);

    final AtomicBoolean pass = new AtomicBoolean(false);

    final Thread t = new Thread(new Runnable() {

        @Override/*from  www  .  j  a v a2  s.c om*/
        public void run() {

            try {
                Thread.sleep(1000);
                server.shutdown();
            } catch (final InterruptedException e1) {
                e1.printStackTrace();
            }

            try {
                client.execute(new HttpGet("http://localhost:" + port + "/basic"));
            } catch (final HttpHostConnectException hhce) {
                pass.set(true);
            } catch (final Exception e) {
                e.printStackTrace();
            }

        }

    });

    t.start();

    final HttpGet get = new HttpGet("http://localhost:" + port + "/client-disconnect");
    final HttpResponse response = client.execute(get);
    EntityUtils.consume(response.getEntity());
    assertEquals(200, response.getStatusLine().getStatusCode());

    t.join();

    assertTrue(pass.get());

}

From source file:sample.client.Application.java

boolean waitForCacheServerToStart(final String host, final int port, long duration) {
    return waitOnCondition(new Condition() {
        AtomicBoolean connected = new AtomicBoolean(false);

        public boolean evaluate() {
            Socket socket = null;

            try {
                // NOTE: this code is not intended to be an atomic, compound action (a
                // possible race condition);
                // opening another connection (at the expense of using system
                // resources) after connectivity
                // has already been established is not detrimental in this use case
                if (!this.connected.get()) {
                    socket = new Socket(host, port);
                    this.connected.set(true);
                }//from  w w w .j  a  v a2 s. c  o  m
            } catch (IOException ignore) {
            } finally {
                GemFireUtils.close(socket);
            }

            return this.connected.get();
        }
    }, duration);
}

From source file:de.hybris.platform.test.TransactionTest.java

@Test
public void testItemAccessDuringCommit_PLA10839() throws Exception {
    final Title title1 = UserManager.getInstance().createTitle("t1");
    final Title title2 = UserManager.getInstance().createTitle("t2");
    final Title title3 = UserManager.getInstance().createTitle("t3");
    final Title title4 = UserManager.getInstance().createTitle("t4");

    final AtomicBoolean listenerHasBeenCalled = new AtomicBoolean(false);

    final InvalidationListener listener = new InvalidationListener() {
        @Override/*from ww w . j  a v a2  s . c  o m*/
        public void keyInvalidated(final Object[] key, final int invalidationType,
                final InvalidationTarget target, final RemoteInvalidationSource remoteSrc) {
            listenerHasBeenCalled.set(true);
            // access t1 here
            if (StringUtils.isEmpty(title1.getName())) {
                System.err.println("title1 name is empty");
            }
        }
    };
    final InvalidationTopic topic = InvalidationManager.getInstance()
            .getInvalidationTopic(new Object[] { Cache.CACHEKEY_HJMP, Cache.CACHEKEY_ENTITY });
    try {
        topic.addInvalidationListener(listener);

        final Transaction tx = Transaction.current();
        tx.execute(new TransactionBody() {

            @Override
            public Object execute() throws Exception {
                title2.setName("foo");
                title3.setName("foo");
                title4.setName("foo");
                return null;
            }
        });
        assertEquals("foo", title2.getName());
        assertEquals("foo", title3.getName());
        assertEquals("foo", title4.getName());
        assertTrue(listenerHasBeenCalled.get());
    } finally {
        topic.removeInvalidationListener(listener);
    }
}

From source file:com.spotify.helios.testing.TemporaryJob.java

private void awaitUp(final String host) throws TimeoutException {
    final TemporaryJobReports.Step startContainer = reportWriter.step("start container")
            .tag("jobId", job.getId()).tag("host", host).tag("image", job.getImage());
    try {//from  ww w .  j a  v a 2  s .  c  o  m
        final AtomicBoolean messagePrinted = new AtomicBoolean(false);
        final TaskStatus status = Polling.awaitUnchecked(deployTimeoutMillis, MILLISECONDS,
                job.getId() + " was not up within %d %s", new Callable<TaskStatus>() {
                    @Override
                    public TaskStatus call() throws Exception {
                        final JobStatus status = Futures.getUnchecked(client.jobStatus(job.getId()));
                        if (status == null) {
                            log.debug("Job status not available");
                            return null;
                        }
                        final TaskStatus taskStatus = status.getTaskStatuses().get(host);
                        if (taskStatus == null) {
                            log.debug("Task status not available on {}", host);
                            return null;
                        }

                        if (!messagePrinted.get() && !isNullOrEmpty(jobDeployedMessageFormat)
                                && !isNullOrEmpty(taskStatus.getContainerId())) {
                            outputDeployedMessage(host, taskStatus.getContainerId());
                            messagePrinted.set(true);
                        }

                        verifyHealthy(host, taskStatus);

                        final TaskStatus.State state = taskStatus.getState();
                        log.info("Job state of {}: {}", job.getImage(), state);

                        if (state == TaskStatus.State.RUNNING) {
                            return taskStatus;
                        }

                        return null;
                    }
                });

        statuses.put(host, status);

        startContainer.markSuccess();
    } finally {
        startContainer.finish();
    }

    final TemporaryJobReports.Step probe = reportWriter.step("probe").tag("jobId", job.getId()).tag("host",
            host);
    try {
        for (final String port : waitPorts) {
            awaitPort(port, host);
        }

        probe.markSuccess();
    } finally {
        probe.finish();
    }
}