Java Code Examples for java.util.concurrent.ConcurrentHashMap#entrySet()

The following examples show how to use java.util.concurrent.ConcurrentHashMap#entrySet() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AutoSerializableJUnitTest.java    From gemfirexd-oss with Apache License 2.0 6 votes vote down vote up
@Override
public Object writeTransform(Field f, Class<?> clazz, Object originalValue) {
  if (f.getType().equals(ConcurrentHashMap.class)) {
    Object[] result = null;
    if (originalValue != null) {
      ConcurrentHashMap<?,?> m = (ConcurrentHashMap<?,?>)originalValue;
      result = new Object[m.size()*2];
      int i = 0;
      for (Map.Entry<?,?> e: m.entrySet()) {
        result[i++] = e.getKey();
        result[i++] = e.getValue();
      }
    }
    return result;
  } else {
    return super.writeTransform(f, clazz, originalValue);
  }
}
 
Example 2
Source File: TrimmedConfigurationCache.java    From bazel with Apache License 2.0 6 votes vote down vote up
/**
 * Looks for a key with the same descriptor as the input key, which has a configuration that
 * trimmed to a subset of the input key's.
 *
 * <p>Note that this is not referring to a <em>proper</em> subset; it's quite possible for a key
 * to "trim" to a configuration equal to its configuration. That is, without anything being
 * removed.
 *
 * <p>If such a key has been added to this cache, it is returned in a present {@link Optional}.
 * Invoking this key will produce the same result as invoking the input key.
 *
 * <p>If no such key has been added to this cache, or if a key has been added to the cache and
 * subsequently been the subject of an {@link #invalidate(KeyT)}, an absent Optional will be
 * returned instead. No currently-valid key has trimmed to an equivalent configuration, and so the
 * input key should be executed.
 */
public Optional<KeyT> get(KeyT input) {
  DescriptorT descriptor = getDescriptorFor(input);
  ConcurrentHashMap<ConfigurationT, KeyAndState<KeyT>> trimmingsOfDescriptor =
      descriptors.get(descriptor);
  if (trimmingsOfDescriptor == null) {
    // There are no entries at all for this descriptor.
    return Optional.empty();
  }
  ConfigurationT candidateConfiguration = getConfigurationFor(input);
  for (Entry<ConfigurationT, KeyAndState<KeyT>> entry : trimmingsOfDescriptor.entrySet()) {
    ConfigurationT trimmedConfig = entry.getKey();
    KeyAndState<KeyT> canonicalKeyAndState = entry.getValue();
    if (canSubstituteFor(candidateConfiguration, trimmedConfig, canonicalKeyAndState)) {
      return Optional.of(canonicalKeyAndState.getKey());
    }
  }
  return Optional.empty();
}
 
Example 3
Source File: DistinctEntrySetElements.java    From openjdk-jdk9 with GNU General Public License v2.0 6 votes vote down vote up
public static void main(String[] args) throws Exception {
    final ConcurrentHashMap<String, String> concurrentHashMap =
        new ConcurrentHashMap<>();

    concurrentHashMap.put("One", "Un");
    concurrentHashMap.put("Two", "Deux");
    concurrentHashMap.put("Three", "Trois");

    Set<Map.Entry<String, String>> entrySet = concurrentHashMap.entrySet();
    HashSet<Map.Entry<String, String>> hashSet = new HashSet<>(entrySet);

    if (false == hashSet.equals(entrySet)) {
        throw new RuntimeException("Test FAILED: Sets are not equal.");
    }
    if (hashSet.hashCode() != entrySet.hashCode()) {
        throw new RuntimeException("Test FAILED: Set's hashcodes are not equal.");
    }
}
 
Example 4
Source File: DefaultDiamondSubscriber.java    From diamond with Apache License 2.0 6 votes vote down vote up
private void checkSnapshot() {
    for (Entry<String, ConcurrentHashMap<String, CacheData>> cacheDatasEntry : cache.entrySet()) {
        ConcurrentHashMap<String, CacheData> cacheDatas = cacheDatasEntry.getValue();
        if (null == cacheDatas) {
            continue;
        }
        for (Entry<String, CacheData> cacheDataEntry : cacheDatas.entrySet()) {
            final CacheData cacheData = cacheDataEntry.getValue();
            // 没有获取本地配置,也没有从diamond server获取配置成功,则加载上一次的snapshot
            if (!cacheData.isUseLocalConfigInfo() && cacheData.getFetchCount() == 0) {
                String configInfo = getSnapshotConfiginfomation(cacheData.getDataId(), cacheData.getGroup());
                if (configInfo != null) {
                    popConfigInfo(cacheData, configInfo);
                }
            }
        }
    }
}
 
