Java 类java.util.WeakHashMap 实例源码

项目:Bing    文件:DownloadHandler.java   
public DownloadHandler(String url,
                       WeakHashMap<String, Object> params,
                       IRequest request,
                       String downDir,
                       String extension,
                       String name,
                       ISuccess success,
                       IFailure failure,
                       IError error) {
    this.URL = url;
    this.PARAMS = params;
    this.REQUEST = request;
    this.DOWNLOAD_DIR = downDir;
    this.EXTENSION = extension;
    this.NAME = name;
    this.SUCCESS = success;
    this.FAILURE = failure;
    this.ERROR = error;
}
项目:aos-MediaLib    文件:ImageViewSetter.java   
/**
 * Creates a new instance.
 * @param context
 * @param config - may be null, default will be used
 */
public ImageViewSetter(Context context, ImageViewSetterConfiguration config) {
    mConfig = (config == null) ? ImageViewSetterConfiguration.getDefault() : config;
    mTaskMap = Collections.synchronizedMap(new WeakHashMap<ImageView, String>());

    if (mConfig.interruptThreads) {
        mThreadMap = Collections.synchronizedMap(new WeakHashMap<ImageView, Thread>());
        mThreadLock = new MultiLock<ImageView>();
    } else {
        mThreadMap = null;
        mThreadLock = null;
    }

    mHandler = new Handler(context.getMainLooper(), new ForegroundHandler());
    mCache = mConfig.useCache ?
            new BitmapMemoryCache(mConfig.cacheSize) : null;

    mDefaultDrawable = mConfig.whileLoading;
}
项目:incubator-netbeans    文件:ClassLoaderManager.java   
static void initialize(ProfilerServer inProfilerServer) {
    try {
        Class classLoaderClass = ClassLoader.class;
        Class[] stringArg = new Class[] { String.class };
        findLoadedClassMethod = classLoaderClass.getDeclaredMethod("findLoadedClass", stringArg); // NOI18N
        findLoadedClassMethod.setAccessible(true); // REQUIRED to suppress
        findBootstrapClassMethod = classLoaderClass.getDeclaredMethod("findBootstrapClass", stringArg); // NOI18N
        findBootstrapClassMethod.setAccessible(true); // access checks
    } catch (Exception ex) {
        System.err.println(ENGINE_WARNING+"Cannot use ClassLoader.findLoadedClass() and/or ClassLoader.findBootstrapClass() in ClassLoaderManager"); // NOI18N
        if (DEBUG) ex.printStackTrace(System.err);
        findLoadedClassMethod = null;
        findBootstrapClassMethod = null;          
    }

    // This is done to just initialize some reflection classes, which may otherwise be initialized only when
    // this class is used for the first time, and thus may cause endless class load recursion
    ClassLoaderManager clm = new ClassLoaderManager(ClassLoader.getSystemClassLoader(), 0);
    clm.getLoadedClass("java.lang.String"); // NOI18N

    profilerServer = inProfilerServer;

    manMap = new WeakHashMap();
    manVec = new Vector();
    rq = new ReferenceQueue();
}
项目:YouTube-Thumbnail-View    文件:ThumbnailLoader.java   
private ThumbnailLoader(@Nullable Context context, @Nullable String googleApiKey) {
   String metaGoogleApiKey = googleApiKey;
   if (context != null) {
      try {
         final ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
         if (appInfo.metaData != null) {
            metaGoogleApiKey = appInfo.metaData.getString("com.codewaves.youtubethumbnailview.ApiKey");
         }
      }
      catch (PackageManager.NameNotFoundException e) {
         // Ignore
      }
   }

   final BlockingQueue<Runnable> taskQueue = new LinkedBlockingQueue<>();
   executor = new ThreadPoolExecutor(DEFAULT_THREAD_POOL_SIZE, DEFAULT_THREAD_POOL_SIZE, 0L, TimeUnit.MILLISECONDS, taskQueue);

   requestMap = new WeakHashMap<>();
   defaultInfoDownloader = new ApiVideoInfoDownloader(metaGoogleApiKey);
   defaultImageLoader = new SimpleImageLoader();
}
项目:openjdk-jdk10    文件:StyleContext.java   
private void readObject(ObjectInputStream s)
  throws ClassNotFoundException, IOException
{
    fontSearch = new FontKey(null, 0, 0);
    fontTable = new Hashtable<>();
    search = new SimpleAttributeSet();
    attributesPool = Collections.
            synchronizedMap(new WeakHashMap<SmallAttributeSet,
                    WeakReference<SmallAttributeSet>>());

    ObjectInputStream.GetField f = s.readFields();
    Style newStyles = (Style) f.get("styles", null);
    if (newStyles == null) {
        throw new InvalidObjectException("Null styles");
    }
    styles = newStyles;
    unusedSets = f.get("unusedSets", 0);
}
项目:ThinkingInJavaStudy    文件:Test.java   
public static void main(String[] strs) {
    int size = 100;
    Key[] a = new Key[100];
    WeakHashMap<Key, Value> weakHashMap = new WeakHashMap<>();

    for (int i = 0; i < size; i++) {
        Key key = new Key(i+"");
        Value value = new Value(i + "");
        if (i % 3 == 0) {
            a[i] = key;
        }
        weakHashMap.put(key, value);
    }

    System.gc();

    System.out.println(weakHashMap);
}
项目:openjdk-systemtest    文件:HashtableCreator.java   
private Map<Object,Object> getWeakHashMap(Map<Object,Object> backingMap) {
    /*
     * Construct a weak hash map by copying the backingMap
     * The backing map must be kept alive as long as the returned map is
     * in scope, otherwise the contents will all end up garbage collected.
     * Track the WeakhashMap using a PhantomReference queue, so that the 
     * backingmaps can be freed when the WeakHashMap has been GC.
     */
    WeakHashMap<Object,Object> rv = new WeakHashMap<Object,Object>(backingMap);
    PhantomReference<WeakHashMap<Object,Object>> ref =
            new PhantomReference<WeakHashMap<Object,Object>>(rv, backingMapQueue);

    synchronized(backingMaps){
        backingMaps.put(ref, backingMap);
    }

    return rv;
}
项目:OpenJSharp    文件:PropertyListeners.java   
/**
 * Add a property listener to this object.
 *
 * @param propertyMap The property listener that is added.
 */
