Java 类java.util.concurrent.atomic.AtomicReference 实例源码
项目:incubator-netbeans
文件:ClassPathProviderImpl.java
FilteredClassPathImplementation(
@NonNull final ClassPathImplementation delegate,
@NonNull final AntProjectHelper helper,
@NonNull final PropertyEvaluator eval,
@NonNull final String filteredProp) {
Parameters.notNull("delegate", delegate); //NOI18N
Parameters.notNull("helper", helper); //NOI18N
Parameters.notNull("eval", eval); //NOI18N
Parameters.notNull("filteredProp", filteredProp); //NOI18N
this.delegate = delegate;
this.helper = helper;
this.eval = eval;
this.filteredProp = filteredProp;
this.cache = new AtomicReference<List<PathResourceImplementation>>();
this.listeners = new PropertyChangeSupport(this);
this.delegate.addPropertyChangeListener(WeakListeners.propertyChange(this, this.delegate));
this.eval.addPropertyChangeListener(WeakListeners.propertyChange(this, this.eval));
}
项目:RxJava3-preview
文件:ObservableSingleTest.java
@Test
public void singleElementOperatorDoNotSwallowExceptionWhenDone() {
final Throwable exception = new RuntimeException("some error");
final AtomicReference<Throwable> error = new AtomicReference<Throwable>();
try {
RxJavaCommonPlugins.setErrorHandler(new Consumer<Throwable>() {
@Override public void accept(final Throwable throwable) throws Exception {
error.set(throwable);
}
});
Observable.unsafeCreate(new ObservableSource<Integer>() {
@Override public void subscribe(final Observer<? super Integer> observer) {
observer.onComplete();
observer.onError(exception);
}
}).singleElement().test().assertComplete();
assertSame(exception, error.get().getCause());
} finally {
RxJavaCommonPlugins.reset();
}
}
项目:GitHub
文件:ObservableThrowingTest.java
@Test public void responseThrowingInOnCompleteDeliveredToPlugin() {
server.enqueue(new MockResponse());
final AtomicReference<Throwable> pluginRef = new AtomicReference<>();
RxJavaPlugins.getInstance().registerErrorHandler(new RxJavaErrorHandler() {
@Override public void handleError(Throwable throwable) {
if (!pluginRef.compareAndSet(null, throwable)) {
throw Exceptions.propagate(throwable); // Don't swallow secondary errors!
}
}
});
RecordingSubscriber<Response<String>> observer = subscriberRule.create();
final RuntimeException e = new RuntimeException();
service.response().unsafeSubscribe(new ForwardingSubscriber<Response<String>>(observer) {
@Override public void onCompleted() {
throw e;
}
});
observer.assertAnyValue();
assertThat(pluginRef.get()).isSameAs(e);
}
项目:incubator-netbeans
文件:ProvidedExtensionsProxy.java
@Override
public Object getAttribute(final File file, final String attrName) {
final AtomicReference<Object> value = new AtomicReference();
for (BaseAnnotationProvider provider : annotationProviders) {
final InterceptionListener iListener = (provider != null) ? provider.getInterceptionListener() : null;
if (iListener instanceof ProvidedExtensions) {
runCheckCode(new Runnable() {
public void run() {
value.set(((ProvidedExtensions) iListener).getAttribute(file, attrName));
}
});
}
if (value.get() != null) {
return value.get();
}
}
return null;
}
项目:jdk8u-jdk
文件:Phaser.java
/**
* Creates a new phaser with the given parent and number of
* registered unarrived parties. When the given parent is non-null
* and the given number of parties is greater than zero, this
* child phaser is registered with its parent.
*
* @param parent the parent phaser
* @param parties the number of parties required to advance to the
* next phase
* @throws IllegalArgumentException if parties less than zero
* or greater than the maximum number of parties supported
*/
public Phaser(Phaser parent, int parties) {
if (parties >>> PARTIES_SHIFT != 0)
throw new IllegalArgumentException("Illegal number of parties");
int phase = 0;
this.parent = parent;
if (parent != null) {
final Phaser root = parent.root;
this.root = root;
this.evenQ = root.evenQ;
this.oddQ = root.oddQ;
if (parties != 0)
phase = parent.doRegister(1);
}
else {
this.root = this;
this.evenQ = new AtomicReference<QNode>();
this.oddQ = new AtomicReference<QNode>();
}
this.state = (parties == 0) ? (long)EMPTY :
((long)phase << PHASE_SHIFT) |
((long)parties << PARTIES_SHIFT) |
((long)parties);
}
项目:GitHub
文件:MaybeThrowingTest.java
@Test public void resultThrowingInOnSuccessDeliveredToPlugin() {
server.enqueue(new MockResponse());
final AtomicReference<Throwable> throwableRef = new AtomicReference<>();
RxJavaPlugins.setErrorHandler(new Consumer<Throwable>() {
@Override public void accept(Throwable throwable) throws Exception {
if (!throwableRef.compareAndSet(null, throwable)) {
throw Exceptions.propagate(throwable);
}
}
});
RecordingMaybeObserver<Result<String>> observer = subscriberRule.create();
final RuntimeException e = new RuntimeException();
service.result().subscribe(new ForwardingObserver<Result<String>>(observer) {
@Override public void onSuccess(Result<String> value) {
throw e;
}
});
assertThat(throwableRef.get()).isSameAs(e);
}
项目:NiuBi
文件:HttpRequestTest.java
/**
* Make a GET request with an empty body response
*
* @throws Exception
*/
@Test
public void getUrlEmpty() throws Exception {
final AtomicReference<String> method = new AtomicReference<String>();
handler = new RequestHandler() {
@Override
public void handle(Request request, HttpServletResponse response) {
method.set(request.getMethod());
response.setStatus(HTTP_OK);
}
};
HttpRequest request = get(new URL(url));
assertNotNull(request.getConnection());
int code = request.code();
assertTrue(request.ok());
assertFalse(request.created());
assertFalse(request.noContent());
assertFalse(request.badRequest());
assertFalse(request.serverError());
assertFalse(request.notFound());
assertEquals("GET", method.get());
assertEquals("OK", request.message());
assertEquals(HTTP_OK, code);
assertEquals("", request.body());
}
项目:openjdk-jdk10
文件:Phaser.java
/**
* Creates a new phaser with the given parent and number of
* registered unarrived parties. When the given parent is non-null
* and the given number of parties is greater than zero, this
* child phaser is registered with its parent.
*
* @param parent the parent phaser
* @param parties the number of parties required to advance to the
* next phase
* @throws IllegalArgumentException if parties less than zero
* or greater than the maximum number of parties supported
*/
public Phaser(Phaser parent, int parties) {
if (parties >>> PARTIES_SHIFT != 0)
throw new IllegalArgumentException("Illegal number of parties");
int phase = 0;
this.parent = parent;
if (parent != null) {
final Phaser root = parent.root;
this.root = root;
this.evenQ = root.evenQ;
this.oddQ = root.oddQ;
if (parties != 0)
phase = parent.doRegister(1);
}
else {
this.root = this;
this.evenQ = new AtomicReference<QNode>();
this.oddQ = new AtomicReference<QNode>();
}
this.state = (parties == 0) ? (long)EMPTY :
((long)phase << PHASE_SHIFT) |
((long)parties << PARTIES_SHIFT) |
((long)parties);
}
项目:boohee_v5.6
文件:BlockingObservable.java
public void forEach(final Action1<? super T> onNext) {
final CountDownLatch latch = new CountDownLatch(1);
final AtomicReference<Throwable> exceptionFromOnError = new AtomicReference();
BlockingUtils.awaitForComplete(latch, this.o.subscribe(new Subscriber<T>() {
public void onCompleted() {
latch.countDown();
}
public void onError(Throwable e) {
exceptionFromOnError.set(e);
latch.countDown();
}
public void onNext(T args) {
onNext.call(args);
}
}));
if (exceptionFromOnError.get() == null) {
return;
}
if (exceptionFromOnError.get() instanceof RuntimeException) {
throw ((RuntimeException) exceptionFromOnError.get());
}
throw new RuntimeException((Throwable) exceptionFromOnError.get());
}
项目:n4js
文件:ExternalProject.java
private <T extends IResource> T getResource(String name, Class<T> resourceClass) {
final File fileCandidate = getFullPath().append(name).toFile();
final AtomicReference<T> actualRef = new AtomicReference<>();
if (fileCandidate.exists()) {
acceptUnsafe(resource -> {
if (resource instanceof IExternalResource && resourceClass.isAssignableFrom(resource.getClass())) {
if (fileCandidate.equals(((IExternalResource) resource).getExternalResource())) {
actualRef.set(resourceClass.cast(resource));
return false;
}
}
return true;
});
}
return actualRef.get(); // TODO return with missing instance?
}
项目:GitHub
文件:SingleThrowingTest.java
@Test public void resultThrowingInOnSuccessDeliveredToPlugin() {
server.enqueue(new MockResponse());
final AtomicReference<Throwable> throwableRef = new AtomicReference<>();
RxJavaPlugins.setErrorHandler(new Consumer<Throwable>() {
@Override public void accept(Throwable throwable) throws Exception {
if (!throwableRef.compareAndSet(null, throwable)) {
throw Exceptions.propagate(throwable);
}
}
});
RecordingSingleObserver<Result<String>> observer = subscriberRule.create();
final RuntimeException e = new RuntimeException();
service.result().subscribe(new ForwardingObserver<Result<String>>(observer) {
@Override public void onSuccess(Result<String> value) {
throw e;
}
});
assertThat(throwableRef.get()).isSameAs(e);
}
项目:NiuBi
文件:HttpRequestTest.java
/**
* Verify POST with numeric query parameters
*
* @throws Exception
*/
@Test
public void postWithNumericQueryParams() throws Exception {
Map<Object, Object> inputParams = new HashMap<Object, Object>();
inputParams.put(1, 2);
inputParams.put(3, 4);
final Map<String, String> outputParams = new HashMap<String, String>();
final AtomicReference<String> method = new AtomicReference<String>();
handler = new RequestHandler() {
@Override
public void handle(Request request, HttpServletResponse response) {
method.set(request.getMethod());
outputParams.put("1", request.getParameter("1"));
outputParams.put("3", request.getParameter("3"));
response.setStatus(HTTP_OK);
}
};
HttpRequest request = post(url, inputParams, false);
assertTrue(request.ok());
assertEquals("POST", method.get());
assertEquals("2", outputParams.get("1"));
assertEquals("4", outputParams.get("3"));
}
项目:validator-web
文件:AbstractJackson2HttpMessageReader.java
@Override
protected boolean supports(Class<?> clazz) {
JavaType javaType = getJavaType(clazz);
AtomicReference<Throwable> causeRef = new AtomicReference<Throwable>();
if (this.objectMapper.canDeserialize(javaType, causeRef)) {
return true;
}
Throwable cause = causeRef.get();
if (cause != null) {
String msg = "Failed to evaluate deserialization for type " + javaType;
if (logger.isDebugEnabled()) {
logger.warn(msg, cause);
}
else {
logger.warn(msg + ": " + cause);
}
}
return false;
}
项目:teamcity-hashicorp-vault-plugin
文件:AbstractJackson2HttpMessageConverter.java
@Override
public boolean canRead(Type type, Class<?> contextClass, MediaType mediaType) {
if (!canRead(mediaType)) {
return false;
}
JavaType javaType = getJavaType(type, contextClass);
if (!jackson23Available || !logger.isWarnEnabled()) {
return this.objectMapper.canDeserialize(javaType);
}
AtomicReference<Throwable> causeRef = new AtomicReference<Throwable>();
if (this.objectMapper.canDeserialize(javaType, causeRef)) {
return true;
}
Throwable cause = causeRef.get();
if (cause != null) {
String msg = "Failed to evaluate Jackson deserialization for type " + javaType;
if (logger.isDebugEnabled()) {
logger.warn(msg, cause);
}
else {
logger.warn(msg + ": " + cause);
}
}
return false;
}
项目:GitHub
文件:CacheTest.java
@Test public void networkInterceptorInvokedForConditionalGet() throws Exception {
server.enqueue(new MockResponse()
.addHeader("ETag: v1")
.setBody("A"));
server.enqueue(new MockResponse()
.setResponseCode(HttpURLConnection.HTTP_NOT_MODIFIED));
// Seed the cache.
HttpUrl url = server.url("/");
assertEquals("A", get(url).body().string());
final AtomicReference<String> ifNoneMatch = new AtomicReference<>();
client = client.newBuilder()
.addNetworkInterceptor(new Interceptor() {
@Override public Response intercept(Chain chain) throws IOException {
ifNoneMatch.compareAndSet(null, chain.request().header("If-None-Match"));
return chain.proceed(chain.request());
}
}).build();
// Confirm the value is cached and intercepted.
assertEquals("A", get(url).body().string());
assertEquals("v1", ifNoneMatch.get());
}
项目:RxJava3-preview
文件:FlowableSingleTest.java
@Test
public void singleElementOperatorDoNotSwallowExceptionWhenDone() {
final Throwable exception = new RuntimeException("some error");
final AtomicReference<Throwable> error = new AtomicReference<Throwable>();
try {
RxJavaCommonPlugins.setErrorHandler(new Consumer<Throwable>() {
@Override public void accept(final Throwable throwable) throws Exception {
error.set(throwable);
}
});
singleElement(Flowable.unsafeCreate(new Publisher<Integer>() {
@Override public void subscribe(final Subscriber<? super Integer> observer) {
observer.onComplete();
observer.onError(exception);
}
})).test().assertComplete();
assertSame(exception, error.get().getCause());
} finally {
RxJavaCommonPlugins.reset();
}
}
项目:dataflow
文件:PriorityTaskQueueTest.java
@Test
public void korrelasjonsIdIsPreserved() {
final int parallelTasks = 10;
String korrelatjonsId = "TEST123";
ThreadLocal<String> korrelasjonsId = new ThreadLocal<>();
korrelasjonsId.set(korrelatjonsId);
PriorityTaskQueue pq = new PriorityTaskQueue(parallelTasks, korrelasjonsId::get, korrelasjonsId::set);
AtomicReference<String> capcturedKorrelatjonsId = new AtomicReference<>();
pq.addTask(1, q -> capcturedKorrelatjonsId.set(korrelasjonsId.get()));
ExecutorService executorService = Executors.newCachedThreadPool();
Queue<Exception> exceptions = new LinkedList<>();
assertThat(
pq.executeTasksAndAwaitDone(executorService, exceptions::offer, 1, TimeUnit.SECONDS),
is(true));
assertThat(exceptions.size(), is(0));
assertThat(capcturedKorrelatjonsId.get(), is(korrelatjonsId));
executorService.shutdown();
}
项目:reactive-grpc
文件:ReactiveStreamObserverPublisherTest.java
@Test
public void requestDelegates() {
CallStreamObserver<Object> obs = mock(CallStreamObserver.class);
Subscriber<Object> sub = mock(Subscriber.class);
final AtomicReference<Subscription> subscription = new AtomicReference<Subscription>();
doAnswer(new Answer() {
@Override
public Object answer(InvocationOnMock invocationOnMock) {
subscription.set((Subscription) invocationOnMock.getArguments()[0]);
return null;
}
}).when(sub).onSubscribe(any(Subscription.class));
ReactiveStreamObserverPublisher<Object> pub = new ReactiveStreamObserverPublisher<Object>(obs);
pub.subscribe(sub);
assertThat(subscription.get()).isNotNull();
subscription.get().request(10);
verify(obs).request(10);
}
项目:elasticsearch_my
文件:HeapBufferedAsyncResponseConsumerTests.java
private static void bufferLimitTest(HeapBufferedAsyncResponseConsumer consumer, int bufferLimit) throws Exception {
ProtocolVersion protocolVersion = new ProtocolVersion("HTTP", 1, 1);
StatusLine statusLine = new BasicStatusLine(protocolVersion, 200, "OK");
consumer.onResponseReceived(new BasicHttpResponse(statusLine));
final AtomicReference<Long> contentLength = new AtomicReference<>();
HttpEntity entity = new StringEntity("", ContentType.APPLICATION_JSON) {
@Override
public long getContentLength() {
return contentLength.get();
}
};
contentLength.set(randomLong(bufferLimit));
consumer.onEntityEnclosed(entity, ContentType.APPLICATION_JSON);
contentLength.set(randomLongBetween(bufferLimit + 1, MAX_TEST_BUFFER_SIZE));
try {
consumer.onEntityEnclosed(entity, ContentType.APPLICATION_JSON);
} catch(ContentTooLongException e) {
assertEquals("entity content is too long [" + entity.getContentLength() +
"] for the configured buffer limit [" + bufferLimit + "]", e.getMessage());
}
}
项目:NiuBi
文件:HttpRequestTest.java
/**
* Make a DELETE request with an empty body response
*
* @throws Exception
*/
@Test
public void deleteEmpty() throws Exception {
final AtomicReference<String> method = new AtomicReference<String>();
handler = new RequestHandler() {
@Override
public void handle(Request request, HttpServletResponse response) {
method.set(request.getMethod());
response.setStatus(HTTP_OK);
}
};
HttpRequest request = delete(url);
assertNotNull(request.getConnection());
assertTrue(request.ok());
assertFalse(request.notFound());
assertEquals("DELETE", method.get());
assertEquals("", request.body());
assertEquals("DELETE", request.method());
}
项目:reactive-pg-client
文件:PgPoolTest.java
@Test
public void testReconnectQueued(TestContext ctx) {
Async async = ctx.async();
ProxyServer proxy = ProxyServer.create(vertx, options.getPort(), options.getHost());
AtomicReference<ProxyServer.Connection> proxyConn = new AtomicReference<>();
proxy.proxyHandler(conn -> {
proxyConn.set(conn);
conn.connect();
});
proxy.listen(8080, "localhost", ctx.asyncAssertSuccess(v1 -> {
PgPool pool = createPool(new PgConnectOptions(options).setPort(8080).setHost("localhost"), 1);
pool.getConnection(ctx.asyncAssertSuccess(conn -> {
proxyConn.get().close();
}));
pool.getConnection(ctx.asyncAssertSuccess(conn -> {
conn.query("SELECT id, randomnumber from WORLD", ctx.asyncAssertSuccess(v2 -> {
async.complete();
}));
}));
}));
}
项目:aliyun-log-flink-connector
文件:LogDataFetcher.java
public LogDataFetcher(SourceFunction.SourceContext<T> sourceContext,
RuntimeContext runtimeContext,
Properties configProps,
LogDeserializationSchema<T> deserializationSchema, LogClientProxy logClient) {
this.sourceContext = sourceContext;
this.runtimeContext = runtimeContext;
this.configProps = configProps;
this.deserializationSchema = deserializationSchema;
this.totalNumberOfConsumerSubtasks = runtimeContext.getNumberOfParallelSubtasks();
this.indexOfThisConsumerSubtask = runtimeContext.getIndexOfThisSubtask();
this.checkpointLock = sourceContext.getCheckpointLock();
this.subscribedShardsState = new LinkedList<LogstoreShardState>();
this.shardConsumersExecutor = createShardConsumersThreadPool(runtimeContext.getTaskNameWithSubtasks());
this.error = new AtomicReference<Throwable>();
this.logProject = configProps.getProperty(ConfigConstants.LOG_PROJECT);
this.logStore = configProps.getProperty(ConfigConstants.LOG_LOGSTORE);
this.logClient = logClient;
}
项目:GitHub
文件:SingleThrowingTest.java
@Test public void resultThrowingInOnSuccessDeliveredToPlugin() {
server.enqueue(new MockResponse());
final AtomicReference<Throwable> throwableRef = new AtomicReference<>();
RxJavaPlugins.setErrorHandler(new Consumer<Throwable>() {
@Override public void accept(Throwable throwable) throws Exception {
if (!throwableRef.compareAndSet(null, throwable)) {
throw Exceptions.propagate(throwable);
}
}
});
RecordingSingleObserver<Result<String>> observer = subscriberRule.create();
final RuntimeException e = new RuntimeException();
service.result().subscribe(new ForwardingObserver<Result<String>>(observer) {
@Override public void onSuccess(Result<String> value) {
throw e;
}
});
assertThat(throwableRef.get()).isSameAs(e);
}
项目:RxJava3-preview
文件:ObservableErrorHandlingTests.java
/**
* Test that an error from a user provided Observer.onNext is handled and emitted to the onError
* @throws InterruptedException if the test is interrupted
*/
@Test
public void testOnNextError() throws InterruptedException {
final CountDownLatch latch = new CountDownLatch(1);
final AtomicReference<Throwable> caughtError = new AtomicReference<Throwable>();
Observable<Long> o = Observable.interval(50, TimeUnit.MILLISECONDS);
Observer<Long> observer = new DefaultObserver<Long>() {
@Override
public void onComplete() {
System.out.println("completed");
latch.countDown();
}
@Override
public void onError(Throwable e) {
System.out.println("error: " + e);
caughtError.set(e);
latch.countDown();
}
@Override
public void onNext(Long args) {
throw new RuntimeException("forced failure");
}
};
o.safeSubscribe(observer);
latch.await(2000, TimeUnit.MILLISECONDS);
assertNotNull(caughtError.get());
}
项目:GitHub
文件:GetStringApiTest.java
public void testResponseBodyGet() throws InterruptedException {
server.enqueue(new MockResponse().setBody("data"));
final AtomicReference<String> responseRef = new AtomicReference<>();
final CountDownLatch latch = new CountDownLatch(1);
AndroidNetworking.get(server.url("/").toString())
.setExecutor(Executors.newSingleThreadExecutor())
.build()
.getAsOkHttpResponse(new OkHttpResponseListener() {
@Override
public void onResponse(Response response) {
try {
responseRef.set(response.body().string());
latch.countDown();
} catch (IOException e) {
assertTrue(false);
}
}
@Override
public void onError(ANError anError) {
assertTrue(false);
}
});
assertTrue(latch.await(2, SECONDS));
assertEquals("data", responseRef.get());
}
项目:GitHub
文件:JacksonGetObjectApiTest.java
public void testResponseBodyAndObjectListGet404() throws InterruptedException {
server.enqueue(new MockResponse().setResponseCode(404).setBody("data"));
final AtomicReference<String> errorBodyRef = new AtomicReference<>();
final AtomicReference<Integer> errorCodeRef = new AtomicReference<>();
final AtomicReference<String> errorDetailRef = new AtomicReference<>();
final CountDownLatch latch = new CountDownLatch(1);
AndroidNetworking.get(server.url("/").toString())
.setExecutor(Executors.newSingleThreadExecutor())
.build()
.getAsOkHttpResponseAndObjectList(User.class,
new OkHttpResponseAndParsedRequestListener<List<User>>() {
@Override
public void onResponse(Response okHttpResponse, List<User> userList) {
assertTrue(false);
}
@Override
public void onError(ANError anError) {
errorBodyRef.set(anError.getErrorBody());
errorDetailRef.set(anError.getErrorDetail());
errorCodeRef.set(anError.getErrorCode());
latch.countDown();
}
});
assertTrue(latch.await(2, SECONDS));
assertEquals(ANConstants.RESPONSE_FROM_SERVER_ERROR, errorDetailRef.get());
assertEquals("data", errorBodyRef.get());
assertEquals(404, errorCodeRef.get().intValue());
}
项目:EatDubbo
文件:FailbackRegistryTest.java
@Test
public void testDoRetry_register() throws Exception {
final AtomicReference<Boolean> notified = new AtomicReference<Boolean>(false);
final CountDownLatch latch = new CountDownLatch(1);//全部共调用4次。成功才会减1. subscribe的失败尝试不会在做了
NotifyListener listner = new NotifyListener() {
public void notify(List<URL> urls) {
notified.set(Boolean.TRUE);
}
};
registry = new MockRegistry(registryUrl, latch);
registry.setBad(true);
registry.subscribe(serviceUrl.setProtocol(Constants.CONSUMER_PROTOCOL).addParameters(CollectionUtils.toStringMap("check", "false")), listner);
//失败的情况不能调用到listener.
assertEquals(false, notified.get());
assertEquals(1, latch.getCount());
registry.setBad(false);
for (int i = 0; i < trytimes; i++) {
System.out.println("failback registry retry ,times:" + i);
//System.out.println(latch.getCount());
if (latch.getCount() == 0)
break;
Thread.sleep(sleeptime);
}
// Thread.sleep(100000);
assertEquals(0, latch.getCount());
//unsubscribe时会清除failedsubcribe对应key
assertEquals(true, notified.get());
}
项目:openjdk-jdk10
文件:CompletableFutureTest.java
/**
* minimalCompletionStage returns a CompletableFuture that is
* completed normally, with the same value, when source is.
*/
public void testMinimalCompletionStage() {
CompletableFuture<Integer> f = new CompletableFuture<>();
CompletionStage<Integer> g = f.minimalCompletionStage();
AtomicInteger x = new AtomicInteger(0);
AtomicReference<Throwable> r = new AtomicReference<>();
checkIncomplete(f);
g.whenComplete((v, e) -> {if (e != null) r.set(e); else x.set(v);});
f.complete(1);
checkCompletedNormally(f, 1);
assertEquals(x.get(), 1);
assertNull(r.get());
}
项目:GitHub
文件:PostObjectApiTest.java
public void testResponseBodyAndObjectPost404() throws InterruptedException {
server.enqueue(new MockResponse().setResponseCode(404).setBody("data"));
final AtomicReference<String> errorBodyRef = new AtomicReference<>();
final AtomicReference<Integer> errorCodeRef = new AtomicReference<>();
final AtomicReference<String> errorDetailRef = new AtomicReference<>();
final CountDownLatch latch = new CountDownLatch(1);
AndroidNetworking.post(server.url("/").toString())
.addBodyParameter("fistName", "Amit")
.addBodyParameter("lastName", "Shekhar")
.setExecutor(Executors.newSingleThreadExecutor())
.build()
.getAsOkHttpResponseAndObject(User.class,
new OkHttpResponseAndParsedRequestListener<User>() {
@Override
public void onResponse(Response okHttpResponse, User user) {
assertTrue(false);
}
@Override
public void onError(ANError anError) {
errorBodyRef.set(anError.getErrorBody());
errorDetailRef.set(anError.getErrorDetail());
errorCodeRef.set(anError.getErrorCode());
latch.countDown();
}
});
assertTrue(latch.await(2, SECONDS));
assertEquals(ANConstants.RESPONSE_FROM_SERVER_ERROR, errorDetailRef.get());
assertEquals("data", errorBodyRef.get());
assertEquals(404, errorCodeRef.get().intValue());
}
项目:incubator-netbeans
文件:CompileOnSaveActionQuery.java
ProxyAction(
@NonNull final URL root,
@NonNull final Collection<CompileOnSaveAction> current,
@NonNull final Lookup.Result<CompileOnSaveAction.Provider> eventSource) {
this.root = root;
this.active = new AtomicReference<>(current);
this.listeners = new ChangeSupport(this);
instances.addLookupListener(WeakListeners.create(
LookupListener.class,
this,
instances));
getActions(ALL)
.forEach((a) -> a.addChangeListener(WeakListeners.change(this, a)));
}
项目:concurrency-demo
文件:Controller.java
private Problem getSolution() {
return urls -> {
AtomicReference<byte[]> result = new AtomicReference<>();
ActorSystem system = ActorSystem.create("Search");
for(int i = 0; i < urls.length; i++) {
String url = urls[i];
char c = (char) ('a' + i);
final ActorRef q = system.actorOf(
Actors.UrlFetcher.props(restTemplate, result), "loading_"+ c);
Patterns.ask(q, new Actors.Url2Fetch(url), new Timeout(Duration.create(5, TimeUnit.SECONDS)));
}
while(result.get() == null) {
Misc.sleep(200);
}
return result.get();
};
}
项目:monarch
文件:ConnectionManagerJUnitTest.java
@Test
public void testExclusiveConnectionAccess() throws Throwable {
manager = new ConnectionManagerImpl("pool", factory, endpointManager, 1, 0, -1, -1, logger,
60 * 1000, cancelCriterion, poolStats);
manager.start(background);
AtomicReference exception = new AtomicReference();
AtomicBoolean haveConnection = new AtomicBoolean();
int updaterCount = 10;
UpdaterThread[] updaters = new UpdaterThread[updaterCount];
for (int i = 0; i < updaterCount; i++) {
updaters[i] = new UpdaterThread(haveConnection, exception, i);
}
for (int i = 0; i < updaterCount; i++) {
updaters[i].start();
}
for (int i = 0; i < updaterCount; i++) {
ThreadUtils.join(updaters[i], 30 * 1000);
}
if (exception.get() != null) {
throw (Throwable) exception.get();
}
for (int i = 0; i < updaterCount; i++) {
Assert.assertFalse("Updater [" + i + "] is still running", updaters[i].isAlive());
}
}
项目:incubator-netbeans
文件:ModuleClassPaths.java
ModuleInfoClassPathImplementation(
@NonNull final ClassPath base,
@NonNull final ClassPath sources,
@NonNull final ClassPath systemModules,
@NonNull final ClassPath userModules,
@NonNull final ClassPath legacyClassPath,
@NullAllowed final Function<URL,Boolean> filter) {
super(null);
Parameters.notNull("base", base); //NOI18N
Parameters.notNull("sources", sources); //NOI18N
Parameters.notNull("systemModules", systemModules); //NOI18N
Parameters.notNull("userModules", userModules); //NOI18N
Parameters.notNull("legacyClassPath", legacyClassPath); //NOI18N
this.base = base;
this.sources = sources;
this.systemModules = systemModules;
this.userModules = userModules;
this.legacyClassPath = legacyClassPath;
this.filter = filter == null ?
(url) -> null :
filter;
this.selfRes = new ThreadLocal<>();
this.compilerOptions = new AtomicReference<>();
this.moduleInfos = Collections.emptyList();
this.sources.addPropertyChangeListener(WeakListeners.propertyChange(this, this.sources));
this.systemModules.addPropertyChangeListener(WeakListeners.propertyChange(this, this.systemModules));
this.userModules.addPropertyChangeListener(WeakListeners.propertyChange(this, this.base));
this.legacyClassPath.addPropertyChangeListener(WeakListeners.propertyChange(this, this.legacyClassPath));
}
项目:GitHub
文件:PostObjectApiTest.java
public void testResponseBodyAndObjectListPost404() throws InterruptedException {
server.enqueue(new MockResponse().setResponseCode(404).setBody("data"));
final AtomicReference<String> errorBodyRef = new AtomicReference<>();
final AtomicReference<Integer> errorCodeRef = new AtomicReference<>();
final AtomicReference<String> errorDetailRef = new AtomicReference<>();
final CountDownLatch latch = new CountDownLatch(1);
AndroidNetworking.post(server.url("/").toString())
.addBodyParameter("fistName", "Amit")
.addBodyParameter("lastName", "Shekhar")
.setExecutor(Executors.newSingleThreadExecutor())
.build()
.getAsOkHttpResponseAndObjectList(User.class,
new OkHttpResponseAndParsedRequestListener<List<User>>() {
@Override
public void onResponse(Response okHttpResponse, List<User> userList) {
assertTrue(false);
}
@Override
public void onError(ANError anError) {
errorBodyRef.set(anError.getErrorBody());
errorDetailRef.set(anError.getErrorDetail());
errorCodeRef.set(anError.getErrorCode());
latch.countDown();
}
});
assertTrue(latch.await(2, SECONDS));
assertEquals(ANConstants.RESPONSE_FROM_SERVER_ERROR, errorDetailRef.get());
assertEquals("data", errorBodyRef.get());
assertEquals(404, errorCodeRef.get().intValue());
}
项目:GitHub
文件:JacksonPostObjectApiTest.java
public void testResponseBodyAndObjectPost404() throws InterruptedException {
server.enqueue(new MockResponse().setResponseCode(404).setBody("data"));
final AtomicReference<String> errorBodyRef = new AtomicReference<>();
final AtomicReference<Integer> errorCodeRef = new AtomicReference<>();
final AtomicReference<String> errorDetailRef = new AtomicReference<>();
final CountDownLatch latch = new CountDownLatch(1);
AndroidNetworking.post(server.url("/").toString())
.addBodyParameter("fistName", "Amit")
.addBodyParameter("lastName", "Shekhar")
.setExecutor(Executors.newSingleThreadExecutor())
.build()
.getAsOkHttpResponseAndObject(User.class,
new OkHttpResponseAndParsedRequestListener<User>() {
@Override
public void onResponse(Response okHttpResponse, User user) {
assertTrue(false);
}
@Override
public void onError(ANError anError) {
errorBodyRef.set(anError.getErrorBody());
errorDetailRef.set(anError.getErrorDetail());
errorCodeRef.set(anError.getErrorCode());
latch.countDown();
}
});
assertTrue(latch.await(2, SECONDS));
assertEquals(ANConstants.RESPONSE_FROM_SERVER_ERROR, errorDetailRef.get());
assertEquals("data", errorBodyRef.get());
assertEquals(404, errorCodeRef.get().intValue());
}
项目:GitHub
文件:HandlerSchedulerTest.java
@Test @Ignore("Implementation delegated to default RxJava implementation")
public void directSchedulePeriodicallyUsesHookOnce() {
final CountingRunnable newCounter = new CountingRunnable();
final AtomicReference<Runnable> runnableRef = new AtomicReference<>();
RxJavaPlugins.setScheduleHandler(new Function<Runnable, Runnable>() {
@Override public Runnable apply(Runnable runnable) {
runnableRef.set(runnable);
return newCounter;
}
});
CountingRunnable counter = new CountingRunnable();
scheduler.schedulePeriodicallyDirect(counter, 1, 1, MINUTES);
// Verify our action was passed to the schedulers hook.
assertSame(counter, runnableRef.get());
runnableRef.set(null);
idleMainLooper(1, MINUTES);
runUiThreadTasks();
// Verify the scheduled action was the one returned from the hook.
assertEquals(1, newCounter.get());
assertEquals(0, counter.get());
// Ensure the hook was not called again when the runnable re-scheduled itself.
assertNull(runnableRef.get());
}
项目:GitHub
文件:MultipartStringApiTest.java
public void testResponseBodyAndStringMultipart() throws InterruptedException {
server.enqueue(new MockResponse().setBody("data"));
final AtomicReference<Boolean> responseBodySuccess = new AtomicReference<>();
final AtomicReference<String> responseStringRef = new AtomicReference<>();
final CountDownLatch latch = new CountDownLatch(1);
AndroidNetworking.upload(server.url("/").toString())
.addMultipartParameter("key", "value")
.setExecutor(Executors.newSingleThreadExecutor())
.build()
.getAsOkHttpResponseAndString(new OkHttpResponseAndStringRequestListener() {
@Override
public void onResponse(Response okHttpResponse, String response) {
responseBodySuccess.set(okHttpResponse.isSuccessful());
responseStringRef.set(response);
latch.countDown();
}
@Override
public void onError(ANError anError) {
assertTrue(false);
}
});
assertTrue(latch.await(2, SECONDS));
assertTrue(responseBodySuccess.get());
assertEquals("data", responseStringRef.get());
}
项目:jdk8u-jdk
文件:Phaser.java
/**
* Removes and signals threads from queue for phase.
*/
private void releaseWaiters(int phase) {
QNode q; // first element of queue
Thread t; // its thread
AtomicReference<QNode> head = (phase & 1) == 0 ? evenQ : oddQ;
while ((q = head.get()) != null &&
q.phase != (int)(root.state >>> PHASE_SHIFT)) {
if (head.compareAndSet(q, q.next) &&
(t = q.thread) != null) {
q.thread = null;
LockSupport.unpark(t);
}
}
}
项目:infxnity
文件:IFXContentBindingTest.java
@Test
public void addElementsTest()
{
final ObservableList<Model> collection1 = FXCollections.observableArrayList(new Model("value1"),
new Model("value2"),
new Model("value3"),
new Model("value4"));
final ObservableList<String> collection2 = FXCollections.observableArrayList();
IFXContentBinding.bind(collection2, collection1, Model::getText);
final AtomicReference<ListChangeListener.Change<? extends String>> change = new AtomicReference<>(null);
collection2.addListener((ListChangeListener<String>) c -> {
change.set(c);
});
collection1.addAll(2, Arrays.asList(new Model("value2bis"), new Model("value2ter")));
assertNotNull("Change event", change.get());
assertTrue("Has change", change.get().next());
assertTrue("Was added", change.get().wasAdded());
assertFalse("Was removed", change.get().wasRemoved());
assertFalse("Was update", change.get().wasUpdated());
assertFalse("Was permuted", change.get().wasPermutated());
assertEquals("from", 2, change.get().getFrom());
assertEquals("to", 4, change.get().getTo());
assertEquals("Added sub-list", Arrays.asList("value2bis", "value2ter"), change.get().getAddedSubList());
assertFalse("Has more change", change.get().next());
assertEquals(Arrays.asList("value1", "value2", "value2bis", "value2ter", "value3", "value4"), collection2);
}
项目:incubator-netbeans
文件:RevisionSetupSupportTest.java
public void testDiffModifiedDifferentNames () throws Exception {
// init
File project = new File(wc, "project");
File trunk = new File(project, "trunk");
final File file = new File(trunk, "file");
trunk.mkdirs();
file.createNewFile();
add(project);
commit(project);
RepositoryFile left = new RepositoryFile(repoUrl, wc.getName() + "/project/trunk", SVNRevision.HEAD);
RepositoryFile right = new RepositoryFile(repoUrl, wc.getName() + "/project/branches/B", SVNRevision.HEAD);
getClient().copy(left.getFileUrl(), right.getFileUrl(), "copying...", SVNRevision.HEAD, true);
TestKit.write(file, "modification");
commit(trunk);
final RevisionSetupsSupport revSupp = new RevisionSetupsSupport(left, right, repoUrl, new Context(new File[] { trunk }));
final AtomicReference<Setup[]> ref = new AtomicReference<>();
new SvnProgressSupport() {
@Override
protected void perform () {
ref.set(revSupp.computeSetupsBetweenRevisions(this));
}
}.start(RequestProcessor.getDefault(), repoUrl, "bbb").waitFinished();
Setup[] setups = ref.get();
assertNotNull(setups);
assertEquals(1, setups.length);
assertEquals(file, setups[0].getBaseFile());
assertEquals(FileInformation.STATUS_VERSIONED_MODIFIEDLOCALLY, setups[0].getInfo().getStatus());
}