Example 5
Source File: CarinaListener.java    From carina with Apache License 2.0 6 votes vote down vote up
private String takeScreenshot(ITestResult result, String msg) {
    String screenId = "";

    ConcurrentHashMap<String, CarinaDriver> drivers = getDrivers();

    try {
        for (Map.Entry<String, CarinaDriver> entry : drivers.entrySet()) {
            String driverName = entry.getKey();
            WebDriver drv = entry.getValue().getDriver();

            if (drv instanceof EventFiringWebDriver) {
                drv = ((EventFiringWebDriver) drv).getWrappedDriver();
            }
            
            if (Screenshot.isEnabled()) {
                screenId = Screenshot.capture(drv, driverName + ": " + msg, true); // in case of failure
            }
        }
    } catch (Throwable thr) {
        LOGGER.error("Failure detected on screenshot generation after failure: ", thr);
    }
    return screenId;
}
 
Example 6
Source File: DistinctEntrySetElements.java    From openjdk-8-source with GNU General Public License v2.0 6 votes vote down vote up
public static void main(String[] args) throws Exception {
    final ConcurrentHashMap<String, String> concurrentHashMap =
        new ConcurrentHashMap<>();

    concurrentHashMap.put("One", "Un");
    concurrentHashMap.put("Two", "Deux");
    concurrentHashMap.put("Three", "Trois");

    Set<Map.Entry<String, String>> entrySet = concurrentHashMap.entrySet();
    HashSet<Map.Entry<String, String>> hashSet = new HashSet<>(entrySet);

    if (false == hashSet.equals(entrySet)) {
        throw new RuntimeException("Test FAILED: Sets are not equal.");
    }
    if (hashSet.hashCode() != entrySet.hashCode()) {
        throw new RuntimeException("Test FAILED: Set's hashcodes are not equal.");
    }
}
 
Example 7
Source File: SoftRefLogWriter.java    From tddl with Apache License 2.0 6 votes vote down vote up
/**
 * 刷出所有的日志统计信息。
 */
protected void flushAll() {
    final long flushMillis = System.currentTimeMillis();
    // 清理已经回收的对象
    expungeLogRef();
    // XXX: 输出的日志按 Key 进行排序 -- 先取消
    // TreeMap<LogKey, Reference<LogCounter>> map = new TreeMap<LogKey,
    // SoftReference<LogCounter>>(map);
    ConcurrentHashMap<LogKey, Reference<LogCounter>> map = this.map;
    int count = 0;
    for (Entry<LogKey, Reference<LogCounter>> entry : map.entrySet()) {
        LogCounter counter = entry.getValue().get();
        if (counter != null && counter.getCount() > 0) {
            LogKey logKey = entry.getKey();
            nestLog.write(logKey.getKeys(), counter.getFields(), counter.getValues());
            counter.clear();
            count++;
        }
    }
    if (count > 0 && logger.isDebugEnabled()) {
        logger.debug("flushAll: " + count + " logs in " + (System.currentTimeMillis() - flushMillis)
                     + " milliseconds.");
    }
}
 
Example 8
Source File: NYBusDriver.java    From NYBus with Apache License 2.0 6 votes vote down vote up
/**
 * Remove method from methods map.
 *
 * @param mTargetMap      the target map.
 * @param targetObject    the target object.
 * @param targetChannelId the target channel ids.
 */
private void removeMethodFromMethodsMap(ConcurrentHashMap<Object,
        ConcurrentHashMap<String, SubscriberHolder>> mTargetMap,
                                        Object targetObject,
                                        List<String> targetChannelId) {
    ConcurrentHashMap<String, SubscriberHolder> mSubscribedMethodsMap =
            mTargetMap.get(targetObject);
    for (Map.Entry<String, SubscriberHolder> mSubscribedMethodsMapEntry :
            mSubscribedMethodsMap.entrySet()) {
        SubscriberHolder subscribedMethod = mSubscribedMethodsMapEntry.getValue();
        List<String> methodChannelId = subscribedMethod.subscribedChannelID;
        if (targetChannelId.containsAll(methodChannelId)) {
            mSubscribedMethodsMap.remove(mSubscribedMethodsMapEntry.getKey());
            removeTargetIfRequired(mSubscribedMethodsMap, mTargetMap, targetObject);
        }
    }
}
 