synchronized final void addListener(final String key, final PropertyMap propertyMap) {
    if (Context.DEBUG) {
        listenersAdded++;
    }
    if (listeners == null) {
        listeners = new WeakHashMap<>();
    }

    WeakPropertyMapSet set = listeners.get(key);
    if (set == null) {
        set = new WeakPropertyMapSet();
        listeners.put(key, set);
    }
    if (!set.contains(propertyMap)) {
        set.add(propertyMap);
    }
}
项目:gemini.blueprint    文件:WeakCollectionTest.java   
public void testWeakHashMap() {
    Map weakMap = new WeakHashMap();

    for (int i = 0; i < 10; i++) {
        weakMap.put(new Object(), null);
    }

    GCTests.assertGCed(new WeakReference(new Object()));

    Set entries = weakMap.entrySet();

    for (Iterator iter = entries.iterator(); iter.hasNext();) {
        Map.Entry entry = (Map.Entry) iter.next();
        assertNull(entry.getKey());
    }

}
项目:OpenJSharp    文件:TCPTransport.java   
/**
 * Verify that the given AccessControlContext has permission to
 * accept this connection.
 */
void checkAcceptPermission(SecurityManager sm,
                           AccessControlContext acc)
{
    /*
     * Note: no need to synchronize on cache-related fields, since this
     * method only gets called from the ConnectionHandler's thread.
     */
    if (sm != cacheSecurityManager) {
        okContext = null;
        authCache = new WeakHashMap<AccessControlContext,
                                    Reference<AccessControlContext>>();
        cacheSecurityManager = sm;
    }
    if (acc.equals(okContext) || authCache.containsKey(acc)) {
        return;
    }
    InetAddress addr = socket.getInetAddress();
    String host = (addr != null) ? addr.getHostAddress() : "*";

    sm.checkAccept(host, socket.getPort());

    authCache.put(acc, new SoftReference<AccessControlContext>(acc));
    okContext = acc;
}
项目:datatree    文件:Cache.java   
public Cache(final int capacity, final boolean fair) {
    ReentrantReadWriteLock lock = new ReentrantReadWriteLock(fair);
    readerLock = lock.readLock();
    writerLock = lock.writeLock();
    weakCache = new WeakHashMap<KEY, VALUE>(capacity);
    hardCache = new LinkedHashMap<KEY, VALUE>(capacity + 1, 1.0f, true) {

        private static final long serialVersionUID = 5994447707758047152L;

        protected final boolean removeEldestEntry(Map.Entry<KEY, VALUE> entry) {
            if (this.size() > capacity) {
                weakCache.put(entry.getKey(), entry.getValue());
                return true;
            }
            return false;
        };
    };
}
项目:UniversalEventBus    文件:RxBus.java   
/**
 * With this constructor the {@link RxBus} use a {@link PublishSubject} and instantiate it calling the static method {@code PublishSubject.create()}
 * @see PublishSubject
 */
