void cleanExpiredEntry()

in jetcache-core/src/main/java/com/alicp/jetcache/embedded/LinkedHashMapCache.java [63:91]


        void cleanExpiredEntry() {
            lock.lock();
            long t = System.currentTimeMillis();
            try {
                for (Iterator it = entrySet().iterator(); it.hasNext(); ) {
                    Map.Entry en = (Map.Entry) it.next();
                    Object value = en.getValue();
                    if (value != null) {
                        CacheValueHolder h;
                        try {
                            h = (CacheValueHolder) value;
                        } catch (ClassCastException e) {
                            // assert false
                            logger.error("value of key " + en.getKey() + " is not a CacheValueHolder. type=" + value.getClass());
                            it.remove();
                            continue;
                        }
                        if (t >= h.getExpireTime()) {
                            it.remove();
                        }
                    } else {
                        // assert false
                        logger.error("key " + en.getKey() + " is null");
                    }
                }
            } finally {
                lock.unlock();
            }
        }