Example 9
Source File: SdsDowngradeReturnValueService.java    From sds with Apache License 2.0 6 votes vote down vote up
/**
 * 重设降级点返回值
 *
 * @param strategyMap
 */
public void reset(ConcurrentHashMap<String, SdsStrategy> strategyMap) {

    ConcurrentHashMap<String, ReturnValue> newMap = new ConcurrentHashMap<>();

    if (strategyMap == null || strategyMap.isEmpty()) {
        this.pointDowngradeReturnValue = newMap;
        return;
    }

    for (Map.Entry<String, SdsStrategy> stringSdsStrategyEntry : strategyMap.entrySet()) {
        newMap.put(stringSdsStrategyEntry.getKey(),
                new ReturnValue(stringSdsStrategyEntry.getKey(), stringSdsStrategyEntry.getValue().
                        getReturnValueStr(), null));
    }

    this.pointDowngradeReturnValue = newMap;
}
 
Example 10
Source File: DataSerializer.java    From gemfirexd-oss with Apache License 2.0 6 votes vote down vote up
/**
 * Writes a <code>ConcurrentHashMap</code> to a <code>DataOutput</code>.  Note
 * that even though <code>map</code> may be an instance of a
 * subclass of <code>ConcurrentHashMap</code>, <code>readConcurrentHashMap</code> will
 * always return an instance of <code>ConcurrentHashMap</code>, <B>not</B> an
 * instance of the subclass.  To preserve the class type of
 * <code>map</code>, {@link #writeObject(Object, DataOutput)} should be used for data
 * serialization.
 * <P>At this time if {@link #writeObject(Object, DataOutput)} is called with an instance
 * of ConcurrentHashMap then it will be serialized with normal java.io Serialization. So
 * if you want the keys and values of a ConcurrentHashMap to take advantage of GemFire serialization
 * it must be serialized with this method.
 *
 * @throws IOException
 *         A problem occurs while writing to <code>out</code>
 *
 * @see #readConcurrentHashMap
 * @since 6.6
 */
public static void writeConcurrentHashMap(ConcurrentHashMap<?,?> map, DataOutput out)
  throws IOException {

  InternalDataSerializer.checkOut(out);

  int size;
  Collection<Map.Entry<?,?>> entrySnapshot = null;
  if (map == null) {
    size = -1;
  } else {
    // take a snapshot to fix bug 44562
    entrySnapshot = new ArrayList<Map.Entry<?,?>>(map.entrySet());
    size = entrySnapshot.size();
  }
  InternalDataSerializer.writeArrayLength(size, out);
  if (DEBUG) {
    InternalDataSerializer.logger.info( LocalizedStrings.DEBUG, "Writing ConcurrentHashMap with " + size + " elements: " + entrySnapshot);
  }
  if (size > 0) {
    for (Map.Entry<?,?> entry: entrySnapshot) {
      writeObject(entry.getKey(), out);
      writeObject(entry.getValue(), out);
    }
  }
}
 
Example 11
Source File: DistinctEntrySetElements.java    From dragonwell8_jdk with GNU General Public License v2.0 6 votes vote down vote up
public static void main(String[] args) throws Exception {
    final ConcurrentHashMap<String, String> concurrentHashMap =
        new ConcurrentHashMap<>();

    concurrentHashMap.put("One", "Un");
    concurrentHashMap.put("Two", "Deux");
    concurrentHashMap.put("Three", "Trois");

    Set<Map.Entry<String, String>> entrySet = concurrentHashMap.entrySet();
    HashSet<Map.Entry<String, String>> hashSet = new HashSet<>(entrySet);

    if (false == hashSet.equals(entrySet)) {
        throw new RuntimeException("Test FAILED: Sets are not equal.");
    }
    if (hashSet.hashCode() != entrySet.hashCode()) {
        throw new RuntimeException("Test FAILED: Set's hashcodes are not equal.");
    }
}
 