public RxBus() {
    super((Subject<T, R>) PublishSubject.create());
    mSubscriptionsList = new WeakHashMap<>();
}
项目:RNLearn_Project1    文件:JavaScriptModuleRegistry.java   
public JavaScriptModuleRegistry(List<JavaScriptModuleRegistration> config) {
  mModuleInstances = new WeakHashMap<>();
  mModuleRegistrations = new HashMap<>();
  for (JavaScriptModuleRegistration registration : config) {
    mModuleRegistrations.put(registration.getModuleInterface(), registration);
  }
}
项目:GitHub    文件:Picasso.java   
Picasso(Context context, Dispatcher dispatcher, Cache cache, Listener listener,
    RequestTransformer requestTransformer, List<RequestHandler> extraRequestHandlers, Stats stats,
    Bitmap.Config defaultBitmapConfig, boolean indicatorsEnabled, boolean loggingEnabled) {
  this.context = context;
  this.dispatcher = dispatcher;
  this.cache = cache;
  this.listener = listener;
  this.requestTransformer = requestTransformer;
  this.defaultBitmapConfig = defaultBitmapConfig;

  int builtInHandlers = 7; // Adjust this as internal handlers are added or removed.
  int extraCount = (extraRequestHandlers != null ? extraRequestHandlers.size() : 0);
  List<RequestHandler> allRequestHandlers = new ArrayList<>(builtInHandlers + extraCount);

  // ResourceRequestHandler needs to be the first in the list to avoid
  // forcing other RequestHandlers to perform null checks on request.uri
  // to cover the (request.resourceId != 0) case.
  allRequestHandlers.add(new ResourceRequestHandler(context));
  if (extraRequestHandlers != null) {
    allRequestHandlers.addAll(extraRequestHandlers);
  }
  allRequestHandlers.add(new ContactsPhotoRequestHandler(context));
  allRequestHandlers.add(new MediaStoreRequestHandler(context));
  allRequestHandlers.add(new ContentStreamRequestHandler(context));
  allRequestHandlers.add(new AssetRequestHandler(context));
  allRequestHandlers.add(new FileRequestHandler(context));
  allRequestHandlers.add(new NetworkRequestHandler(dispatcher.downloader, stats));
  requestHandlers = Collections.unmodifiableList(allRequestHandlers);

  this.stats = stats;
  this.targetToAction = new WeakHashMap<>();
  this.targetToDeferredRequestCreator = new WeakHashMap<>();
  this.indicatorsEnabled = indicatorsEnabled;
  this.loggingEnabled = loggingEnabled;
  this.referenceQueue = new ReferenceQueue<>();
  this.cleanupThread = new CleanupThread(referenceQueue, HANDLER);
  this.cleanupThread.start();
}
项目:openjdk-jdk10    文件:TCPChannel.java   
/**
 * Checks if the current caller has sufficient privilege to make
 * a connection to the remote endpoint.
 * @exception SecurityException if caller is not allowed to use this
 * Channel.
 */
