2016-10-27 3 views
2

У меня есть этот ConcurrentMapJava ConcurrentMap получить в нуль

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

и этот кусок кода

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

Но companyLogo.get("cpr48124"); является нулевым. Как это возможно?

+0

попробуйте распечатать эту: ArrayUtils.toObject (. Размер (запрос, ((Byte []) request.getSession() GetAttribute (COMPANY_LOGO_KEY + ImageID)))) – Arctigor

+1

Я не знаком с 'MapMaker' есть, но я бы предположил, что 'weakKeys' может быть вашей проблемой. – bradimus

+0

Вы пробовали с другим байтом [], я имею в виду «ssssss» .getBytes() ... или что-то подобное, просто чтобы проверить его ?. Это может быть проблема атрибута вашего сеанса –

ответ

1

Я не знаком с MapMaker, но я думаю, что weakKeys может быть вашей проблемой.

Вполне вероятно, что «слабость» вашей новой записи делает ее недоступной, поскольку нет других ссылок на нее.

Смежные вопросы