Example 12
Source File: DistinctEntrySetElements.java    From jdk8u_jdk with GNU General Public License v2.0 6 votes vote down vote up
public static void main(String[] args) throws Exception {
    final ConcurrentHashMap<String, String> concurrentHashMap =
        new ConcurrentHashMap<>();

    concurrentHashMap.put("One", "Un");
    concurrentHashMap.put("Two", "Deux");
    concurrentHashMap.put("Three", "Trois");

    Set<Map.Entry<String, String>> entrySet = concurrentHashMap.entrySet();
    HashSet<Map.Entry<String, String>> hashSet = new HashSet<>(entrySet);

    if (false == hashSet.equals(entrySet)) {
        throw new RuntimeException("Test FAILED: Sets are not equal.");
    }
    if (hashSet.hashCode() != entrySet.hashCode()) {
        throw new RuntimeException("Test FAILED: Set's hashcodes are not equal.");
    }
}
 
Example 13
Source File: PingClient.java    From tchannel-java with MIT License 5 votes vote down vote up
public void run() throws Exception {
    TChannel tchannel = new TChannel.Builder("ping-client").build();
    SubChannel subChannel = tchannel.makeSubChannel("ping-server");
    final ConcurrentHashMap<String, AtomicInteger> msgs = new ConcurrentHashMap<>();
    final CountDownLatch done = new CountDownLatch(requests);

    for (int i = 0; i < requests; i++) {
        JsonRequest<Ping> request = new JsonRequest.Builder<Ping>("ping-server", "ping")
            .setBody(new Ping("{'key': 'ping?'}"))
            .setHeader("some", "header")
            .setTimeout(100 + i)
            .build();
        TFuture<JsonResponse<Pong>> f = subChannel.send(
                request,
                InetAddress.getByName(host),
                port
            );

        f.addCallback(new TFutureCallback<JsonResponse<Pong>>() {
            @Override
            public void onResponse(JsonResponse<Pong> pongResponse) {
                done.countDown();
                String msg = pongResponse.toString();
                AtomicInteger count = msgs.putIfAbsent(msg, new AtomicInteger(1));
                if (count != null) {
                    count.incrementAndGet();
                }
            }
        });
    }

    done.await();
    for (Map.Entry<String, AtomicInteger> stringIntegerEntry : msgs.entrySet()) {
        System.out.println(String.format("%s%n\tcount:%s",
            stringIntegerEntry.getKey(), stringIntegerEntry.getValue()
        ));
    }

    tchannel.shutdown(false);
}
 
Example 14
Source File: ServicesUtil.java    From dubbo-plus with Apache License 2.0 5 votes vote down vote up
public static void writeServicesHtml(OutputStream outputStream,ConcurrentHashMap<String, ServiceHandler> serviceHandlerConcurrentHashMap) throws IOException {
    writeHtmlStart(outputStream);
    writeHeader(outputStream);
    writeStyle(outputStream);
    writeBodyStart(outputStream);
    writeHead(outputStream);
    writeTableStart(outputStream);
    writeServiceHead(outputStream);
    for(Map.Entry<String,ServiceHandler> entry:serviceHandlerConcurrentHashMap.entrySet()){
        writeService(outputStream,entry.getKey(),entry.getValue());
    }
    writeTableEnd(outputStream);
    writeBodyEnd(outputStream);
    writeHtmlEnd(outputStream);
}
 
Example 15
Source File: CacheUtil.java    From OpenFalcon-SuitAgent with Apache License 2.0 5 votes vote down vote up
/**
 * 获取缓存中,超时的key
 * @param map
 * @return
 */
public static List<String> getTimeoutCacheKeys(ConcurrentHashMap<String,String> map){
    List<String> keys = new ArrayList<>();
    long now = System.currentTimeMillis();
    for (Map.Entry<String, String> entry : map.entrySet()) {
        long cacheTime = getCacheTime(entry.getValue());
        if(cacheTime == 0){
            keys.add(entry.getKey());
        }else if(now - cacheTime >= 2 * 24 * 60 * 60 * 1000){
            //超时2天
            keys.add(entry.getKey());
        }
    }
    return keys;
}
 
Example 16
Source File: DefaultDiamondSubscriber.java    From diamond with Apache License 2.0 5 votes vote down vote up
/**
 * 获取探测更新的DataID的请求字符串
 * 
 * @param localModifySet
 * @return
 */