private void checkConnectPermission() throws SecurityException {
    SecurityManager security = System.getSecurityManager();
    if (security == null)
        return;

    if (security != cacheSecurityManager) {
        // The security manager changed: flush the cache
        okContext = null;
        authcache = new WeakHashMap<AccessControlContext,
                                    Reference<AccessControlContext>>();
        cacheSecurityManager = security;
    }

    AccessControlContext ctx = AccessController.getContext();

    // If ctx is the same context as last time, or if it
    // appears in the cache, bypass the checkConnect.
    if (okContext == null ||
        !(okContext.equals(ctx) || authcache.containsKey(ctx)))
    {
        security.checkConnect(ep.getHost(), ep.getPort());
        authcache.put(ctx, new SoftReference<AccessControlContext>(ctx));
        // A WeakHashMap is transformed into a SoftHashSet by making
        // each value softly refer to its own key (Peter's idea).
    }
    okContext = ctx;
}
项目:incubator-netbeans    文件:AttrSet.java   
final AttrSet cachedOverride(Object override) {
    AttrSet attrSet;
    if (overrideCache == null) {
        overrideCache = new WeakHashMap<AttrSet,WeakReference<AttrSet>>(4);
        attrSet = null;
    } else {
        WeakReference<AttrSet> ref = (WeakReference<AttrSet>) ((Map<?,?>)overrideCache).get(override);
        attrSet = (ref != null) ? ref.get() : null;
    }
    overrideGets++;
    return attrSet;
}
项目:data-mediator    文件:Binder.java   
/**
 * create binder for target data mediator.
 * @param mMediator the target data mediator.
 */
protected Binder(DataMediator<T> mMediator) {
    Throwables.checkNull(mMediator);
    this.mMediator = mMediator;
    this.mMap = shouldUseWeakMap() ? new WeakHashMap<Object, DataMediatorCallback<T>>()
            : new HashMap<Object, DataMediatorCallback<T>>();
}
项目:monarch    文件:Configuration.java   
/**
 * Load a class by name, returning null rather than throwing an exception if it couldn't be
 * loaded. This is to avoid the overhead of creating an exception.
 *
 * @param name the class name
 * @return the class object, or null if it could not be found.
 */
public Class<?> getClassByNameOrNull(String name) {
  Map<String, Class<?>> map;

  synchronized (CACHE_CLASSES) {
    map = CACHE_CLASSES.get(classLoader);
    if (map == null) {
      map = Collections.synchronizedMap(new WeakHashMap<String, Class<?>>());
      CACHE_CLASSES.put(classLoader, map);
    }
  }

  Class<?> clazz = map.get(name);
  if (clazz == null) {
    try {
      clazz = Class.forName(name, true, classLoader);
    } catch (ClassNotFoundException e) {
      // Leave a marker that the class isn't found
      map.put(name, NEGATIVE_CACHE_SENTINEL);
      return null;
    }
    // two putters can race here, but they'll put the same class
    map.put(name, clazz);
    return clazz;
  } else if (clazz == NEGATIVE_CACHE_SENTINEL) {
    return null; // not found
  } else {
    // cache hit
    return clazz;
  }
}
项目:incubator-netbeans    文件:LineBreakpoint.java   
/**
 * Set the thread filter for a specific debugger session. This restricts
 * the breakpoint to specific threads in that session.
 * @param session the debugger session
 * @param threads the threads or <code>null</code> to unset the filter.
 */
