Java Examples for java.util.concurrent.ThreadLocalRandom
The following java examples will help you to understand the usage of java.util.concurrent.ThreadLocalRandom. These source code samples are taken from different open source projects.
Example 1
Project: intellij-community-master File: SharedThreadLocalRandomInspectionBase.java View source code |
@Override
public void visitMethodCallExpression(PsiMethodCallExpression expression) {
super.visitMethodCallExpression(expression);
final PsiReferenceExpression methodExpression = expression.getMethodExpression();
@NonNls final String name = methodExpression.getReferenceName();
if (!"current".equals(name)) {
return;
}
final PsiMethod method = expression.resolveMethod();
if (method == null) {
return;
}
final PsiClass aClass = method.getContainingClass();
if (!InheritanceUtil.isInheritor(aClass, "java.util.concurrent.ThreadLocalRandom")) {
return;
}
if (isArgumentToMethodCall(expression)) {
registerMethodCallError(expression);
} else {
final PsiVariable variable = assignedToVariable(expression);
if (variable instanceof PsiField) {
registerMethodCallError(expression);
} else if (variable instanceof PsiLocalVariable) {
final PsiCodeBlock context = PsiTreeUtil.getParentOfType(variable, PsiCodeBlock.class);
final boolean passed = VariableAccessUtils.variableIsPassedAsMethodArgument(variable, context, myMethodMatcher::matches);
if (passed || VariableAccessUtils.variableIsUsedInInnerClass(variable, context)) {
registerMethodCallError(expression);
}
}
}
}
Example 2
Project: SkypeBot-master File: Swear.java View source code |
@Command(name = "swear")
public static void cmdSwear(ReceivedMessage chat) throws Exception {
SwearType[] combination = combinations[ThreadLocalRandom.current().nextInt(combinations.length)];
String output = "";
for (SwearType s : combination) {
if (!output.equals("")) {
output += " ";
}
output += s.getRandomWord();
}
Resource.sendMessage(chat, output.toUpperCase());
}
Example 3
Project: cattle-master File: StorageDriverDaoImpl.java View source code |
@Override
public Volume createSecretsVolume(Instance instance, StorageDriver storageDriver, String token) {
Map<String, Object> dataVolumesMounts = DataAccessor.fieldMap(instance, InstanceConstants.FIELD_DATA_VOLUME_MOUNTS);
Object volumeId = dataVolumesMounts.get(VolumeConstants.SECRETS_PATH);
if (volumeId != null) {
return objectManager.loadResource(Volume.class, volumeId.toString());
}
byte[] bytes = new byte[32];
ThreadLocalRandom.current().nextBytes(bytes);
String name = Hex.encodeHexString(bytes);
Map<String, Object> tokenMap = CollectionUtils.asMap("value", token);
Volume volume;
try {
volume = resourceDao.create(Volume.class, VOLUME.NAME, name, VOLUME.ACCOUNT_ID, instance.getAccountId(), VOLUME.STORAGE_DRIVER_ID, storageDriver.getId(), VolumeConstants.FIELD_VOLUME_DRIVER, storageDriver.getName(), VolumeConstants.FIELD_VOLUME_DRIVER_OPTS, CollectionUtils.asMap(VolumeConstants.SECRETS_OPT_KEY, jsonMapper.writeValueAsString(tokenMap)));
} catch (IOException e) {
throw new IllegalStateException(e);
}
dataVolumesMounts.put(VolumeConstants.SECRETS_PATH, volume.getId());
objectManager.setFields(instance, InstanceConstants.FIELD_DATA_VOLUME_MOUNTS, dataVolumesMounts);
return volume;
}
Example 4
Project: keycloak-master File: KeyUtilsTest.java View source code |
@Test
public void loadSecretKey() throws Exception {
byte[] secretBytes = new byte[32];
ThreadLocalRandom.current().nextBytes(secretBytes);
SecretKeySpec expected = new SecretKeySpec(secretBytes, "HmacSHA256");
SecretKey actual = KeyUtils.loadSecretKey(secretBytes);
assertEquals(expected.getAlgorithm(), actual.getAlgorithm());
assertArrayEquals(expected.getEncoded(), actual.getEncoded());
}
Example 5
Project: Assignments-master File: Simulation.java View source code |
private long generateHour() { int hour = ThreadLocalRandom.current().nextInt(simulationInput.getHoursFieldMin(), simulationInput.getHoursFieldMax() + 1); int minute = ThreadLocalRandom.current().nextInt(0, 61); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); Date d = null; try { d = sdf.parse("15/04/2016 " + hour + ":" + minute + ":00"); } catch (ParseException e) { e.printStackTrace(); } return d.getTime(); }
Example 6
Project: metastone-master File: CardCollection.java View source code |
public Card getRandomOfType(CardType cardType) {
List<Card> relevantCards = new ArrayList<>();
for (Card card : cards) {
if (card.getCardType().isCardType(cardType)) {
relevantCards.add(card);
}
}
if (relevantCards.isEmpty()) {
return null;
}
return relevantCards.get(ThreadLocalRandom.current().nextInt(relevantCards.size()));
}
Example 7
Project: scalecube-master File: NetworkLinkSettings.java View source code |
/** Delays are emulated using exponential distribution of probabilities. */
public long evaluateDelay() {
if (meanDelay > 0) {
// Network delays (network delays). Delays should be emulated using exponential distribution of probabilities.
// log(1-x)/(1/mean)
Double x0 = ThreadLocalRandom.current().nextDouble();
Double y0 = -Math.log(1 - x0) * meanDelay;
return y0.longValue();
}
return 0;
}
Example 8
Project: jstorm-master File: RandomNumberGeneratorSpout.java View source code |
@Override
public void emitBatch(long batchId, TridentCollector collector) {
List<List<Object>> values = null;
if (batches.containsKey(batchId)) {
values = batches.get(batchId);
} else {
values = new ArrayList<>();
for (int i = 0; i < batchSize; i++) {
List<Object> numbers = new ArrayList<>();
for (int x = 0; x < fields.size(); x++) {
numbers.add(ThreadLocalRandom.current().nextInt(0, maxNumber + 1));
}
values.add(numbers);
}
batches.put(batchId, values);
}
for (List<Object> value : values) {
collector.emit(value);
}
}
Example 9
Project: mssql-jdbc-master File: SqlDecimal.java View source code |
public Object createdata() { double lowerBound = 0; double upperBound = 1; /** * value to add for Math.random() to include upperBound - to choose random value between 0 to 1 (inclusive of both) */ double incrementValue = 0.1d; Boolean inValidData = true; BigDecimal randomValue = null; while (inValidData) { randomValue = new BigDecimal(ThreadLocalRandom.current().nextDouble(lowerBound, upperBound + incrementValue)); Boolean isNegative = (0 == ThreadLocalRandom.current().nextInt(2)) ? true : false; // i.e., if the precision is say 5, then get unscaledRandom%10^5 if (randomValue.compareTo(new BigDecimal("1")) >= 0) { randomValue = randomValue.movePointRight(precision - scale - 1); } else { randomValue = randomValue.movePointRight(precision - scale); } randomValue = randomValue.setScale(scale, RoundingMode.FLOOR); randomValue = (isNegative) ? randomValue.multiply(new BigDecimal("-1")) : randomValue; // must be 0 or -ve int exceedsMax = randomValue.compareTo((BigDecimal) maxvalue); // must be 0 or +ve int exceedsMin = randomValue.compareTo((BigDecimal) minvalue); // than max bigdecimal if (!((exceedsMin < 0) || (exceedsMax > 0))) { inValidData = false; } } return randomValue; }
Example 10
Project: ostrich-master File: ExponentialBackoffHealthCheckRetryDelay.java View source code |
@Override
public long getDelay(int numAttempts, HealthCheckResult result) {
checkArgument(numAttempts >= 1);
checkNotNull(result);
// Pick a random number between baseDelay*2^(n-1) and baseDelay*2^n (inclusive), subject
// to the upper bound.
long rangeMax = Math.min(_baseDelay * (1 << numAttempts), _maxDelayMillis);
long rangeMin = rangeMax / 2;
return rangeMin + ThreadLocalRandom.current().nextLong(rangeMax - rangeMin + 1);
}
Example 11
Project: parfait-master File: ProductBuilder.java View source code |
private void build() {
// emulate the work of building this product, by sleeping
Integer elapsed = ThreadLocalRandom.current().nextInt(0, this.bound);
try {
sleep(elapsed);
// increase counters for this product, another completed!
totalTime.inc(elapsed);
completed.inc();
} catch (InterruptedException e) {
failures.inc();
}
}
Example 12
Project: z-stack-master File: ThroughputStressTestForGenericHL.java View source code |
private void runHyperLoopStress(String label) { System.out.println("=====in Round " + label); int numRunnings0 = numOfRunningThreads(); CountDownLatch endLatch = new CountDownLatch(1); String[] values = new String[RUNS]; ThreadLocalRandom rnd = ThreadLocalRandom.current(); for (int i = 0; i < RUNS; i++) { values[i] = String.valueOf(rnd.nextLong()); } System.out.println("start stress..."); Thread t = new Thread(() -> { Affinity.bindTo(Topology.socket(0).physicalCore(3).virtualCore(0)); String v; for (int i = 0; i < RUNS; i++) { while (out.notReceivable()) { } v = out.tryReceive(); // if (!v.equals(values[i])) { // //DEBUG // for (int j = 0; j < values.length; j++) { // if (v.equals(j)) // System.out.println("i:"+i+",j:"+j); // } // System.out.println("======#####====="); // } assertThat("happend when i=" + i, v, is(values[i])); } endLatch.countDown(); }); t.setDaemon(true); t.start(); try { long s = System.nanoTime(); //XXX: producer is in main thread for (int i = 0; i < RUNS; i++) { while (!loop.trySend(values[i])) { } } endLatch.await(); long time = System.nanoTime() - s; System.out.printf("done with costed time: %,d\n", time); assertThat(numOfRunningThreads(), is(numRunnings0)); } catch (Exception e) { e.printStackTrace(); } }
Example 13
Project: find-sec-bugs-master File: PredictableRandomDetector.java View source code |
@Override public void sawOpcode(int seen) { if (seen == Constants.INVOKESPECIAL && getClassConstantOperand().equals("java/util/Random") && getNameConstantOperand().equals("<init>")) { bugReporter.reportBug(// new BugInstance(this, PREDICTABLE_RANDOM_TYPE, Priorities.NORMAL_PRIORITY).addClass(this).addMethod(this).addSourceLine(// this).addString("java.util.Random")); } else if (seen == Constants.INVOKESTATIC && getClassConstantOperand().equals("java/lang/Math") && getNameConstantOperand().equals("random")) { bugReporter.reportBug(// new BugInstance(this, PREDICTABLE_RANDOM_TYPE, Priorities.NORMAL_PRIORITY).addClass(this).addMethod(this).addSourceLine(// this).addString("java.lang.Math.random()")); } else if (seen == Constants.INVOKESTATIC && getClassConstantOperand().equals("java/util/concurrent/ThreadLocalRandom") && getNameConstantOperand().equals("current")) { bugReporter.reportBug(// new BugInstance(this, PREDICTABLE_RANDOM_TYPE, Priorities.NORMAL_PRIORITY).addClass(this).addMethod(this).addSourceLine(// this).addString("java.util.concurrent.ThreadLocalRandom")); } else if (seen == Constants.INVOKESPECIAL && getClassConstantOperand().equals("scala/util/Random") && getNameConstantOperand().equals("<init>")) { bugReporter.reportBug(// new BugInstance(this, PREDICTABLE_RANDOM_SCALA_TYPE, Priorities.NORMAL_PRIORITY).addClass(this).addMethod(this).addSourceLine(// this).addString("scala.util.Random")); } else if (seen == Constants.INVOKEVIRTUAL && RANDOM_NEXT_METHODS.matches(this)) { bugReporter.reportBug(// new BugInstance(this, PREDICTABLE_RANDOM_SCALA_TYPE, Priorities.NORMAL_PRIORITY).addClass(this).addMethod(this).addSourceLine(// this).addString("scala.util.Random." + getNameConstantOperand() + "()")); } }
Example 14
Project: beam-master File: GenerateShardedTable.java View source code |
@ProcessElement public void processElement(ProcessContext context, BoundedWindow window) throws IOException { ThreadLocalRandom randomGenerator = ThreadLocalRandom.current(); // We output on keys 0-numShards. String tableSpec = context.element().getKey().getTableSpec(); context.output(KV.of(ShardedKey.of(tableSpec, randomGenerator.nextInt(0, numShards)), context.element().getValue())); }
Example 15
Project: blynk-server-master File: ActiveHardwareClient.java View source code |
public void start(String token) { super.start(); send("login " + token); nioEventLoopGroup.scheduleAtFixedRate(() -> { send(makeCommand("vw 4 " + ThreadLocalRandom.current().nextInt(100))); send(makeCommand("dw 3 " + ThreadLocalRandom.current().nextInt(255))); send(makeCommand("dw 0 " + buttonVal)); send(makeCommand("vw 5 " + (buttonVal == 1 ? 255 : 0))); send(makeCommand("vw 6 " + ledVal)); send(makeCommand("aw 6 " + ledVal)); send(makeCommand("vw 10 p 0 0 ledVal:" + ledVal)); if (buttonVal == 1) { buttonVal = 0; } else { buttonVal = 1; } if (ledVal > 255) { ledVal = 0; send(makeCommand("vw 10 clr")); } else { ledVal += 20; } }, 1, 1, TimeUnit.SECONDS); }
Example 16
Project: camel-master File: RandomServiceChooser.java View source code |
@Override
public ServiceDefinition choose(List<ServiceDefinition> definitions) {
// Fail if the service definition list is null or empty
if (ObjectHelper.isEmpty(definitions)) {
throw new IllegalArgumentException("The ServiceDefinition list should not be empty");
}
int size = definitions.size();
if (size == 1) {
return definitions.get(0);
} else {
return definitions.get(ThreadLocalRandom.current().nextInt(size));
}
}
Example 17
Project: Glowstone-master File: BlockOre.java View source code |
public Collection<ItemStack> getDrops(GlowBlock block, ItemStack tool) { ThreadLocalRandom random = ThreadLocalRandom.current(); int count = minCount; if (maxCount > minCount) { count += random.nextInt(maxCount - minCount); } ItemStack stack = new ItemStack(dropType, count, (short) data); if (tool == null) { return Collections.unmodifiableList(Arrays.asList(stack)); } Collection<ItemStack> drops = super.getDrops(block, tool); if (drops.size() == 0) { return drops; } if (tool.containsEnchantment(Enchantment.LOOT_BONUS_BLOCKS)) { stack.setAmount(count * getMultiplicator(random, tool.getEnchantmentLevel(Enchantment.LOOT_BONUS_BLOCKS))); } return Collections.unmodifiableList(Arrays.asList(stack)); }
Example 18
Project: idnadrev-master File: SampleApp.java View source code |
private void getNextEntries(LocalDate begin, LocalDate end, Consumer<List<WeekViewAppointment<Object>>> consumer) { ThreadLocalRandom random = ThreadLocalRandom.current(); LinkedList<WeekViewAppointment<Object>> retval = new LinkedList<>(); LocalDate firstDayOfWeek = begin; for (int i = 0; i < 7; i++) { LocalDate current = firstDayOfWeek.plusDays(i); LocalTime time = LocalTime.of(random.nextInt(6, 18), random.nextInt(3) * 15); int minutes = Math.max(15, random.nextInt(12) * 15); Duration duration = Duration.ofMinutes(minutes); LocalDateTime localDateTime = LocalDateTime.of(current, time); BiPredicate<LocalDate, LocalTime> newTimePossiblePredicate = ( newDate, newTime) -> { if (newTime == null) { return true; } if (newTime.getHour() > 6 && newTime.getHour() < 22) { return true; } else { log.info("Wrong time {}", newTime); return false; } }; WeekViewAppointment<Object> timedAppointment = new WeekViewAppointment<>("test entry" + i + " " + minutes + "m", localDateTime, duration); timedAppointment.setChangeStartCallback(( newDate, newTime) -> { log.info("{} now starts on {} {}", timedAppointment.getTitle(), newDate, newTime); }); timedAppointment.setNewTimePossiblePredicate(newTimePossiblePredicate); retval.add(timedAppointment); for (int j = 0; j < random.nextInt(1, 4); j++) { WeekViewAppointment<Object> dayAppointment = new WeekViewAppointment<>(j + " test day spanning entry" + i + " " + minutes + "m", localDateTime.toLocalDate(), duration); dayAppointment.setChangeStartCallback(( newDate, newTime) -> { log.info("{} now starts on {} {}", dayAppointment.getTitle(), newDate, newTime); }); dayAppointment.setNewTimePossiblePredicate(newTimePossiblePredicate); retval.add(dayAppointment); } } consumer.accept(retval); }
Example 19
Project: ignite-master File: IgniteSqlQueryJoinBenchmark.java View source code |
/** {@inheritDoc} */
@Override
public boolean test(Map<Object, Object> ctx) throws Exception {
double salary = ThreadLocalRandom.current().nextDouble() * args.range() * 1000;
double maxSalary = salary + 1000;
Collection<List<?>> lists = executeQueryJoin(salary, maxSalary);
for (List<?> l : lists) {
double sal = (Double) l.get(4);
if (sal < salary || sal > maxSalary) {
Person p = new Person();
p.setId((Integer) l.get(0));
p.setOrganizationId((Integer) l.get(1));
p.setFirstName((String) l.get(2));
p.setLastName((String) l.get(3));
p.setSalary(sal);
throw new Exception("Invalid person retrieved [min=" + salary + ", max=" + maxSalary + ", person=" + p + ']');
}
}
return true;
}
Example 20
Project: Java_MVVM_with_Swing_and_RxJava_Examples-master File: Example_8_Model.java View source code |
public Observable<LogRow> getLogs() {
SerializedSubject<LogRow, LogRow> subject = new SerializedSubject<>(PublishSubject.create());
ThreadFactory threadFactory = new ThreadFactoryBuilder().setDaemon(true).setNameFormat(Example_8_Model.class.getSimpleName() + "-thread-%d").build();
final ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors(), threadFactory);
IntStream.range(1, Runtime.getRuntime().availableProcessors() + 1).forEach( value -> {
executorService.submit(() -> {
SysOutUtils.sysout(Thread.currentThread().getName() + " will briefly start creating lots of log rows...");
VariousUtils.sleep(1000);
long incrementingNumber = 1;
while (true) {
subject.onNext(new LogRow(DateTimeFormatter.ISO_DATE_TIME.format(LocalDateTime.now()), "Status " + Integer.toString(ThreadLocalRandom.current().nextInt(1, 5)), "Action " + incrementingNumber + " from " + Thread.currentThread().getName()));
}
});
});
return subject;
}
Example 21
Project: jst-master File: RandomNumberGeneratorSpout.java View source code |
@Override
public void emitBatch(long batchId, TridentCollector collector) {
List<List<Object>> values = null;
if (batches.containsKey(batchId)) {
values = batches.get(batchId);
} else {
values = new ArrayList<>();
for (int i = 0; i < batchSize; i++) {
List<Object> numbers = new ArrayList<>();
for (int x = 0; x < fields.size(); x++) {
numbers.add(ThreadLocalRandom.current().nextInt(0, maxNumber + 1));
}
values.add(numbers);
}
batches.put(batchId, values);
}
for (List<Object> value : values) {
collector.emit(value);
}
}
Example 22
Project: MaritimeCloud-master File: OldContinuesReconnectTest.java View source code |
public void run() {
int latestId = 0;
Integer ackIt = null;
while (received.size() < NUMBER_OF_MESSAGES) {
Message tm = t.take(Message.class);
if (tm instanceof Broadcast) {
Broadcast bs = (Broadcast) tm;
try {
BroadcastTestMessage hw = (BroadcastTestMessage) MmsMessage.tryRead(bs);
int id = hw.getId();
assertEquals(latestId++, id);
received.add(id);
} catch (Exception e) {
e.printStackTrace();
}
ackIt = null;
} else {
if (ackIt == null) {
ackIt = ThreadLocalRandom.current().nextInt(ack.get(), latestId + 1);
}
ack.set(ackIt);
latestId = ackIt;
t.send(new Connected().setSessionId(BIN1).setLastReceivedMessageId((long) ackIt));
}
}
}
Example 23
Project: mldht-master File: DHTLifeCycleTest.java View source code |
/**
* Test that startup doesn't throw exceptions
*
* things not covered:
* - routing table loading
* - delayed tasks
* - bootstrap name resolution
* - bootstrap ping attempts
*/
@Test
public void testStartup() throws Exception {
int port = ThreadLocalRandom.current().nextInt(1024, 65535);
CompletableFuture<Boolean> exceptionCanary = new CompletableFuture<>();
ScheduledThreadPoolExecutor scheduler = new ScheduledThreadPoolExecutor(1, new ThreadFactory() {
@Override
public Thread newThread(Runnable r) {
Thread t = new Thread(r);
t.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread t, Throwable e) {
exceptionCanary.completeExceptionally(e);
}
});
return t;
}
});
DHT dhtInstance = new DHT(DHTtype.IPV4_DHT);
// TODO: refactor to per-instance logger
DHT.setLogger(new DHTLogger() {
@Override
public void log(Throwable t, LogLevel l) {
// allow bootstrap node resolution to fail in test environment
if (t instanceof UnknownHostException)
return;
exceptionCanary.completeExceptionally(t);
}
@Override
public void log(String message, LogLevel l) {
}
});
dhtInstance.setScheduler(scheduler);
Path storagePath = Paths.get(".", "does", "not", "exist");
dhtInstance.start(new DHTConfiguration() {
@Override
public boolean noRouterBootstrap() {
return true;
}
@Override
public boolean isPersistingID() {
return false;
}
@Override
public Path getStoragePath() {
return storagePath;
}
@Override
public int getListeningPort() {
return port;
}
@Override
public boolean allowMultiHoming() {
return false;
}
});
assertEquals(DHTStatus.Initializing, dhtInstance.getStatus());
// bootstrap is called synchronously during startup and should fall straight through, thus reset the state
assertEquals(DHT.BootstrapState.NONE, dhtInstance.bootstrapping.get());
assertEquals(1, dhtInstance.getServerManager().getServerCount());
CompletableFuture<Boolean> wasEmpty = new CompletableFuture<>();
// single-threaded executor -> we can let startup tasks complete and then stop the DHT from the pool itself
// thus there should be no pending tasks on the executor
scheduler.execute(() -> {
dhtInstance.stop();
scheduler.purge();
wasEmpty.complete(scheduler.getQueue().isEmpty());
});
assertTrue("no tasks should remain queued after stop()", wasEmpty.get());
assertEquals(DHTStatus.Stopped, dhtInstance.getStatus());
assertEquals("no messages should have been sent on a bootstrapless startup", 0, dhtInstance.getStats().getNumSentPackets());
scheduler.shutdown();
assertTrue("all tasks terminated", scheduler.awaitTermination(10, TimeUnit.MILLISECONDS));
exceptionCanary.complete(true);
// check for async exceptions
exceptionCanary.get();
assertFalse("should not create storage path, that's the caller's duty", Files.isDirectory(storagePath));
}
Example 24
Project: motan-master File: ActiveWeightLoadBalance.java View source code |
@Override
protected Referer<T> doSelect(Request request) {
List<Referer<T>> referers = getReferers();
int refererSize = referers.size();
int startIndex = ThreadLocalRandom.current().nextInt(refererSize);
int currentCursor = 0;
int currentAvailableCursor = 0;
Referer<T> referer = null;
while (currentAvailableCursor < MAX_REFERER_COUNT && currentCursor < refererSize) {
Referer<T> temp = referers.get((startIndex + currentCursor) % refererSize);
currentCursor++;
if (!temp.isAvailable()) {
continue;
}
currentAvailableCursor++;
if (referer == null) {
referer = temp;
} else {
if (compare(referer, temp) > 0) {
referer = temp;
}
}
}
return referer;
}
Example 25
Project: netflix-commons-master File: ConcurrentUUIDFactory.java View source code |
@Override
public UUID generateRandomUuid() {
final Random rnd = ThreadLocalRandom.current();
long mostSig = rnd.nextLong();
long leastSig = rnd.nextLong();
// Identify this as a version 4 UUID, that is one based on a random value.
mostSig &= 0xffffffffffff0fffL;
mostSig |= 0x0000000000004000L;
// Set the variant identifier as specified for version 4 UUID values. The two
// high order bits of the lower word are required to be one and zero, respectively.
leastSig &= 0x3fffffffffffffffL;
leastSig |= 0x8000000000000000L;
return new UUID(mostSig, leastSig);
}
Example 26
Project: pinot-master File: ExponentialBackoffRetryPolicy.java View source code |
@Override public boolean attempt(Callable<Boolean> operation) { try { ThreadLocalRandom random = ThreadLocalRandom.current(); int remainingAttempts = _maximumAttemptCount - 1; long minimumSleepTime = _minimumMilliseconds; long maximumSleepTime = (long) (minimumSleepTime * _retryScaleFactor); boolean result = operation.call(); while ((!result) && (0 < remainingAttempts)) { long sleepTime = random.nextLong(minimumSleepTime, maximumSleepTime); Uninterruptibles.sleepUninterruptibly(sleepTime, TimeUnit.MILLISECONDS); result = operation.call(); remainingAttempts--; minimumSleepTime *= _retryScaleFactor; maximumSleepTime *= _retryScaleFactor; } return result; } catch (Exception e) { Utils.rethrowException(e); return false; } }
Example 27
Project: Polyphemus-master File: GameMapBuilder.java View source code |
private GameMapBuilder createRiver(Tile tile, int size) {
int randomNum = ThreadLocalRandom.current().nextInt(0, height - size);
for (int z = 0; z < depth; z++) {
for (int x = 0; x < width; x++) {
for (int y = 0; y < size; y++) {
tiles.put(new Point(x, (y + randomNum), z), tile);
}
}
}
return this;
}
Example 28
Project: presto-master File: TestShowPartitions.java View source code |
private static TableDefinition generateTableDefinition() { StringBuilder createTableDdl = new StringBuilder(); createTableDdl.append("CREATE EXTERNAL TABLE %NAME%("); createTableDdl.append(" col INT"); createTableDdl.append(") "); createTableDdl.append("PARTITIONED BY (part_col INT) "); createTableDdl.append(" STORED AS ORC"); HiveDataSource dataSource = createResourceDataSource(TABLE_NAME, String.valueOf(ThreadLocalRandom.current().nextLong(Long.MAX_VALUE)), "com/facebook/presto/tests/hive/data/single_int_column/data.orc"); HiveDataSource invalidData = createStringDataSource(TABLE_NAME, String.valueOf(ThreadLocalRandom.current().nextLong(Long.MAX_VALUE)), "INVALID DATA"); return HiveTableDefinition.builder(TABLE_NAME).setCreateTableDDLTemplate(createTableDdl.toString()).addPartition("part_col = 1", invalidData).addPartition("part_col = 2", dataSource).build(); }
Example 29
Project: red5-websocket-master File: IdGenerator.java View source code |
/**
* Returns a cryptographically generated id.
*
* @return id
*/
public static final long generateId() {
long id = 0;
// add new seed material from current time
random.addSeedMaterial(ThreadLocalRandom.current().nextLong());
// get a new id
byte[] bytes = new byte[16];
// get random bytes
random.nextBytes(bytes);
for (int i = 0; i < bytes.length; i++) {
id += ((long) bytes[i] & 0xffL) << (8 * i);
}
//System.out.println("Id: " + id);
return id;
}
Example 30
Project: scylla-tools-java-master File: MemoryTest.java View source code |
@Test
public void testByteBuffers() {
byte[] bytes = new byte[1000];
ThreadLocalRandom.current().nextBytes(bytes);
final Memory memory = Memory.allocate(bytes.length);
memory.setBytes(0, bytes, 0, bytes.length);
ByteBuffer canon = ByteBuffer.wrap(bytes).order(ByteOrder.nativeOrder());
test(canon, memory);
memory.setBytes(0, new byte[1000], 0, 1000);
memory.setBytes(0, canon.duplicate());
test(canon, memory);
memory.close();
}
Example 31
Project: airlift-master File: TestHyperLogLog.java View source code |
@Test
public void testEstimates() throws Exception {
int trials = 1000;
for (int indexBits = 4; indexBits <= 13; indexBits++) {
Map<Integer, Stats> errors = new HashMap<>();
int numberOfBuckets = 1 << indexBits;
int maxCardinality = numberOfBuckets * 2;
for (int trial = 0; trial < trials; trial++) {
HyperLogLog hll = HyperLogLog.newInstance(numberOfBuckets);
for (int cardinality = 1; cardinality <= maxCardinality; cardinality++) {
hll.add(ThreadLocalRandom.current().nextLong());
if (cardinality % (numberOfBuckets / 10) == 0) {
// only do this a few times, since computing the cardinality is currently not
// as cheap as it should be
double error = (hll.cardinality() - cardinality) * 1.0 / cardinality;
Stats stats = errors.get(cardinality);
if (stats == null) {
stats = new Stats();
errors.put(cardinality, stats);
}
stats.add(error);
}
}
}
double expectedStandardError = 1.04 / Math.sqrt(1 << indexBits);
for (Map.Entry<Integer, Stats> entry : errors.entrySet()) {
// Give an extra error margin. This is mostly a sanity check to catch egregious errors
assertTrue(entry.getValue().stdev() <= expectedStandardError * 1.1, String.format("Failed at p = %s, cardinality = %s. Expected std error = %s, actual = %s", indexBits, entry.getKey(), expectedStandardError, entry.getValue().stdev()));
}
}
}
Example 32
Project: cassa-master File: PredefinedOperation.java View source code |
ColumnSelection select() { if (settings.columns.slice) { int count = (int) columnCount.next(); int start; if (count == settings.columns.maxColumnsPerKey) start = 0; else start = 1 + ThreadLocalRandom.current().nextInt(settings.columns.maxColumnsPerKey - count); return new ColumnSelection(null, start, start + count); } int count = (int) columnCount.next(); int totalCount = settings.columns.names.size(); if (count == settings.columns.names.size()) return new ColumnSelection(null, 0, count); ThreadLocalRandom rnd = ThreadLocalRandom.current(); int[] indices = new int[count]; int c = 0, o = 0; while (c < count && count + o < totalCount) { int leeway = totalCount - (count + o); int spreadover = count - c; o += Math.round(rnd.nextDouble() * (leeway / (double) spreadover)); indices[c] = o + c; c++; } while (c < count) { indices[c] = o + c; c++; } return new ColumnSelection(indices, 0, 0); }
Example 33
Project: cassandra-master File: PredefinedOperation.java View source code |
ColumnSelection select() { if (settings.columns.slice) { int count = (int) columnCount.next(); int start; if (count == settings.columns.maxColumnsPerKey) start = 0; else start = 1 + ThreadLocalRandom.current().nextInt(settings.columns.maxColumnsPerKey - count); return new ColumnSelection(null, start, start + count); } int count = (int) columnCount.next(); int totalCount = settings.columns.names.size(); if (count == settings.columns.names.size()) return new ColumnSelection(null, 0, count); ThreadLocalRandom rnd = ThreadLocalRandom.current(); int[] indices = new int[count]; int c = 0, o = 0; while (c < count && count + o < totalCount) { int leeway = totalCount - (count + o); int spreadover = count - c; o += Math.round(rnd.nextDouble() * (leeway / (double) spreadover)); indices[c] = o + c; c++; } while (c < count) { indices[c] = o + c; c++; } return new ColumnSelection(indices, 0, 0); }
Example 34
Project: Chronicle-Map-master File: MarkTest.java View source code |
private static void test(Function<ChronicleMapBuilder<Integer, Integer>, ChronicleMap<Integer, Integer>> createMap) {
long ms = System.currentTimeMillis();
try (ChronicleMap<Integer, Integer> map = createMap.apply(ChronicleMapBuilder.of(Integer.class, Integer.class).entries(ENTRIES).entriesPerSegment((1 << 15) / 3).checksumEntries(false).putReturnsNull(true).removeReturnsNull(true))) {
Random r = ThreadLocalRandom.current();
for (int i = 0; i < ENTRIES; i++) {
map.put(r.nextInt(), r.nextInt());
}
}
System.out.println(System.currentTimeMillis() - ms);
}
Example 35
Project: cloudconductor-server-master File: AuthTokenGenerator.java View source code |
private String shuffleWithFisherYates(String tokenStringToShuffle) {
char[] shuffleArray = tokenStringToShuffle.toCharArray();
int tokenLength = tokenStringToShuffle.length();
for (int i = 0; i < (tokenLength - 2); i++) {
int j = ThreadLocalRandom.current().nextInt(i, tokenLength);
shuffleArray = this.swap(shuffleArray, i, j);
}
return new String(shuffleArray);
}
Example 36
Project: dropwizard-master File: RequestIdFilter.java View source code |
/**
* Generate a random UUID v4 that will perform reasonably when used by
* multiple threads under load.
*
* @see https://github.com/Netflix/netflix-commons/blob/v0.3.0/netflix-commons-util/src/main/java/com/netflix/util/concurrent/ConcurrentUUIDFactory.java
* @return random UUID
*/
private static UUID generateRandomUuid() {
final Random rnd = ThreadLocalRandom.current();
long mostSig = rnd.nextLong();
long leastSig = rnd.nextLong();
// Identify this as a version 4 UUID, that is one based on a random value.
mostSig &= 0xffffffffffff0fffL;
mostSig |= 0x0000000000004000L;
// Set the variant identifier as specified for version 4 UUID values. The two
// high order bits of the lower word are required to be one and zero, respectively.
leastSig &= 0x3fffffffffffffffL;
leastSig |= 0x8000000000000000L;
return new UUID(mostSig, leastSig);
}
Example 37
Project: dropwizardry-master File: LoggingDebugExceptionMapper.java View source code |
@Override
public Response toResponse(E exception) {
if (exception instanceof WebApplicationException) {
return ((WebApplicationException) exception).getResponse();
}
boolean debuggable = isDebuggable();
final long id = ThreadLocalRandom.current().nextLong();
/*
* If we are a BaseWebApplicationException then we will use its data to build a
* response.
*/
if (exception instanceof BaseWebApplicationException) {
ResponseBuilder builder = ((BaseWebApplicationException) exception).createResponseBuilder();
if (!debuggable) {
return builder.entity(new ErrorMessage(exception.getMessage())).build();
} else {
builder.entity(new DebugErrorMessage(id, exception));
debugLogException(id, exception);
return builder.build();
}
}
//here we have an unexpected exception of some kind (its not a BaseWebApplicationException)
//we must sanitize the exception message we send back to the client
//unless its debuggable
logException(id, exception);
if (debuggable) {
return Response.serverError().entity(new DebugErrorMessage(id, exception)).build();
} else {
return Response.serverError().entity(new ErrorMessage(formatErrorMessage(id))).build();
}
}
Example 38
Project: event-based-shopping-system-master File: MoviesController.java View source code |
@RequestMapping(value = "{id}/order", method = RequestMethod.GET)
public String orderMovie(@PathVariable UUID id, Model model) {
log.info("orderMovie with id " + id);
Movie movie = movieService.getMovieById(id);
// Create some default shipping details
Address address = new Address(Locale.GERMANY.getDisplayCountry(), "Cologne", "50667", "Domkloster", "4");
Recipient recipient = new Recipient("Alexander", "Mustermann", address, address);
Integer amount = ThreadLocalRandom.current().nextInt(1, 15);
Order order = new Order(amount, movie.getId().toString(), recipient);
BigDecimal totalPrice = movie.getPrice().multiply(BigDecimal.valueOf(amount));
model.addAttribute("movie", movie);
model.addAttribute("order", order);
model.addAttribute("totalPrice", totalPrice);
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
try {
String orderAsJson = ow.writeValueAsString(order);
messageChannel.send(new GenericMessage<String>(orderAsJson));
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return "order";
}
Example 39
Project: fast-object-pool-master File: ObjectPoolPartition.java View source code |
// set the scavenge interval carefully
public synchronized void scavenge() throws InterruptedException {
int delta = this.totalCount - config.getMinSize();
if (delta <= 0)
return;
int removed = 0;
long now = System.currentTimeMillis();
Poolable<T> obj;
while (delta-- > 0 && (obj = objectQueue.poll()) != null) {
// so it could take several intervals to shrink the pool to the configured min value.
if (Log.isDebug())
Log.debug("obj=", obj, ", now-last=", now - obj.getLastAccessTs(), ", max idle=", config.getMaxIdleMilliseconds());
if (now - obj.getLastAccessTs() > config.getMaxIdleMilliseconds() && ThreadLocalRandom.current().nextDouble(1) < config.getScavengeRatio()) {
// shrink the pool size if the object reaches max idle time
decreaseObject(obj);
removed++;
} else {
//put it back
objectQueue.put(obj);
}
}
if (removed > 0)
Log.debug(removed, " objects were scavenged.");
}
Example 40
Project: flink-master File: CustomKvStateProgram.java View source code |
public static void main(String[] args) throws Exception {
final int parallelism = Integer.parseInt(args[0]);
final String checkpointPath = args[1];
final int checkpointingInterval = Integer.parseInt(args[2]);
final String outputPath = args[3];
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(parallelism);
env.getConfig().disableSysoutLogging();
env.enableCheckpointing(checkpointingInterval);
env.setStateBackend(new FsStateBackend(checkpointPath));
DataStream<Integer> source = env.addSource(new InfiniteIntegerSource());
source.map(new MapFunction<Integer, Tuple2<Integer, Integer>>() {
private static final long serialVersionUID = 1L;
@Override
public Tuple2<Integer, Integer> map(Integer value) throws Exception {
return new Tuple2<>(ThreadLocalRandom.current().nextInt(parallelism), value);
}
}).keyBy(new KeySelector<Tuple2<Integer, Integer>, Integer>() {
private static final long serialVersionUID = 1L;
@Override
public Integer getKey(Tuple2<Integer, Integer> value) throws Exception {
return value.f0;
}
}).flatMap(new ReducingStateFlatMap()).writeAsText(outputPath);
env.execute();
}
Example 41
Project: ggp-base-master File: RandomGamer.java View source code |
@Override
public Move stateMachineSelectMove(long timeout) throws TransitionDefinitionException, MoveDefinitionException, GoalDefinitionException {
long start = System.currentTimeMillis();
List<Move> moves = getStateMachine().getLegalMoves(getCurrentState(), getRole());
Move selection = (moves.get(ThreadLocalRandom.current().nextInt(moves.size())));
long stop = System.currentTimeMillis();
notifyObservers(new GamerSelectedMoveEvent(moves, selection, stop - start));
return selection;
}
Example 42
Project: hbase-master File: TestSwitchToStreamRead.java View source code |
@BeforeClass
public static void setUp() throws IOException {
UTIL.getConfiguration().setLong(StoreScanner.STORESCANNER_PREAD_MAX_BYTES, 2048);
StringBuilder sb = new StringBuilder(256);
for (int i = 0; i < 255; i++) {
sb.append((char) ThreadLocalRandom.current().nextInt('A', 'z' + 1));
}
VALUE_PREFIX = sb.append("-").toString();
REGION = UTIL.createLocalHRegion(new HTableDescriptor(TABLE_NAME).addFamily(new HColumnDescriptor(FAMILY).setBlocksize(1024)), null, null);
for (int i = 0; i < 900; i++) {
REGION.put(new Put(Bytes.toBytes(i)).addColumn(FAMILY, QUAL, Bytes.toBytes(VALUE_PREFIX + i)));
}
REGION.flush(true);
for (int i = 900; i < 1000; i++) {
REGION.put(new Put(Bytes.toBytes(i)).addColumn(FAMILY, QUAL, Bytes.toBytes(VALUE_PREFIX + i)));
}
}
Example 43
Project: hibernate-redis-master File: Stresser.java View source code |
@Override public void run() { for (int i = 0; i < ITERATIONS; i++) { limiter.acquire(); ThreadLocalRandom random = ThreadLocalRandom.current(); int playerId = random.nextInt(ENTITIES); if (random.nextDouble() < 0.7) { playerDao.update(playerId, i); } else { playerDao.get(playerId); } } }
Example 44
Project: incubator-atlas-master File: AtlasBaseExceptionMapper.java View source code |
@Override
public Response toResponse(AtlasBaseException exception) {
final long id = ThreadLocalRandom.current().nextLong();
// Only log the exception is there's an internal error
if (exception.getAtlasErrorCode().getHttpCode() == Response.Status.INTERNAL_SERVER_ERROR) {
ExceptionMapperUtil.logException(id, exception);
}
return buildAtlasBaseExceptionResponse(exception);
}
Example 45
Project: infinispan-master File: SoftIndexFileStoreStressTest.java View source code |
@Override public void run() { ThreadLocalRandom random = ThreadLocalRandom.current(); InternalCacheEntry ice; while (!terminate) { long lifespan; String key = key(random); switch(random.nextInt(3)) { case 0: lifespan = random.nextInt(3) == 0 ? random.nextInt(10) : -1; ice = TestInternalCacheEntryFactory.<Object, Object>create(factory, key(random), String.valueOf(random.nextInt()), lifespan); store.write(TestingUtil.marshalledEntry(ice, marshaller)); break; case 1: store.delete(key); break; case 2: store.load(key); } } }
Example 46
Project: infinite-scroll-gwt-master File: DudeGenerator.java View source code |
public String random5to10Name() { int randLength = 5 + ThreadLocalRandom.current().nextInt(6); StringBuilder sb = new StringBuilder(randLength); sb.append(firstLetter.charAt(ThreadLocalRandom.current().nextInt(firstLetter.length()))); for (int i = 0; i < randLength - 1; i++) sb.append(numsAndLetters.charAt(ThreadLocalRandom.current().nextInt(numsAndLetters.length()))); return sb.toString(); }
Example 47
Project: injector-master File: SimpleCollectionBurnTest.java View source code |
public void run() { ThreadLocalRandom rand = ThreadLocalRandom.current(); List<SimpleCollection.Node> items = new ArrayList<>(); while (System.nanoTime() < until) { int targetSize = rand.nextInt(maxSignalsPerThread); while (items.size() < targetSize) items.add(c.add(new Object())); while (items.size() > targetSize) items.remove(rand.nextInt(items.size())).remove(); if (!present(c, items.iterator())) System.err.println("fail"); } latch.countDown(); }
Example 48
Project: mocha-mvc-master File: InvokeTargetResolverTest.java View source code |
private long doBenchmark(InvokeTargetResolver resolver, Collection<String> keys) {
long ret = 0;
long begin = System.nanoTime();
for (String key : keys) {
int hash = resolver.resolve(key, "GET").hashCode();
ret += hash;
}
long dur = System.nanoTime() - begin;
if (ThreadLocalRandom.current().nextInt(100000) == 1) {
System.out.println("Please ignore: " + ret);
}
return dur;
}
Example 49
Project: modeshape-master File: DbLockingService.java View source code |
@Override
public boolean tryLock(long time, TimeUnit unit, String... names) throws InterruptedException {
long start = System.currentTimeMillis();
boolean result;
long timeInMills = TimeUnit.MILLISECONDS.convert(time, unit);
while (!(result = db.lockForWriting(names)) && System.currentTimeMillis() - start <= timeInMills) {
//wait a bit (between 50 and 300 ms)
long sleepDurationMillis = 50 + ThreadLocalRandom.current().nextInt(251);
Thread.sleep(sleepDurationMillis);
}
return result;
}
Example 50
Project: monitoring-master File: ResponseTimeChartGroupTest.java View source code |
private List<SampledResponseTime> createSampledResponseTimeList(TimeWindow timeWindow) {
List<SampledResponseTime> sampledResponseTimeList = new ArrayList<>();
int maxConnectionSize = ThreadLocalRandom.current().nextInt(MIN_VALUE_OF_MAX_CONNECTION_SIZE) + MIN_VALUE_OF_MAX_CONNECTION_SIZE;
long from = timeWindow.getWindowRange().getFrom();
long to = timeWindow.getWindowRange().getTo();
for (long i = from; i < to; i += timeWindow.getWindowSlotSize()) {
sampledResponseTimeList.add(createSampledResponseTime(i, maxConnectionSize));
}
return sampledResponseTimeList;
}
Example 51
Project: multiway-pool-master File: EliminationProfile.java View source code |
Runnable newEliminationStackRunner() { final EliminationStack<Integer> stack = new EliminationStack<>(); return new Runnable() { @Override public void run() { final ThreadLocalRandom random = ThreadLocalRandom.current(); for (; ; ) { if (random.nextBoolean()) { stack.push(ELEMENT); } else { stack.pop(); } calls.increment(); } } }; }
Example 52
Project: PalletTown-master File: RandomDetails.java View source code |
static String randomBirthday() {
long minDay = LocalDate.of(1950, 1, 1).toEpochDay();
long maxDay = LocalDate.of(2002, 12, 31).toEpochDay();
long randomDay = ThreadLocalRandom.current().nextLong(minDay, maxDay);
LocalDate randomDate = LocalDate.ofEpochDay(randomDay);
DateTimeFormatter yearlyFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd");
return randomDate.format(yearlyFormat);
}
Example 53
Project: pinpoint-master File: ResponseTimeChartGroupTest.java View source code |
private List<SampledResponseTime> createSampledResponseTimeList(TimeWindow timeWindow) {
List<SampledResponseTime> sampledResponseTimeList = new ArrayList<>();
int maxConnectionSize = ThreadLocalRandom.current().nextInt(MIN_VALUE_OF_MAX_CONNECTION_SIZE) + MIN_VALUE_OF_MAX_CONNECTION_SIZE;
long from = timeWindow.getWindowRange().getFrom();
long to = timeWindow.getWindowRange().getTo();
for (long i = from; i < to; i += timeWindow.getWindowSlotSize()) {
sampledResponseTimeList.add(createSampledResponseTime(i, maxConnectionSize));
}
return sampledResponseTimeList;
}
Example 54
Project: Pixelitor-master File: DiffuseFilter.java View source code |
@Override protected void transformInverse(int x, int y, float[] out) { // int angle = (int) (Math.random() * 255); // faster than Math.random int angle = ThreadLocalRandom.current().nextInt(255); // float distance = (float) Math.random(); // faster than Math.random float distance = ThreadLocalRandom.current().nextFloat(); out[0] = x + distance * sinTable[angle]; out[1] = y + distance * cosTable[angle]; }
Example 55
Project: quasar-master File: FiberOverheadJMHBenchmark.java View source code |
@Setup
public void preapre() {
rands = new long[(DEPTH + 1) * 4];
Random rnd = ThreadLocalRandom.current();
for (int i = 0; i < rands.length; i++) rands[i] = rnd.nextLong();
runnable = new Runnable() {
@Override
public void run() {
res = recursive1(DEPTH);
}
};
fiber = new Fiber((String) null, null, STACK, new SuspendableRunnable() {
@Override
public void run() throws SuspendExecution {
res = recursive2(DEPTH);
}
});
fiber2 = new Fiber((String) null, null, STACK, new SuspendableRunnable() {
@Override
public void run() throws SuspendExecution {
res = recursive3(DEPTH);
}
});
}
Example 56
Project: rce-master File: IdGenerator.java View source code |
/**
* Generates a random String of hex characters. The requested String length must be even and must not exceed
* {@link #MAX_RANDOM_STRING_LENGTH}. The {@link IdGeneratorType} parameter select between computationally cheap or cryptographically
* secure random generation.
*
* @param length the requested string length
* @param generatorType whether to prioritize speed {@link IdGeneratorType#FAST} or security ( {@link IdGeneratorType#SECURE})
* @return the generated string
*/
public static String createRandomHexString(int length, IdGeneratorType generatorType) {
validateRequestedLength(length);
byte[] bytes = new byte[length / 2];
switch(generatorType) {
case FAST:
ThreadLocalRandom.current().nextBytes(bytes);
break;
case SECURE:
sharedSecureRandom.nextBytes(bytes);
break;
default:
throw new IllegalArgumentException();
}
String string = endodeBytesAsHexAndValidateLength(bytes, length);
return string;
}
Example 57
Project: redisson-master File: RedissonLockHeavyTest.java View source code |
@Override
public void run() {
for (int j = 0; j < loops; j++) {
RLock lock = redisson.getLock("RLOCK_" + j);
try {
if (lock.tryLock(ThreadLocalRandom.current().nextInt(10), TimeUnit.MILLISECONDS)) {
try {
RBucket<String> bucket = redisson.getBucket("RBUCKET_" + j);
bucket.set("TEST", 30, TimeUnit.SECONDS);
RSemaphore semaphore = redisson.getSemaphore("SEMAPHORE_" + j);
semaphore.release();
try {
semaphore.acquire();
} catch (InterruptedException e) {
e.printStackTrace();
}
} finally {
lock.unlock();
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Example 58
Project: rpc4j-master File: ServiceDiscovery.java View source code |
public String discover() {
String data = null;
int size = dataList.size();
if (size > 0) {
if (size == 1) {
data = dataList.get(0);
Logger.debug("using only data: {}", data);
} else {
data = dataList.get(ThreadLocalRandom.current().nextInt(size));
Logger.debug("using random data: {}", data);
}
}
return data;
}
Example 59
Project: web-framework-master File: RequestIdFilter.java View source code |
/**
* Generate a random UUID v4 that will perform reasonably when used by
* multiple threads under load.
*
* @see https://github.com/Netflix/netflix-commons/blob/v0.3.0/netflix-commons-util/src/main/java/com/netflix/util/concurrent/ConcurrentUUIDFactory.java
* @return random UUID
*/
private static UUID generateRandomUuid() {
final Random rnd = ThreadLocalRandom.current();
long mostSig = rnd.nextLong();
long leastSig = rnd.nextLong();
// Identify this as a version 4 UUID, that is one based on a random value.
mostSig &= 0xffffffffffff0fffL;
mostSig |= 0x0000000000004000L;
// Set the variant identifier as specified for version 4 UUID values. The two
// high order bits of the lower word are required to be one and zero, respectively.
leastSig &= 0x3fffffffffffffffL;
leastSig |= 0x8000000000000000L;
return new UUID(mostSig, leastSig);
}
Example 60
Project: wildfly-elytron-master File: PasswordFileKeyStoreTest.java View source code |
@Test
public void testGetPut() throws Exception {
final PasswordFactory passwordFactory = PasswordFactory.getInstance(UnixMD5CryptPassword.ALGORITHM_CRYPT_MD5);
byte[] b = new byte[16];
ThreadLocalRandom.current().nextBytes(b);
final Password password = passwordFactory.generatePassword(new EncryptablePasswordSpec("swordfish".toCharArray(), new SaltedPasswordAlgorithmSpec(b)));
KeyStore keyStore = KeyStore.getInstance("PasswordFile");
keyStore.load(new InputStream() {
public int read() throws IOException {
return -1;
}
}, null);
keyStore.setEntry("bob", new PasswordEntry(password), null);
final KeyStore.Entry entry = keyStore.getEntry("bob", null);
assertNotNull("Missing entry", entry);
assertTrue("Wrong entry type", entry instanceof PasswordEntry);
final Password storedPassword = ((PasswordEntry) entry).getPassword();
assertNotNull(storedPassword);
assertSame(password, storedPassword);
}
Example 61
Project: wildfly-security-master File: PasswordFileKeyStoreTest.java View source code |
@Test
public void testGetPut() throws Exception {
final PasswordFactory passwordFactory = PasswordFactory.getInstance(UnixMD5CryptPassword.ALGORITHM_CRYPT_MD5);
byte[] b = new byte[16];
ThreadLocalRandom.current().nextBytes(b);
final Password password = passwordFactory.generatePassword(new EncryptablePasswordSpec("swordfish".toCharArray(), new SaltedPasswordAlgorithmSpec(b)));
KeyStore keyStore = KeyStore.getInstance("PasswordFile");
keyStore.load(new InputStream() {
public int read() throws IOException {
return -1;
}
}, null);
keyStore.setEntry("bob", new PasswordEntry(password), null);
final KeyStore.Entry entry = keyStore.getEntry("bob", null);
assertNotNull("Missing entry", entry);
assertTrue("Wrong entry type", entry instanceof PasswordEntry);
final Password storedPassword = ((PasswordEntry) entry).getPassword();
assertNotNull(storedPassword);
assertSame(password, storedPassword);
}
Example 62
Project: ambry-master File: CostBenefitInfoTest.java View source code |
/**
* Tests {@link CostBenefitInfo} for comparisons
*/
@Test
public void testCostBenefitInfoComparison() {
List<String> randomSegments = CompactionPolicyTest.generateRandomStrings(3);
long cost = getRandomCost();
int benefit = 1 + TestUtils.RANDOM.nextInt(Integer.MAX_VALUE - 1);
CostBenefitInfo one = new CostBenefitInfo(randomSegments, cost, benefit);
// generate a CostBenefitInfo with cost = 1 + one's cost
compareAndTest(one, 1, 0, -1);
// generate a CostBenefitInfo with cost = 1 - one's cost
compareAndTest(one, -1, 0, 1);
// generate a CostBenefitInfo with same cost as one
compareAndTest(one, 0, 0, 0);
// generate a CostBenefitInfo with benefit = 1 + one's benefit
compareAndTest(one, 0, 1, 1);
// generate a CostBenefitInfo with benefit = 1 - one's benefit
compareAndTest(one, 0, -1, -1);
// test a case where costBenefitRatio is same, but diff cost and benefit.
cost = ThreadLocalRandom.current().nextLong(Integer.MAX_VALUE / 2);
benefit = 2 + TestUtils.RANDOM.nextInt(Integer.MAX_VALUE / 2 - 2);
if (cost % 2 != 0) {
cost++;
}
if (benefit % 2 != 0) {
benefit++;
}
one = new CostBenefitInfo(randomSegments, cost, benefit);
// generate a CostBenefitInfo with cost = half of one and benefit = half of one. CostBenefit is same, but one'e
// benefit is more
compareAndTest(one, (cost / 2) * (-1), (benefit / 2) * (-1), -1);
}
Example 63
Project: armeria-master File: SlidingWindowCounterTest.java View source code |
@Test
public void testConcurrentAccess() throws InterruptedException {
SlidingWindowCounter counter = new SlidingWindowCounter(Ticker.systemTicker(), Duration.ofMinutes(5), Duration.ofMillis(1));
int worker = 6;
int batch = 100000;
AtomicLong success = new AtomicLong();
AtomicLong failure = new AtomicLong();
CyclicBarrier barrier = new CyclicBarrier(worker);
List<Thread> threads = new ArrayList<>(worker);
for (int i = 0; i < worker; i++) {
Thread t = new Thread(() -> {
try {
barrier.await();
long s = 0;
long f = 0;
for (int j = 0; j < batch; j++) {
double r = ThreadLocalRandom.current().nextDouble();
if (r > 0.6) {
counter.onSuccess();
s++;
} else if (r > 0.2) {
counter.onFailure();
f++;
}
}
success.addAndGet(s);
failure.addAndGet(f);
} catch (Exception e) {
e.printStackTrace();
}
});
threads.add(t);
t.start();
}
for (Thread thread : threads) {
thread.join();
}
await().untilAsserted(() -> assertThat(counter.onFailure()).isPresent());
assertThat(counter.count()).isEqualTo(new EventCount(success.get(), failure.get()));
}
Example 64
Project: botula-master File: ButtBotListener.java View source code |
@Override
public void onMessage(MessageEvent event) throws Exception {
if (botName.equals(event.getUser().getNick()) || Math.abs(ThreadLocalRandom.current().nextDouble()) >= BUTT_MESSAGE_RATIO) {
return;
}
StringBuilder butted = new StringBuilder();
if (buttifyMessage(event.getMessage(), butted)) {
event.respondChannel(butted.toString());
}
}
Example 65
Project: cas-master File: MockTicketGrantingTicketCreatedEventProducer.java View source code |
private static GeoLocationRequest getMockGeoLocation() {
final int index = ThreadLocalRandom.current().nextInt(ALL_GEOLOCS.size());
final GeoLocationRequest location = new GeoLocationRequest();
final Pair<String, String> pair = ALL_GEOLOCS.get(index);
location.setLatitude(pair.getKey());
location.setLongitude(pair.getValue());
location.setAccuracy("50");
location.setTimestamp(String.valueOf(new Date().getTime()));
return location;
}
Example 66
Project: cloudeventbus-master File: EncoderDecoderTest.java View source code |
@Test
public void greetingFrame() {
final int version = 1;
final String agent = "test-0.1-SNAPSHOT";
final long id = ThreadLocalRandom.current().nextLong();
final GreetingFrame frame = new GreetingFrame(version, agent, id);
final GreetingFrame recodedFrame = recode(frame);
assertEquals(recodedFrame.getVersion(), version);
assertEquals(recodedFrame.getAgent(), agent);
assertEquals(recodedFrame.getId(), id);
}
Example 67
Project: controller-master File: ConnectionEntryTest.java View source code |
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
doNothing().when(mockCallback).accept(any(MockFailure.class));
ticker = new FakeTicker();
ticker.advance(ThreadLocalRandom.current().nextLong());
mockActor = TestProbe.apply(actorSystem);
mockRequest = new MockRequest(mockIdentifier, mockReplyTo);
mockResponse = mockRequest.toRequestFailure(mockCause);
entry = new ConnectionEntry(mockRequest, mockCallback, ticker.read());
}
Example 68
Project: CraftBook-master File: Bookshelf.java View source code |
@Listener
public void onPlayerInteract(InteractBlockEvent.Secondary.MainHand event, @Named(NamedCause.SOURCE) Player player) {
event.getTargetBlock().getLocation().filter((this::isValid)).ifPresent( location -> {
if (!sneakState.getValue().doesPass(player.get(Keys.IS_SNEAKING).orElse(false) || !usePermissions.hasPermission(player))) {
return;
}
if (!readWhenHoldingBlock.getValue()) {
ItemStack stack = player.getItemInHand(HandTypes.MAIN_HAND).filter(( itemStack -> itemStack.getItem().getBlock().isPresent())).orElse(null);
if (stack != null)
return;
}
String line = bookLines[ThreadLocalRandom.current().nextInt(bookLines.length)];
player.sendMessage(Text.of(TextColors.YELLOW, "You pick up a book..."));
player.sendMessage(Text.of(line));
});
}
Example 69
Project: Europeana-Cloud-master File: FileUploadResourceTest.java View source code |
@Test
public void shouldUploadFileForNonExistingRepresentation() {
//given
String providerId = "providerId";
byte[] content = new byte[1000];
ThreadLocalRandom.current().nextBytes(content);
String contentMd5 = Hashing.md5().hashBytes(content).toString();
FormDataMultiPart multipart = new FormDataMultiPart().field(ParamConstants.F_PROVIDER, providerId).field(ParamConstants.F_FILE_MIME, file.getMimeType()).field(ParamConstants.F_FILE_DATA, new ByteArrayInputStream(content), MediaType.APPLICATION_OCTET_STREAM_TYPE).field(ParamConstants.F_FILE_NAME, file.getFileName());
//when
Response uploadFileResponse = fileWebTarget.request().post(Entity.entity(multipart, multipart.getMediaType()));
//then
assertThat("Unexpected status code", uploadFileResponse.getStatus(), is(201));
assertThat("File content tag does not match", uploadFileResponse.getEntityTag().getValue(), is(contentMd5));
}
Example 70
Project: hadoop-release-2.6.0-master File: InternalDataNodeTestUtils.java View source code |
/**
* Starts an instance of DataNode with NN mocked. Called should ensure to
* shutdown the DN
*
* @throws IOException
*/
public static DataNode startDNWithMockNN(Configuration conf, final InetSocketAddress nnSocketAddr, final String dnDataDir) throws IOException {
FileSystem.setDefaultUri(conf, "hdfs://" + nnSocketAddr.getHostName() + ":" + nnSocketAddr.getPort());
ArrayList<StorageLocation> locations = new ArrayList<StorageLocation>();
File dataDir = new File(dnDataDir);
FileUtil.fullyDelete(dataDir);
dataDir.mkdirs();
StorageLocation location = StorageLocation.parse(dataDir.getPath());
locations.add(location);
final DatanodeProtocolClientSideTranslatorPB namenode = mock(DatanodeProtocolClientSideTranslatorPB.class);
Mockito.doAnswer(new Answer<DatanodeRegistration>() {
@Override
public DatanodeRegistration answer(InvocationOnMock invocation) throws Throwable {
return (DatanodeRegistration) invocation.getArguments()[0];
}
}).when(namenode).registerDatanode(Mockito.any(DatanodeRegistration.class));
when(namenode.versionRequest()).thenReturn(new NamespaceInfo(1, TEST_CLUSTER_ID, TEST_POOL_ID, 1L));
when(namenode.sendHeartbeat(Mockito.any(DatanodeRegistration.class), Mockito.any(StorageReport[].class), Mockito.anyLong(), Mockito.anyLong(), Mockito.anyInt(), Mockito.anyInt(), Mockito.anyInt(), Mockito.any(VolumeFailureSummary.class), Mockito.anyBoolean(), Mockito.any(SlowPeerReports.class))).thenReturn(new HeartbeatResponse(new DatanodeCommand[0], new NNHAStatusHeartbeat(HAServiceState.ACTIVE, 1), null, ThreadLocalRandom.current().nextLong() | 1L));
DataNode dn = new DataNode(conf, locations, null, null) {
@Override
DatanodeProtocolClientSideTranslatorPB connectToNN(InetSocketAddress nnAddr) throws IOException {
Assert.assertEquals(nnSocketAddr, nnAddr);
return namenode;
}
};
// Trigger a heartbeat so that it acknowledges the NN as active.
dn.getAllBpOs()[0].triggerHeartbeatForTests();
return dn;
}
Example 71
Project: hive-master File: TestTimestampTZWritable.java View source code |
@Test @Repeating(repetition = 10) public void testSeconds() { // just 1 VInt long seconds = ThreadLocalRandom.current().nextLong(Integer.MAX_VALUE); TimestampTZ tstz = new TimestampTZ(seconds, 0); verifyConversion(tstz); // 2 VInt seconds = ThreadLocalRandom.current().nextLong(Integer.MAX_VALUE) + Integer.MAX_VALUE + 1; if (ThreadLocalRandom.current().nextBoolean()) { seconds = -seconds; } tstz.set(seconds, 0); verifyConversion(tstz); }
Example 72
Project: java-loggregator-master File: MessageSigner.java View source code |
public byte[] sign(Messages.LogMessage message) {
try {
final MessageDigest digest = MessageDigest.getInstance("SHA-256");
final byte[] hash = digest.digest(message.getMessage().toByteArray());
final byte[] iv = new byte[BLOCK_SIZE];
ThreadLocalRandom.current().nextBytes(iv);
final Cipher cipher = createCipher(Cipher.ENCRYPT_MODE, iv);
byte[] cipherText = cipher.doFinal(pad(hash));
byte[] signature = new byte[iv.length + cipherText.length];
System.arraycopy(iv, 0, signature, 0, iv.length);
System.arraycopy(cipherText, 0, signature, iv.length, cipherText.length);
return signature;
} catch (GeneralSecurityException e) {
throw new LoggregatorException(e);
}
}
Example 73
Project: jinjava-master File: RandomFilter.java View source code |
@Override public Object filter(Object object, JinjavaInterpreter interpreter, String... arg) { if (object == null) { return null; } // collection if (object instanceof Collection) { Collection<?> clt = (Collection<?>) object; Iterator<?> it = clt.iterator(); int size = clt.size(); if (size == 0) { return null; } int index = ThreadLocalRandom.current().nextInt(size); while (index-- > 0) { it.next(); } return it.next(); } // array if (object.getClass().isArray()) { int size = Array.getLength(object); if (size == 0) { return null; } int index = ThreadLocalRandom.current().nextInt(size); return Array.get(object, index); } // map if (object instanceof Map) { Map<?, ?> map = (Map<?, ?>) object; Iterator<?> it = map.values().iterator(); int size = map.size(); if (size == 0) { return null; } int index = ThreadLocalRandom.current().nextInt(size); while (index-- > 0) { it.next(); } return it.next(); } // number if (object instanceof Number) { return ThreadLocalRandom.current().nextLong(((Number) object).longValue()); } // string if (object instanceof String) { try { return ThreadLocalRandom.current().nextLong(new BigDecimal((String) object).longValue()); } catch (Exception e) { return 0; } } return object; }
Example 74
Project: jmeter-master File: Random.java View source code |
/** {@inheritDoc} */
@Override
public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException {
long min = Long.parseLong(minimum.execute().trim());
long max = Long.parseLong(maximum.execute().trim());
long rand = ThreadLocalRandom.current().nextLong(min, max + 1);
String randString = Long.toString(rand);
if (varName != null) {
JMeterVariables vars = getVariables();
final String varTrim = varName.execute().trim();
if (vars != null && varTrim.length() > 0) {
// vars will be null on TestPlan
vars.put(varTrim, randString);
}
}
return randString;
}
Example 75
Project: kafka-master File: DefaultPartitioner.java View source code |
private int nextValue(String topic) {
AtomicInteger counter = topicCounterMap.get(topic);
if (null == counter) {
counter = new AtomicInteger(ThreadLocalRandom.current().nextInt());
AtomicInteger currentCounter = topicCounterMap.putIfAbsent(topic, counter);
if (currentCounter != null) {
counter = currentCounter;
}
}
return counter.getAndIncrement();
}
Example 76
Project: Kite-master File: FlexibleBoundedExponentialBackoffRetry.java View source code |
private long getSleepTime(int retryCount) {
if (retryCount < retriesLimit) {
long low = baseSleepTimeNanos * (1L << retryCount);
long high = 2 * low;
long sleepTimeNanos = ThreadLocalRandom.current().nextLong(low, high);
return Math.min(maxSleepTimeNanos, sleepTimeNanos);
} else {
return maxSleepTimeNanos;
}
}
Example 77
Project: milib-master File: RandomAccessFastaReaderTest.java View source code |
public static <S extends Sequence<S>> void assertRA(List<FastaRecord<S>> seqs, Path path, Alphabet<S> alphabet, boolean allowReverse) throws Exception { try (RandomAccessFastaReader<S> raReader = new RandomAccessFastaReader<>(path, alphabet)) { ThreadLocalRandom r = ThreadLocalRandom.current(); for (int i = 0; i < 1000; i++) { FastaRecord<S> rec = seqs.get(r.nextInt(seqs.size())); int from = r.nextInt(rec.getSequence().size() - 1); int to = allowReverse ? r.nextInt(rec.getSequence().size() - 1) : r.nextInt(from, rec.getSequence().size()); Range range = new Range(from, to); Assert.assertEquals(rec.getSequence().getRange(range), raReader.getSequence((int) rec.getId(), range)); Assert.assertEquals(rec.getSequence().getRange(range), raReader.getSequence(rec.getDescription(), range)); } } }
Example 78
Project: MyApps-master File: FlowPusherTask.java View source code |
@Override public void run() { ForwardingObjective forwardingObjective = DefaultForwardingObjective.builder().withSelector(FlowPusherTask.this.selectorBuilder.build()).withTreatment(FlowPusherTask.this.treatment).withPriority(ThreadLocalRandom.current().nextInt(100, 4000 + 1)).withFlag(ForwardingObjective.Flag.VERSATILE).fromApp(FlowPusherTask.this.appId).makeTemporary(/*.makePermanent()*/ ThreadLocalRandom.current().nextInt(100, 4000 + 1)).add(new TimerObjectiveContext()); //FlowRuleOperations operations = builder.build(flowRuleOperationsContext); //flowRuleService.apply(operations); log.info("Starting the Flowpusher task for " + FlowPusherTask.this.appId.name() + " on device " + FlowPusherTask.this.device.id() + "with id => " + forwardingObjective.id()); flowObjectiveService.forward(FlowPusherTask.this.device.id(), forwardingObjective); }
Example 79
Project: pgjdbc-master File: FinalizeStatement.java View source code |
@Benchmark
public Statement createAndLeak() throws SQLException {
Statement statement = connection.createStatement();
Random rnd;
//#if mvn.project.property.current.jdk < "1.7"
rnd = random;
//#else
rnd = java.util.concurrent.ThreadLocalRandom.current();
//#endif
if (rnd.nextFloat() >= leakPctFloat) {
statement.close();
}
return statement;
}
Example 80
Project: quartz-scheduler-hazelcast-jobstore-master File: HazelcastJobStoreUngracefulShutdownTest.java View source code |
@Test
public void testOneOfTwoInstancesCrashing() throws Exception {
// Build node 1
HazelcastInstance hazelcast1 = createHazelcastInstance("testOneOfTwoInstancesCrashing");
HazelcastJobStore.setHazelcastClient(hazelcast1);
HazelcastJobStore jobstore1 = createJobStore("jobstore1");
jobstore1.setTriggerReleaseThreshold(450);
jobstore1.setShutdownHazelcastOnShutdown(false);
jobstore1.initialize(null, new SampleSignaler());
// Build node 2
HazelcastInstance hazelcast2 = createHazelcastInstance("testOneOfTwoInstancesCrashing");
HazelcastJobStore.setHazelcastClient(hazelcast2);
HazelcastJobStore jobstore2 = createJobStore("jobstore2");
jobstore2.setShutdownHazelcastOnShutdown(false);
jobstore2.setTriggerReleaseThreshold(450);
jobstore2.initialize(null, new SampleSignaler());
// Add a job and its trigger to the scheduler
JobDetail job = JobBuilder.newJob(TestSlowJob.class).withIdentity("job1", "jobGroup1").build();
OperableTrigger trigger = buildAndComputeTrigger("trigger1", "triggerGroup1", job, new Date().getTime());
trigger.setMisfireInstruction(MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY);
jobstore1.storeJobAndTrigger(job, (OperableTrigger) trigger);
long firstFireTime = new Date(trigger.getNextFireTime().getTime()).getTime();
// Create a thread for acquiring next triggers on node 1
Thread acquireThread = new Thread(() -> {
try {
List<OperableTrigger> triggers1 = jobstore1.acquireNextTriggers(firstFireTime + 150, 1, 0L);
triggers1.forEach(jobstore1::releaseAcquiredTrigger);
} catch (JobPersistenceException e) {
throw new RuntimeException(e);
}
}, "acquireThread");
// Create a thread for terminating Hazelcast on node 1
Thread terminateThread = new Thread(hazelcast1.getLifecycleService()::terminate, "terminateThread");
// Start acquiring next triggers and right after start terminating Hazelcast
acquireThread.start();
long waitTime = ThreadLocalRandom.current().nextInt(1, 51);
Thread.sleep(waitTime);
terminateThread.start();
// Wait a bit
Thread.sleep(500);
// Acquire next triggers on node 2, we should get our trigger here!
List<OperableTrigger> triggers2 = jobstore2.acquireNextTriggers(firstFireTime + 150 + 6000, 10, 0L);
System.err.println("-------------------------> VAL " + triggers2.size());
assertEquals(triggers2.size(), 1, "Should find 1 trigger on node 2 after node 1 crashed when failing after " + waitTime + "ms");
}
Example 81
Project: rhq-master File: MeasurementReader.java View source code |
@Override public void run() { Timer.Context context = metrics.totalReadTime.time(); Stopwatch stopwatch = new Stopwatch().start(); try { log.info("Running metrics queries"); ThreadLocalRandom random = ThreadLocalRandom.current(); int bound = startingSchedule + batchSize; findResourceDataForPast24Hours(random.nextInt(startingSchedule, bound)); findResourceDataForPastWeek(random.nextInt(startingSchedule, bound)); findResourceDataForPast2Weeks(random.nextInt(startingSchedule, bound)); findResourceDataForPast31Days(random.nextInt(startingSchedule, bound)); findResourceDataForPastYear(random.nextInt(startingSchedule, bound)); } finally { stopwatch.stop(); log.info("Finished running metrics queries in " + stopwatch.elapsed(TimeUnit.MILLISECONDS) + " ms"); context.stop(); } }
Example 82
Project: RxNetty-master File: AbstractP2CStrategy.java View source code |
@Override public Observable<Connection<R, W>> newConnectionRequest() { HostHolder<W, R> selected = null; if (hosts.isEmpty()) { noUsableHostsFound(); return Observable.error(NoHostsAvailableException.EMPTY_INSTANCE); } else if (hosts.size() == 1) { HostHolder<W, R> holder = hosts.get(0); @SuppressWarnings("unchecked") L eventListener = (L) holder.getEventListener(); double weight = getWeight(eventListener); if (isUnusable(weight)) { noUsableHostsFound(); return Observable.error(new NoHostsAvailableException("No usable hosts found.")); } selected = holder; } else { ThreadLocalRandom rand = ThreadLocalRandom.current(); for (int i = 0; i < 5; i++) { int pos = rand.nextInt(hosts.size()); HostHolder<W, R> first = hosts.get(pos); int pos2 = (rand.nextInt(hosts.size() - 1) + pos + 1) % hosts.size(); HostHolder<W, R> second = hosts.get(pos2); @SuppressWarnings("unchecked") double w1 = getWeight((L) first.getEventListener()); @SuppressWarnings("unchecked") double w2 = getWeight((L) second.getEventListener()); if (w1 > w2) { selected = first; break; } else if (w1 < w2) { selected = second; break; } else if (!isUnusable(w1)) { selected = first; break; } foundTwoUnusableHosts(); } if (null == selected) { noUsableHostsFound(); return Observable.error(new NoHostsAvailableException("No usable hosts found after 5 tries.")); } } return selected.getConnector().getConnectionProvider().newConnectionRequest(); }
Example 83
Project: sulong-master File: LLVM80BitGetShortTest.java View source code |
@Test
public void testRandomInt() {
for (int i = 0; i < NR_RANDOM_NUMBERS; i++) {
byte[] bytes = new byte[1];
ThreadLocalRandom.current().nextBytes(bytes);
byte nextByte = bytes[0];
assertEquals(nextByte, LLVM80BitFloat.fromShort(nextByte).getShortValue());
assertEquals(nextByte, LLVM80BitFloat.fromShort(nextByte).getShortValue());
}
}
Example 84
Project: t-digest-benchmark-master File: TDigestBench.java View source code |
@Setup
public void setUp() {
random = ThreadLocalRandom.current();
tdigest = tdigestFactory.create(compression);
distribution = distributionFactory.create(random);
// first values are cheap to add, so pre-fill the t-digest to have more realistic results
for (int i = 0; i < 10000; ++i) {
tdigest.add(distribution.nextDouble());
}
for (int i = 0; i < data.length; ++i) {
data[i] = distribution.nextDouble();
}
}
Example 85
Project: async-google-pubsub-client-master File: PublisherBenchmark.java View source code |
public static void main(final String... args) throws IOException { final String project = Util.defaultProject(); GoogleCredential credential; // Use credentials from file if available try { credential = GoogleCredential.fromStream(new FileInputStream("credentials.json")).createScoped(PubsubScopes.all()); } catch (IOException e) { credential = GoogleCredential.getApplicationDefault().createScoped(PubsubScopes.all()); } final Pubsub pubsub = Pubsub.builder().credential(credential).compressionLevel(Deflater.BEST_SPEED).enabledCipherSuites(nonGcmCiphers()).build(); final Publisher publisher = Publisher.builder().pubsub(pubsub).concurrency(128).project(project).build(); LoggingConfigurator.configureDefaults("benchmark", WARN); final String topicPrefix = TEST_NAME_PREFIX + ThreadLocalRandom.current().nextInt(); final List<String> topics = IntStream.range(0, 100).mapToObj( i -> topicPrefix + "-" + i).collect(toList()); topics.stream().map( topic -> pubsub.createTopic(project, topic)).collect(toList()).forEach(Futures::getUnchecked); final List<Message> messages = IntStream.range(0, 1000).mapToObj( i -> { final StringBuilder s = new StringBuilder(); while (s.length() < MESSAGE_SIZE) { s.append(ThreadLocalRandom.current().nextInt()); } return Message.ofEncoded(s.toString()); }).collect(toList()); final ProgressMeter meter = new ProgressMeter(); final ProgressMeter.Metric requests = meter.group("operations").metric("publishes", "messages"); for (int i = 0; i < 100000; i++) { benchSend(publisher, messages, topics, requests); } }
Example 86
Project: Blazar-master File: GitBranchUpdaterTest.java View source code |
private GitInfo buildGitInfo(String uri) {
GitInfo gitInfo = GitInfo.fromString(uri);
return new GitInfo(Optional.absent(), gitInfo.getHost(), gitInfo.getOrganization(), gitInfo.getRepository(), ThreadLocalRandom.current().nextInt(1337, 100000), gitInfo.getBranch(), true, System.currentTimeMillis(), System.currentTimeMillis());
}
Example 87
Project: build-properties-maven-plugin-master File: GitIntegrationTest.java View source code |
@Before
public void setUp() throws Exception {
// generate unique sandbox for this test
File sandbox;
do {
currSandbox = SANDBOX_DIR + "sandbox" + Integer.toString(ThreadLocalRandom.current().nextInt(Integer.MAX_VALUE));
sandbox = new File(currSandbox);
} while (sandbox.exists());
mavenSandbox = new FileSystemMavenSandbox(currSandbox);
mojo = new GitCommitIdMojo();
initializeMojoWithDefaults(mojo);
}
Example 88
Project: caffeine-master File: Threads.java View source code |
@Override
public void run() {
int id = index.getAndIncrement();
for (Integer e : sets.get(id)) {
BiConsumer<A, Integer> operation = operations.get(ThreadLocalRandom.current().nextInt(operations.size()));
try {
operation.accept(collection, e);
} catch (Throwable t) {
failures.add(String.format("Failed: key %s on operation %s%n%s", e, operation, Throwables.getStackTraceAsString(t)));
throw t;
}
}
}
Example 89
Project: cf-java-component-master File: CfComponentConfiguration.java View source code |
@Override
public void setImportMetadata(AnnotationMetadata importMetadata) {
final MultiValueMap<String, Object> attributes = importMetadata.getAllAnnotationAttributes(CfComponent.class.getName());
type = evaluate(attributes, "type");
index = Integer.valueOf(evaluate(attributes, "index"));
uuid = evaluate(attributes, "uuid");
if (StringUtils.isEmpty(uuid)) {
uuid = UUID.randomUUID().toString();
}
host = evaluate(attributes, "host");
port = Integer.valueOf(evaluate(attributes, "port"));
username = evaluate(attributes, "username");
password = evaluate(attributes, "password");
if (StringUtils.isEmpty(password)) {
password = new BigInteger(256, ThreadLocalRandom.current()).toString(32);
}
}
Example 90
Project: dbeaver-master File: LockGeneratorOracle.java View source code |
public static void main(String[] args) { final String url = "jdbc:oracle:thin:@[SERVER]:1521/[SID]"; final Properties props = new Properties(); props.setProperty("user", "user"); props.setProperty("password", "pwd"); Connection conn = null; PreparedStatement stmt = null; ResultSet res = null; try { conn = DriverManager.getConnection(url, props); conn.setAutoCommit(false); stmt = conn.prepareStatement("select count(*) c from dba_tables where table_name = 'USR' and owner = 'SCHEMA'"); res = stmt.executeQuery(); res.next(); if (res.getInt(1) != 1) { System.out.println("Table not found"); stmt = conn.prepareStatement("create table usr(field NUMBER(11,0),v NUMBER(11,0), s VARCHAR2(1024))"); stmt.execute(); stmt = conn.prepareStatement("insert into usr(field,s) select rownum r,DBMS_RANDOM.STRING('U',1024) from dual connect by rownum <= 10000"); stmt.execute(); stmt = conn.prepareStatement("alter table usr add primary key (field)"); stmt.execute(); conn.commit(); System.out.println("Table created"); } ExecutorService service = Executors.newFixedThreadPool(MAX_SESSIONS); int sessionCount = 0; int field = 1; while (sessionCount < MAX_SESSIONS) { final int fieldVal = field; service.submit(new Runnable() { @Override public void run() { Connection c = null; PreparedStatement s = null; ResultSet r = null; try { c = DriverManager.getConnection(url, props); c.setAutoCommit(false); String pid = String.valueOf(getPid(c)); System.out.println("[" + pid + "] Submited root session for " + String.valueOf(fieldVal)); s = c.prepareStatement("/*ROOT " + String.valueOf(fieldVal) + " */ update usr set v = 100500 where field = ?"); s.setInt(1, fieldVal); s.executeUpdate(); while (true) { try { Thread.sleep(600 * 1000); } catch (InterruptedException e) { e.printStackTrace(); break; } } c.close(); } catch (SQLException e) { e.printStackTrace(); return; } } }); sessionCount++; if ((MAX_SESSIONS - sessionCount) > MIN_CHAIN_SIZE) { int chainCount = ThreadLocalRandom.current().nextInt(MIN_CHAIN_SIZE, MAX_CHAIN_SIZE + 1); if ((MAX_SESSIONS - sessionCount) >= chainCount) { for (int i = 0; i < chainCount; i++) { final int level = i; int levelCount = ThreadLocalRandom.current().nextInt(1, MAX_LEVEL_ITEMS + 1); for (int j = 0; j < levelCount; j++) { final int levelNo = j; service.submit(new Runnable() { @Override public void run() { try { Thread.sleep(5000); } catch (InterruptedException e1) { e1.printStackTrace(); } Connection c = null; PreparedStatement s = null; ResultSet r = null; try { c = DriverManager.getConnection(url, props); c.setAutoCommit(false); int pid = getPid(c); String prefix; if (levelNo > 0) { int sublock = MAX_SESSIONS + (level * MAX_CHAIN_SIZE); prefix = String.format("[%d] Sublock %d for %d -> %d (%d) ", pid, sublock, fieldVal, level, levelNo); s = c.prepareStatement("/*" + prefix + "*/ update usr set v = 100500 where field = ?"); System.out.println("Sublock for " + prefix); s.setInt(1, sublock); s.executeUpdate(); } prefix = String.format("[%d] %d->%d (%d) ", pid, fieldVal, level, levelNo); s = c.prepareStatement("/*" + prefix + "*/ update usr set v = 100500 where field = ?"); s.setInt(1, fieldVal); System.out.println("Wait session for " + prefix); s.executeUpdate(); c.close(); } catch (SQLException e) { e.printStackTrace(); return; } } }); sessionCount++; if (sessionCount >= MAX_SESSIONS) { break; } } if (sessionCount >= MAX_SESSIONS) { break; } } } } field++; } System.out.println("Sbmited " + sessionCount); service.shutdown(); service.awaitTermination(1, TimeUnit.HOURS); } catch (Exception e) { e.printStackTrace(); } }
Example 91
Project: diqube-master File: LogoutCleaner.java View source code |
@Override
public void run() {
long randomWaitDiff = ThreadLocalRandom.current().nextLong((MAX_POLL_SEC / 2) * 1_000L);
while (true) {
try {
// random so not everybody executes simultaneously
Thread.sleep((MAX_POLL_SEC / 2) * 1_000L + randomWaitDiff);
} catch (InterruptedException e) {
return;
}
Map<Long, Set<Ticket>> timeoutedTickets = timeouts.headMap(System.currentTimeMillis() - TicketValidityService.CLEANUP_NO_REMOVE_MOST_RECENT_MS);
if (!timeoutedTickets.isEmpty()) {
logger.info("Found {} tickets that have been logged out but are invalid now anyway. " + "Removing them from the consensus cluster.", timeoutedTickets.size());
try (ClosableProvider<LogoutStateMachine> p = consensusClient.getStateMachineClient(LogoutStateMachine.class)) {
Set<Ticket> allTickets = timeoutedTickets.values().stream().flatMap( s -> s.stream()).collect(Collectors.toSet());
for (Ticket t : allTickets) p.getClient().cleanLogoutTicket(CleanLogoutTicket.local(t));
timeoutedTickets.clear();
} catch (ConsensusClusterUnavailableException e) {
logger.warn("Could not contact consensus cluster to remove old logged out tickets.", e);
} catch (ConsensusStateMachineClientInterruptedException e) {
return;
} catch (RuntimeException e) {
logger.warn("Could not contact consensus cluster to remove old logged out tickets", e);
}
}
}
}
Example 92
Project: drill-master File: UserWorker.java View source code |
/** * Helper method to generate QueryId * @return generated QueryId */ private static QueryId queryIdGenerator() { ThreadLocalRandom r = ThreadLocalRandom.current(); // create a new queryid where the first four bytes are a growing time (each new value comes earlier in sequence). Last 12 bytes are random. final long time = (int) (System.currentTimeMillis() / 1000); final long p1 = ((Integer.MAX_VALUE - time) << 32) + r.nextInt(); final long p2 = r.nextLong(); final QueryId id = QueryId.newBuilder().setPart1(p1).setPart2(p2).build(); return id; }
Example 93
Project: elasticsearch-lang-groovy-master File: GroovyScriptMultiThreadedTest.java View source code |
@Override public void run() { try { barrier.await(); long x = ThreadLocalRandom.current().nextInt(); long y = ThreadLocalRandom.current().nextInt(); long addition = x + y; Map<String, Object> vars = new HashMap<String, Object>(); vars.put("x", x); vars.put("y", y); ExecutableScript script = se.executable(compiled, vars); for (int i = 0; i < 100000; i++) { long result = ((Number) script.run()).longValue(); assertThat(result, equalTo(addition)); } } catch (Throwable t) { failed.set(true); logger.error("failed", t); } finally { latch.countDown(); } }
Example 94
Project: elasticsearch-lang-mvel-master File: MvelScriptMultiThreadedTest.java View source code |
@Override public void run() { try { barrier.await(); long x = ThreadLocalRandom.current().nextInt(); long y = ThreadLocalRandom.current().nextInt(); long addition = x + y; Map<String, Object> vars = new HashMap<String, Object>(); vars.put("x", x); vars.put("y", y); ExecutableScript script = se.executable(compiled, vars); for (int i = 0; i < 100000; i++) { long result = ((Number) script.run()).longValue(); assertThat(result, equalTo(addition)); } } catch (Throwable t) { failed.set(true); logger.error("failed", t); } finally { latch.countDown(); } }
Example 95
Project: hadoop-master File: TestHAAppend.java View source code |
/**
* Test to verify the processing of PendingDataNodeMessageQueue in case of
* append. One block will marked as corrupt if the OP_ADD, OP_UPDATE_BLOCKS
* comes in one edit log segment and OP_CLOSE edit comes in next log segment
* which is loaded during failover. Regression test for HDFS-3605.
*/
@Test
public void testMultipleAppendsDuringCatchupTailing() throws Exception {
Configuration conf = new Configuration();
// Set a length edits tailing period, and explicit rolling, so we can
// control the ingest of edits by the standby for this test.
conf.set(DFSConfigKeys.DFS_HA_TAILEDITS_PERIOD_KEY, "5000");
conf.setInt(DFSConfigKeys.DFS_HA_LOGROLL_PERIOD_KEY, -1);
MiniDFSCluster cluster = new MiniDFSCluster.Builder(conf).nnTopology(MiniDFSNNTopology.simpleHATopology()).numDataNodes(3).build();
FileSystem fs = null;
try {
cluster.transitionToActive(0);
fs = HATestUtil.configureFailoverFs(cluster, conf);
Path fileToAppend = new Path("/FileToAppend");
Path fileToTruncate = new Path("/FileToTruncate");
final byte[] data = new byte[1 << 16];
ThreadLocalRandom.current().nextBytes(data);
final int[] appendPos = AppendTestUtil.randomFilePartition(data.length, COUNT);
final int[] truncatePos = AppendTestUtil.randomFilePartition(data.length, 1);
// Create file, write some data, and hflush so that the first
// block is in the edit log prior to roll.
FSDataOutputStream out = createAndHflush(fs, fileToAppend, data, appendPos[0]);
FSDataOutputStream out4Truncate = createAndHflush(fs, fileToTruncate, data, data.length);
// Let the StandbyNode catch the creation of the file.
cluster.getNameNode(0).getRpcServer().rollEditLog();
cluster.getNameNode(1).getNamesystem().getEditLogTailer().doTailEdits();
out.close();
out4Truncate.close();
// Append and re-close a few time, so that many block entries are queued.
for (int i = 0; i < COUNT; i++) {
int end = i < COUNT - 1 ? appendPos[i + 1] : data.length;
out = fs.append(fileToAppend);
out.write(data, appendPos[i], end - appendPos[i]);
out.close();
}
boolean isTruncateReady = fs.truncate(fileToTruncate, truncatePos[0]);
// Ensure that blocks have been reported to the SBN ahead of the edits
// arriving.
cluster.triggerBlockReports();
// Failover the current standby to active.
cluster.shutdownNameNode(0);
cluster.transitionToActive(1);
// Check the FSCK doesn't detect any bad blocks on the SBN.
int rc = ToolRunner.run(new DFSck(cluster.getConfiguration(1)), new String[] { "/", "-files", "-blocks" });
assertEquals(0, rc);
assertEquals("CorruptBlocks should be empty.", 0, cluster.getNameNode(1).getNamesystem().getCorruptReplicaBlocks());
AppendTestUtil.checkFullFile(fs, fileToAppend, data.length, data, fileToAppend.toString());
if (!isTruncateReady) {
TestFileTruncate.checkBlockRecovery(fileToTruncate, cluster.getFileSystem(1));
}
AppendTestUtil.checkFullFile(fs, fileToTruncate, truncatePos[0], data, fileToTruncate.toString());
} finally {
if (null != cluster) {
cluster.shutdown();
}
if (null != fs) {
fs.close();
}
}
}
Example 96
Project: HERD-master File: SearchIndexValidationServiceTest.java View source code |
@Test public void testCreateSearchIndexValidationBusinessObjectDefinitions() { // Create a search index key. SearchIndexKey searchIndexKey = new SearchIndexKey(SEARCH_INDEX_NAME); // Get the search index type value. String searchIndexType = SearchIndexTypeEntity.SearchIndexTypes.BUS_OBJCT_DFNTN.name(); // Create a search index create request. SearchIndexValidationCreateRequest searchIndexValidationCreateRequest = new SearchIndexValidationCreateRequest(searchIndexKey); //Create the search index type entity SearchIndexTypeEntity searchIndexTypeEntity = new SearchIndexTypeEntity(); searchIndexTypeEntity.setCode(searchIndexType); //Create a search index entity SearchIndexEntity searchIndexEntity = new SearchIndexEntity(); searchIndexEntity.setName(SEARCH_INDEX_NAME); searchIndexEntity.setType(searchIndexTypeEntity); //validation response boolean sizeCheck = ThreadLocalRandom.current().nextDouble() < 0.5; boolean spotCheckPercentage = ThreadLocalRandom.current().nextDouble() < 0.5; boolean spotCheckMostRecent = ThreadLocalRandom.current().nextDouble() < 0.5; // Mock some of the external call responses. @SuppressWarnings("unchecked") Future<Void> mockedFuture = mock(Future.class); // Mock the external calls. when(alternateKeyHelper.validateStringParameter("Search index name", SEARCH_INDEX_NAME)).thenReturn(SEARCH_INDEX_NAME); when(searchIndexDaoHelper.getSearchIndexEntity(searchIndexKey)).thenReturn(searchIndexEntity); when(businessObjectDefinitionService.indexValidateAllBusinessObjectDefinitions()).thenReturn(new AsyncResult<>(null)); when(businessObjectDefinitionService.indexSizeCheckValidationBusinessObjectDefinitions()).thenReturn(sizeCheck); when(businessObjectDefinitionService.indexSpotCheckPercentageValidationBusinessObjectDefinitions()).thenReturn(spotCheckPercentage); when(businessObjectDefinitionService.indexSpotCheckMostRecentValidationBusinessObjectDefinitions()).thenReturn(spotCheckMostRecent); // Create a search index. SearchIndexValidation response = searchIndexValidationService.createSearchIndexValidation(searchIndexValidationCreateRequest); // Verify the external calls. verify(alternateKeyHelper).validateStringParameter("Search index name", SEARCH_INDEX_NAME); verify(businessObjectDefinitionService, times(1)).indexValidateAllBusinessObjectDefinitions(); verify(searchIndexDaoHelper).getSearchIndexEntity(searchIndexKey); verify(businessObjectDefinitionService).indexValidateAllBusinessObjectDefinitions(); verify(businessObjectDefinitionService).indexSizeCheckValidationBusinessObjectDefinitions(); verify(businessObjectDefinitionService).indexSpotCheckPercentageValidationBusinessObjectDefinitions(); verify(businessObjectDefinitionService).indexSpotCheckMostRecentValidationBusinessObjectDefinitions(); verifyNoMoreInteractions(alternateKeyHelper, searchIndexDaoHelper, businessObjectDefinitionService); // Validate the returned object. assertEquals(new SearchIndexValidation(searchIndexKey, response.getValidateStartTime(), sizeCheck, spotCheckPercentage, spotCheckMostRecent), response); }
Example 97
Project: JCTools-master File: MpscOnSpscQueue.java View source code |
@Override
public E poll() {
Queue<E>[] qs = this.queues;
final int start = ThreadLocalRandom.current().nextInt(qs.length);
for (int i = start; i < qs.length; i++) {
E e = qs[i].poll();
if (e != null)
return e;
}
for (int i = 0; i < start; i++) {
E e = qs[i].poll();
if (e != null)
return e;
}
return null;
}
Example 98
Project: jdk7u-jdk-master File: Arrive.java View source code |
void doTest(String[] args) throws Throwable {
final int n = ThreadLocalRandom.current().nextInt(1, 10);
final Phaser startingGate = new Phaser(n);
final Phaser phaser = new Phaser(n);
final List<Thread> threads = new ArrayList<Thread>();
final AtomicInteger count0 = new AtomicInteger(0);
final AtomicInteger count1 = new AtomicInteger(0);
final Runnable task = new Runnable() {
public void run() {
equal(startingGate.getPhase(), 0);
startingGate.arriveAndAwaitAdvance();
equal(startingGate.getPhase(), 1);
int phase = phaser.arrive();
if (phase == 0)
count0.getAndIncrement();
else if (phase == 1)
count1.getAndIncrement();
else
fail();
}
};
for (int i = 0; i < n; i++) threads.add(new Thread(task));
for (Thread thread : threads) thread.start();
for (Thread thread : threads) thread.join();
equal(count0.get(), n);
equal(count1.get(), 0);
equal(phaser.getPhase(), 1);
}
Example 99
Project: jeppetto-master File: BaseNIdGenerator.java View source code |
//-------------------------------------------------------------
// Implementation - IdGenerator
//-------------------------------------------------------------
@Override
public String generateId() {
StringBuilder sb = new StringBuilder();
int bitsLeft = bitsPerId;
while (bitsLeft > 0) {
long random = ThreadLocalRandom.current().nextLong();
if (bitsLeft < BITS_PER_LONG) {
random >>>= (BITS_PER_LONG - bitsLeft);
}
encode(random, sb);
bitsLeft -= BITS_PER_LONG;
}
while (sb.length() < encodedIdLength) {
sb.append(characters[0]);
}
// It's possible we could generate a string larger than we expect. Cut it down if needed.
return sb.length() == encodedIdLength ? sb.toString() : sb.substring(0, encodedIdLength);
}
Example 100
Project: jetbrick-commons-master File: RandomStringUtils.java View source code |
public static String random(int count, int start, int end, boolean letters, boolean numbers, char[] chars) { if (count == 0) { return ""; } else if (count < 0) { throw new IllegalArgumentException("Requested random string length " + count + " is less than 0."); } if (chars != null && chars.length == 0) { throw new IllegalArgumentException("The chars array must not be empty"); } if (start == 0 && end == 0) { if (chars != null) { end = chars.length; } else { if (!letters && !numbers) { end = Integer.MAX_VALUE; } else { end = 'z' + 1; start = ' '; } } } else { if (end <= start) { throw new IllegalArgumentException("Parameter end (" + end + ") must be greater than start (" + start + ")"); } } final char[] buffer = new char[count]; final int gap = end - start; ThreadLocalRandom random = ThreadLocalRandom.current(); while (count-- != 0) { char ch; if (chars == null) { ch = (char) (random.nextInt(gap) + start); } else { ch = chars[random.nextInt(gap) + start]; } if (letters && Character.isLetter(ch) || numbers && Character.isDigit(ch) || !letters && !numbers) { if (ch >= 56320 && ch <= 57343) { if (count == 0) { count++; } else { // low surrogate, insert high surrogate after putting it in buffer[count] = ch; count--; buffer[count] = (char) (55296 + random.nextInt(128)); } } else if (ch >= 55296 && ch <= 56191) { if (count == 0) { count++; } else { // high surrogate, insert low surrogate before putting it in buffer[count] = (char) (56320 + random.nextInt(128)); count--; buffer[count] = ch; } } else if (ch >= 56192 && ch <= 56319) { // private high surrogate, no effing clue, so skip it count++; } else { buffer[count] = ch; } } else { count++; } } return new String(buffer); }
Example 101
Project: jlibs-master File: AddAuthentication.java View source code |
@Override
public boolean filter(ClientExchange exchange, FilterType type) throws Exception {
assert type == FilterType.RESPONSE;
Response response = exchange.getResponse();
if (!status.equals(response.status))
return true;
Request request = exchange.getRequest();
if (// we already tried to authenticate && failed
request.getCredentials(proxy) != null)
return true;
Challenge challenge = response.getChallenge(proxy);
if (challenge instanceof BasicChallenge) {
request.setCredentials(basicCredentials, proxy);
exchange.retry();
return true;
}
if (challenge instanceof DigestChallenge) {
DigestChallenge digestChallenge = (DigestChallenge) challenge;
DigestCredentials digestCredentials = new DigestCredentials();
digestCredentials.username = basicCredentials.user;
digestCredentials.realm = digestChallenge.realm;
digestCredentials.nonce = digestChallenge.nonce;
digestCredentials.uri = request.uri;
digestCredentials.algorithm = digestChallenge.algorithm;
digestCredentials.opaque = digestChallenge.opaque;
if (digestChallenge.qops != null && !digestChallenge.qops.isEmpty())
digestCredentials.qop = digestChallenge.qops.contains("auth") ? "auth" : digestChallenge.qops.get(0);
if ("MD5-sess".equals(digestCredentials.algorithm) || digestCredentials.qop != null) {
byte[] bytes = new byte[4];
ThreadLocalRandom.current().nextBytes(bytes);
digestCredentials.cnonce = printHexBinary(bytes).toLowerCase();
}
MessageDigest md5 = MessageDigest.getInstance("MD5");
String a1 = basicCredentials.user + ':' + digestChallenge.realm + ':' + basicCredentials.password;
String ha1 = printHexBinary(md5.digest(a1.getBytes(UTF_8))).toLowerCase();
md5.reset();
if ("MD5-sess".equals(digestCredentials.algorithm)) {
ha1 = printHexBinary(md5.digest((ha1 + ':' + digestCredentials.nonce + ':' + digestCredentials.cnonce).getBytes(UTF_8))).toLowerCase();
md5.reset();
}
md5.update((request.method + ":" + request.uri).getBytes(UTF_8));
if ("auth-init".equals(digestCredentials.qop)) {
// ha2 = md5(method:uri:md5(payload)
if (request.getPayload().getContentLength() == 0)
md5.update((byte) ':');
else {
// not implemented
return true;
}
}
String ha2 = printHexBinary(md5.digest()).toLowerCase();
md5.reset();
String respString = ha1 + ':' + digestChallenge.nonce;
if (digestCredentials.qop != null) {
digestCredentials.nc = String.format("%08x", 1);
respString += ':' + digestCredentials.nc + ':' + digestCredentials.cnonce + ':' + digestCredentials.qop;
}
respString += ':' + ha2;
digestCredentials.response = printHexBinary(md5.digest(respString.getBytes(UTF_8))).toLowerCase();
request.setCredentials(digestCredentials, proxy);
exchange.retry();
return true;
}
// we dont understand the challenge
return true;
}