private String getProbeUpdateString() {
    // 获取check的DataID:Group:MD5串
    StringBuilder probeModifyBuilder = new StringBuilder();
    for (Entry<String, ConcurrentHashMap<String, CacheData>> cacheDatasEntry : this.cache.entrySet()) {
        String dataId = cacheDatasEntry.getKey();
        ConcurrentHashMap<String, CacheData> cacheDatas = cacheDatasEntry.getValue();
        if (null == cacheDatas) {
            continue;
        }
        for (Entry<String, CacheData> cacheDataEntry : cacheDatas.entrySet()) {
            final CacheData data = cacheDataEntry.getValue();
            // 非使用本地配置,才去diamond server检查
            if (!data.isUseLocalConfigInfo()) {
                probeModifyBuilder.append(dataId).append(WORD_SEPARATOR);

                if (null != cacheDataEntry.getValue().getGroup()
                        && Constants.NULL != cacheDataEntry.getValue().getGroup()) {
                    probeModifyBuilder.append(cacheDataEntry.getValue().getGroup()).append(WORD_SEPARATOR);
                }
                else {
                    probeModifyBuilder.append(WORD_SEPARATOR);
                }

                if (null != cacheDataEntry.getValue().getMd5()
                        && Constants.NULL != cacheDataEntry.getValue().getMd5()) {
                    probeModifyBuilder.append(cacheDataEntry.getValue().getMd5()).append(LINE_SEPARATOR);
                }
                else {
                    probeModifyBuilder.append(LINE_SEPARATOR);
                }
            }
        }
    }
    String probeModifyString = probeModifyBuilder.toString();
    return probeModifyString;
}
 
Example 17
Source File: ChannelManager.java    From TakinRPC with Apache License 2.0 5 votes vote down vote up
/**
 * 检查 关闭的channel
 * 
 * @param channelMap
 */
private void checkCloseChannel(ConcurrentHashMap<String, List<ChannelWrapper>> channelMap) {
    for (Map.Entry<String, List<ChannelWrapper>> entry : channelMap.entrySet()) {
        List<ChannelWrapper> channels = entry.getValue();
        List<ChannelWrapper> removeList = new ArrayList<ChannelWrapper>();
        for (ChannelWrapper channel : channels) {
            if (channel.isClosed()) {
                removeList.add(channel);
                logger.info(String.format("close channel=%s", channel));
            }
        }
        channels.removeAll(removeList);
    }
}
 
Example 18
Source File: ConcurrentHashMapTest.java    From openjdk-jdk9 with GNU General Public License v2.0 5 votes vote down vote up
/**
 * entrySet.toArray contains all entries
 */
public void testEntrySetToArray() {
    ConcurrentHashMap map = map5();
    Set s = map.entrySet();
    Object[] ar = s.toArray();
    assertEquals(5, ar.length);
    for (int i = 0; i < 5; ++i) {
        assertTrue(map.containsKey(((Map.Entry)(ar[i])).getKey()));
        assertTrue(map.containsValue(((Map.Entry)(ar[i])).getValue()));
    }
}
 
Example 19
Source File: APIStatisticTimeSet.java    From fiery with Apache License 2.0 5 votes vote down vote up
public TreeMap<Long, APIStatisticStruct> getHourDetail(String url, Long shardtime) {
    TreeMap<Long, APIStatisticStruct> urlStatics = new TreeMap<>();

    if (apiTopHourStaticHelper.containsKey(url)) {
        //return apiTopHourStaticHelper.get(url);
        ConcurrentHashMap<Long, APIStatisticStruct> staticsSet = apiTopHourStaticHelper.get(url);

        for (Map.Entry<Long, APIStatisticStruct> statisticItem : staticsSet.entrySet()) {
            if (statisticItem.getKey() >= shardtime && statisticItem.getKey() <= shardtime + 86400) {
                urlStatics.put(DateTimeHelper.getHour(statisticItem.getKey()), statisticItem.getValue());
            }
        }
    }
    return urlStatics;
}
 
Example 20
Source File: ConcurrentHashMapTest.java    From openjdk-jdk9 with GNU General Public License v2.0 5 votes vote down vote up
/**
 * hashCode() equals sum of each key.hashCode ^ value.hashCode
 */
public void testHashCode() {
    ConcurrentHashMap<Integer,String> map = map5();
    int sum = 0;
    for (Map.Entry<Integer,String> e : map.entrySet())
        sum += e.getKey().hashCode() ^ e.getValue().hashCode();
    assertEquals(sum, map.hashCode());
}