public void setThreadFilters(JPDADebugger session, JPDAThread[] threads) {
    if (threadFilters == null) {
        threadFilters = new WeakHashMap<JPDADebugger, JPDAThread[]>();
    }
    if (threads != null) {
        threadFilters.put(session, threads);
    } else {
        threadFilters.remove(session);
    }
    firePropertyChange(PROP_THREAD_FILTERS, null,
            threads != null ?
                new Object[] { session, threads } : null);
}
项目:incubator-netbeans    文件:MethodBreakpoint.java   
/**
 * Set the instance filter for a specific debugger session. This restricts
 * the breakpoint to specific instances in that session.
 * @param session the debugger session
 * @param instances the object instances or <code>null</code> to unset the filter.
 */
public void setInstanceFilters(JPDADebugger session, ObjectVariable[] instances) {
    if (instanceFilters == null) {
        instanceFilters = new WeakHashMap<JPDADebugger, ObjectVariable[]>();
    }
    if (instances != null) {
        instanceFilters.put(session, instances);
    } else {
        instanceFilters.remove(session);
    }
    firePropertyChange(PROP_INSTANCE_FILTERS, null,
            instances != null ?
                new Object[] { session, instances } : null);
}
项目:incubator-netbeans    文件:MethodBreakpoint.java   
/**
 * Set the thread filter for a specific debugger session. This restricts
 * the breakpoint to specific threads in that session.
 * @param session the debugger session
 * @param threads the threads or <code>null</code> to unset the filter.
 */
public void setThreadFilters(JPDADebugger session, JPDAThread[] threads) {
    if (threadFilters == null) {
        threadFilters = new WeakHashMap<JPDADebugger, JPDAThread[]>();
    }
    if (threads != null) {
        threadFilters.put(session, threads);
    } else {
        threadFilters.remove(session);
    }
    firePropertyChange(PROP_THREAD_FILTERS, null,
            threads != null ?
                new Object[] { session, threads } : null);
}
项目:incubator-netbeans    文件:TimesCollectorPeer.java   
/** Creates a new instance of TimesCollectorPeer */
private TimesCollectorPeer() {
    files = new ArrayList<Reference<Object>>();
    fo2Key2Desc = new WeakHashMap<Object, Map<String, Description>>();

    pcs = new PropertyChangeSupport(this);
}
项目:incubator-netbeans    文件:Manager.java   
/**
 */
