Fixing NullPointerException while extracting cookies.

This commit is contained in:
marcins78@gmail.com
2013-01-13 10:23:08 +00:00
parent 5955e98bb3
commit 9ebb53d858
2 changed files with 29 additions and 24 deletions

View File

@@ -2,14 +2,13 @@ package com.gempukku.lotro.async;
import org.jboss.netty.handler.codec.http.Cookie;
import org.jboss.netty.handler.codec.http.CookieDecoder;
import static org.jboss.netty.handler.codec.http.HttpHeaders.Names.COOKIE;
import org.jboss.netty.handler.codec.http.HttpRequest;
import java.util.*;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import static org.jboss.netty.handler.codec.http.HttpHeaders.Names.COOKIE;
public class LoggedUserHolder {
private long _loggedUserExpireLength = 1000 * 60 * 10; // 10 minutes session length
private long _expireCheckInterval = 1000 * 60; // check every minute
@@ -29,15 +28,18 @@ public class LoggedUserHolder {
_readWriteLock.readLock().lock();
try {
CookieDecoder cookieDecoder = new CookieDecoder();
Set<Cookie> cookies = cookieDecoder.decode(request.getHeader(COOKIE));
for (Cookie cookie : cookies) {
if (cookie.getName().equals("loggedUser")) {
String value = cookie.getValue();
if (value != null) {
String loggedUser = _users.get(value);
if (loggedUser != null) {
_lastAccess.put(value, System.currentTimeMillis());
return loggedUser;
String cookieHeader = request.getHeader(COOKIE);
if (cookieHeader != null) {
Set<Cookie> cookies = cookieDecoder.decode(cookieHeader);
for (Cookie cookie : cookies) {
if (cookie.getName().equals("loggedUser")) {
String value = cookie.getValue();
if (value != null) {
String loggedUser = _users.get(value);
if (loggedUser != null) {
_lastAccess.put(value, System.currentTimeMillis());
return loggedUser;
}
}
}
}
@@ -82,7 +84,7 @@ public class LoggedUserHolder {
while (true) {
_readWriteLock.writeLock().lock();
try {
long currentTime = System.currentTimeMillis();
long currentTime = System.currentTimeMillis();
Iterator<Map.Entry<String, Long>> iterator = _lastAccess.entrySet().iterator();
if (iterator.hasNext()) {
Map.Entry<String, Long> lastAccess = iterator.next();

View File

@@ -219,19 +219,22 @@ public class GameRequestHandler extends LotroServerRequestHandler implements Uri
private Set<Phase> getAutoPassPhases(HttpRequest request) {
CookieDecoder cookieDecoder = new CookieDecoder();
Set<Cookie> cookies = cookieDecoder.decode(request.getHeader(HttpHeaders.Names.COOKIE));
for (Cookie cookie : cookies) {
if (cookie.getName().equals("autoPassPhases")) {
final String[] phases = cookie.getValue().split("0");
Set<Phase> result = new HashSet<Phase>();
for (String phase : phases)
result.add(Phase.valueOf(phase));
return result;
String cookieHeader = request.getHeader(HttpHeaders.Names.COOKIE);
if (cookieHeader != null) {
Set<Cookie> cookies = cookieDecoder.decode(cookieHeader);
for (Cookie cookie : cookies) {
if (cookie.getName().equals("autoPassPhases")) {
final String[] phases = cookie.getValue().split("0");
Set<Phase> result = new HashSet<Phase>();
for (String phase : phases)
result.add(Phase.valueOf(phase));
return result;
}
}
for (Cookie cookie : cookies) {
if (cookie.getName().equals("autoPass") && cookie.getValue().equals("false"))
return Collections.emptySet();
}
}
for (Cookie cookie : cookies) {
if (cookie.getName().equals("autoPass") && cookie.getValue().equals("false"))
return Collections.emptySet();
}
return _autoPassDefault;
}