2016-10-27 1 views
2

Ich habe diese ConcurrentMapjava ConcurrentMap erhalten in null

ConcurrentMap<String, Byte[]> companyLogo = new MapMaker() 
        .concurrencyLevel(Runtime.getRuntime().availableProcessors()) 
        .weakKeys() 
        .initialCapacity(1000) 
        .expiration(24, TimeUnit.HOURS) 
        .makeMap(); 

und dieses Stück Code

companyLogo.put("cpr48124", ArrayUtils.toObject(resize (request, ((Byte[])request.getSession().getAttribute(COMPANY_LOGO_KEY+ imageId))))); 
companyLogo.get("cpr48124"); 

Aber companyLogo.get("cpr48124"); null ist. Wie kann es möglich sein?

+0

versuchen, diese zu drucken: ArrayUtils.toObject (. Ändern der Größe (Anfrage, ((Byte []) request.getSession() getAttribute (COMPANY_LOGO_KEY + imageId)))) – Arctigor

+1

Ich bin nicht vertraut mit 'MapMaker' ist, aber ich denke, dass "weakKeys" dein Problem sein könnte. – bradimus

+0

Hast du es mit einem anderen Byte [] versucht, ich meine "ssssss" .getBytes() ... oder etwas ähnliches, nur um es zu testen ?. Es könnte ein Problem des Session-Attributs sein –

Antwort

1

Ich bin nicht vertraut mit MapMaker ist, aber ich würde vermuten, dass weakKeys könnte Ihr Problem sein.

Es ist wahrscheinlich, dass die "Schwäche" Ihres neuen Eintrags es nicht verfügbar macht, da es keine weiteren Verweise darauf gibt.