private void addDisplay(final TestSession session) {
    if (displaysMap == null) {
        displaysMap = new WeakHashMap<TestSession,Boolean>(4);
    }
    displaysMap.put(session, Boolean.TRUE);
}
项目:incubator-netbeans    文件:MylynSupport.java   
@NbBundle.Messages({
    "LBL_LocalTaskRepository.displayName=Local Tasks"
})
private MylynSupport () {
    taskRepositoryManager = new TaskRepositoryManager();
    taskRepositoryManager.addRepositoryConnector(new LocalRepositoryConnector());
    localTaskRepository = new TaskRepository(LocalRepositoryConnector.CONNECTOR_KIND, LocalRepositoryConnector.REPOSITORY_URL);
    localTaskRepository.setRepositoryLabel(Bundle.LBL_LocalTaskRepository_displayName());
    taskRepositoryManager.addRepository(localTaskRepository);

    taskList = new TaskList();
    repositoryModel = new RepositoryModel(taskList, taskRepositoryManager);
    synchronizationManager = new SynchronizationManger(repositoryModel);
    taskActivityManager = new TaskActivityManager(taskRepositoryManager, taskList);
    TaskDataStore taskDataStore = new TaskDataStore(taskRepositoryManager);
    taskDataManager = new TaskDataManager(taskDataStore, taskRepositoryManager, taskList,
            taskActivityManager, synchronizationManager);

    String storagePath = Places.getUserDirectory().getAbsolutePath()
            + "/var/tasks/mylyn".replace("/", File.separator); //NOI18N
    taskListStorageFile = new File(storagePath, ITasksCoreConstants.DEFAULT_TASK_LIST_FILE);
    taskDataManager.setDataPath(storagePath);
    taskListWriter = new TaskListExternalizer(repositoryModel, taskRepositoryManager);
    AccessorImpl.getInstance(); // initializes Accessor
    saveTask = RP.create(new Runnable() {
        @Override
        public void run () {
            try {
                persist(false);
            } catch (CoreException ex) {
                LOG.log(Level.WARNING, null, ex);
            }
        }
    });
    unsubmittedTaskContainers = new WeakHashMap<TaskRepository, UnsubmittedTasksContainer>();
    taskDataListeners = new CopyOnWriteArrayList<TaskDataListener>();
    taskListeners = new WeakHashMap<ITask, List<TaskListener>>();
    attachListeners();
}
项目:OpenJSharp    文件:RMIConnector.java   
private void initTransients() {
    rmbscMap = new WeakHashMap<Subject, WeakReference<MBeanServerConnection>>();
    connected = false;
    terminated = false;

    connectionBroadcaster = new NotificationBroadcasterSupport();
}
项目:RNLearn_Project1    文件:JavaScriptModuleRegistry.java   
public JavaScriptModuleRegistry(List<JavaScriptModuleRegistration> config) {
  mModuleInstances = new WeakHashMap<>();
  mModuleRegistrations = new HashMap<>();
  for (JavaScriptModuleRegistration registration : config) {
    mModuleRegistrations.put(registration.getModuleInterface(), registration);
  }
}
项目:incubator-netbeans    文件:DefaultTopComponentLookup.java   
@Override
protected synchronized void beforeLookup(Template<?> t) {
    if ((attachedTo == null) && isNodeQuery(t.getType())) {
        Lookup[] arr = getLookups();

        attachedTo = new WeakHashMap<Lookup,Lookup.Result>(arr.length * 2);

        for (int i = 0; i < (arr.length - 2); i++) {
            Lookup.Result<?> res = arr[i].lookup(t);
            res.addLookupListener(listener);
            attachedTo.put(arr[i], res);
        }
    }
}
项目:Bing    文件:MainActivity.java   
public void testRx1(){
    final String url = "about.php";
    final WeakHashMap<String, Object> params = new WeakHashMap<>();
    RestCreator.getRxRestService().get(url,params)
            .compose(this.<String>bindToLifecycle())
            .compose(RxSchedulers.<String>compose())
            .subscribe(new CommonObserver<String>(this) {
                @Override
                public void onNext(@NonNull String s) {
                    Toast.makeText(MainActivity.this, s, Toast.LENGTH_LONG).show();
                }
            });
}
项目:openjdk-jdk10    文件:PropertyMap.java   
/**
 * Track the modification of the map.
 *
 * @param property Mapping property.
 * @param newMap   Modified {@link PropertyMap}.
 */
private void addToHistory(final Property property, final PropertyMap newMap) {
    if (history == null) {
        history = new WeakHashMap<>();
    }

    history.put(property, softReferenceDerivationLimit == 0 ? new WeakReference<>(newMap) : new SoftReference<>(newMap));
}
项目:rapidminer    文件:ProcessRendererModel.java   
public ProcessRendererModel() {
    this.eventListener = new EventListenerList();

    this.processes = Collections.unmodifiableList(Collections.<ExecutionUnit> emptyList());
    this.selectedOperators = Collections.unmodifiableList(Collections.<Operator> emptyList());
    this.draggedOperators = Collections.unmodifiableList(Collections.<Operator> emptyList());
    this.processSizes = new WeakHashMap<>();
    this.portNumbers = new WeakHashMap<>();
    this.snapToGrid = Boolean.parseBoolean(ParameterService
            .getParameterValue(RapidMinerGUI.PROPERTY_RAPIDMINER_GUI_SNAP_TO_GRID));
    this.hoveringProcessIndex = -1;

    // listen for snapToGrid changes
    ParameterService.registerParameterChangeListener(new ParameterChangeListener() {

        @Override
        public void informParameterSaved() {
            // ignore
        }

        @Override
        public void informParameterChanged(String key, String value) {
            if (RapidMinerGUI.PROPERTY_RAPIDMINER_GUI_SNAP_TO_GRID.equals(key)) {
                setSnapToGrid(Boolean.parseBoolean(value));
            }
        }
    });
}
项目:hadoop-oss    文件:Configuration.java   
/**
 * Load a class by name, returning null rather than throwing an exception
 * if it couldn't be loaded. This is to avoid the overhead of creating
 * an exception.
 * 
 * @param name the class name
 * @return the class object, or null if it could not be found.
 */
public Class<?> getClassByNameOrNull(String name) {
  Map<String, WeakReference<Class<?>>> map;

  synchronized (CACHE_CLASSES) {
    map = CACHE_CLASSES.get(classLoader);
    if (map == null) {
      map = Collections.synchronizedMap(
        new WeakHashMap<String, WeakReference<Class<?>>>());
      CACHE_CLASSES.put(classLoader, map);
    }
  }

  Class<?> clazz = null;
  WeakReference<Class<?>> ref = map.get(name); 
  if (ref != null) {
     clazz = ref.get();
  }

  if (clazz == null) {
    try {
      clazz = Class.forName(name, true, classLoader);
    } catch (ClassNotFoundException e) {
      // Leave a marker that the class isn't found
      map.put(name, new WeakReference<Class<?>>(NEGATIVE_CACHE_SENTINEL));
      return null;
    }
    // two putters can race here, but they'll put the same class
    map.put(name, new WeakReference<Class<?>>(clazz));
    return clazz;
  } else if (clazz == NEGATIVE_CACHE_SENTINEL) {
    return null; // not found
  } else {
    // cache hit
    return clazz;
  }
}
项目:openjdk-jdk10    文件:SunToolkit.java   
public synchronized void setWindowDeactivationTime(Window w, long time) {
    AppContext ctx = getAppContext(w);
    if (ctx == null) {
        return;
    }
    @SuppressWarnings("unchecked")
    WeakHashMap<Window, Long> map = (WeakHashMap<Window, Long>)ctx.get(DEACTIVATION_TIMES_MAP_KEY);
    if (map == null) {
        map = new WeakHashMap<Window, Long>();
        ctx.put(DEACTIVATION_TIMES_MAP_KEY, map);
    }
    map.put(w, time);
}
项目:openjdk-jdk10    文件:ORBImpl.java   
public synchronized void setTypeCodeForClass(Class c, TypeCodeImpl tci)
{
    checkShutdownState();

    if (typeCodeForClassMap == null)
        typeCodeForClassMap = Collections.synchronizedMap(
            new WeakHashMap(64));
    // Store only one TypeCode per class.
    if ( ! typeCodeForClassMap.containsKey(c))
        typeCodeForClassMap.put(c, tci);
}
项目:galop    文件:ServerImpl.java   
@Inject
ServerImpl(final ProxySocketFactory proxySocketFactory, final TargetSocketFactory targetSocketFactory,
           final ConnectionHandlerFactory connectionHandlerFactory, final ExecutorService executorService) {
    this.proxySocketFactory = checkNotNull(proxySocketFactory, "proxySocketFactory");
    this.targetSocketFactory = checkNotNull(targetSocketFactory, "targetSocketFactory");
    this.connectionHandlerFactory = checkNotNull(connectionHandlerFactory, "connectionHandlerFactory");
    this.executorService = checkNotNull(executorService, "executorService");
    this.connectionHandlers = Collections.newSetFromMap(new WeakHashMap<>());
}
项目:boohee_v5.6    文件:SuggestionsAdapter.java   
public SuggestionsAdapter(Context context, SearchView searchView, SearchableInfo searchable, WeakHashMap<String, ConstantState> outsideDrawablesCache) {
    super(context, searchView.getSuggestionRowLayout(), null, true);
    this.mSearchView = searchView;
    this.mSearchable = searchable;
    this.mCommitIconResId = searchView.getSuggestionCommitIconResId();
    this.mProviderContext = context;
    this.mOutsideDrawablesCache = outsideDrawablesCache;
}
项目:CSipSimple    文件:MenuWrapper.java   
public void invalidate() {
    if (mNativeMap.isEmpty()) return;

    final WeakHashMap<android.view.MenuItem, MenuItem> menuMapCopy = new WeakHashMap<android.view.MenuItem, MenuItem>(mNativeMap.size());

    for (int i = 0; i < mNativeMenu.size(); i++) {
        final android.view.MenuItem item = mNativeMenu.getItem(i);
        menuMapCopy.put(item, mNativeMap.get(item));
    }

    mNativeMap.clear();
    mNativeMap.putAll(menuMapCopy);
}
项目:bskyblock    文件:FlyingMobEvents.java   
/**
 * @param plugin
 */
public FlyingMobEvents(BSkyBlock plugin) {
    this.plugin = plugin;
    this.mobSpawnInfo = new WeakHashMap<>();

    plugin.getServer().getScheduler().runTaskTimer(plugin, () -> {
        //Bukkit.getLogger().info("DEBUG: checking - mobspawn size = " + mobSpawnInfo.size());
        Iterator<Entry<Entity, Island>> it = mobSpawnInfo.entrySet().iterator();
        while (it.hasNext()) {
            Entry<Entity, Island> entry = it.next();
            if (entry.getKey() == null) {
                //Bukkit.getLogger().info("DEBUG: removing null entity");
                it.remove();
            } else {
                if (entry.getKey() instanceof LivingEntity) {
                    if (!entry.getValue().inIslandSpace(entry.getKey().getLocation())) {
                        //Bukkit.getLogger().info("DEBUG: removing entity outside of island");
                        it.remove();
                        // Kill mob
                        LivingEntity mob = (LivingEntity)entry.getKey();
                        mob.setHealth(0);
                        entry.getKey().remove();
                    } else {
                        //Bukkit.getLogger().info("DEBUG: entity " + entry.getKey().getName() + " is in island space");
                    }
                } else {
                    // Not living entity
                    it.remove();
                }
            }
        }
    }, 20L, 20L);
}
项目:OpenJSharp    文件:RemoteObjectInvocationHandler.java   
protected Map<Method,Long> computeValue(Class<?> remoteClass) {
    return new WeakHashMap<Method,Long>() {
        public synchronized Long get(Object key) {
            Long hash = super.get(key);
            if (hash == null) {
                Method method = (Method) key;
                hash = Util.computeMethodHash(method);
                put(method, hash);
            }
            return hash;
        }
    };
}
项目:openjdk-jdk10    文件:GraphPrinterDumpHandler.java   
private void ensureInitialized(Graph graph) {
    if (printer == null) {
        if (failuresCount >= FAILURE_LIMIT) {
            return;
        }
        previousInlineContext = new ArrayList<>();
        inlineContextMap = new WeakHashMap<>();
        DebugContext debug = graph.getDebug();
        try {
            printer = printerSupplier.get(graph);
        } catch (IOException e) {
            handleException(debug, e);
        }
    }
}
项目:guava-mock    文件:GcFinalizationTest.java   
public void testAwaitDone_FinalizationPredicate() {
  final WeakHashMap<Object, Object> map = new WeakHashMap<Object, Object>();
  map.put(new Object(), Boolean.TRUE);
  GcFinalization.awaitDone(new FinalizationPredicate() {
    public boolean isDone() {
      return map.isEmpty();
    }
  });
  assertTrue(map.isEmpty());
}