Adding exception logging to ALL request handlers. Every catch should now log the exception to file instead of swallowing it. Also added necessary default value to collection blob.
This commit is contained in:
@@ -6,6 +6,8 @@ ALTER TABLE collection ADD `extra_info` VARCHAR(5000) NULL;
|
||||
|
||||
ALTER TABLE collection ADD CONSTRAINT uq_collection_player_type UNIQUE (player_id, type);
|
||||
|
||||
ALTER TABLE collection MODIFY COLUMN collection mediumblob NULL;
|
||||
|
||||
|
||||
CREATE TABLE `collection_entries` (
|
||||
`collection_id` int(11) NOT NULL,
|
||||
|
||||
@@ -116,7 +116,7 @@ public class GempukkuHttpRequestHandler extends SimpleChannelInboundHandler<Full
|
||||
|
||||
responseSender.writeError(exp.getStatus());
|
||||
} catch (Exception exp) {
|
||||
_log.error("Error while processing request", exp);
|
||||
_log.error("Error response for " + uri, exp);
|
||||
responseSender.writeError(500);
|
||||
}
|
||||
}
|
||||
@@ -281,6 +281,7 @@ public class GempukkuHttpRequestHandler extends SimpleChannelInboundHandler<Full
|
||||
} catch (Exception exp) {
|
||||
byte[] content = new byte[0];
|
||||
// Build the response object.
|
||||
_log.error("Error response for " + request.uri(), exp);
|
||||
FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1, HttpResponseStatus.INTERNAL_SERVER_ERROR, Unpooled.wrappedBuffer(content), null, EmptyHttpHeaders.INSTANCE);
|
||||
sendResponse(ctx, request, response);
|
||||
}
|
||||
@@ -355,6 +356,7 @@ public class GempukkuHttpRequestHandler extends SimpleChannelInboundHandler<Full
|
||||
} catch (IOException exp) {
|
||||
byte[] content = new byte[0];
|
||||
// Build the response object.
|
||||
_log.error("Error response for " + request.uri(), exp);
|
||||
FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1, HttpResponseStatus.valueOf(500), Unpooled.wrappedBuffer(content), convertToHeaders(null), EmptyHttpHeaders.INSTANCE);
|
||||
sendResponse(ctx, request, response);
|
||||
}
|
||||
|
||||
@@ -22,6 +22,7 @@ import com.gempukku.lotro.tournament.TournamentService;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
@@ -50,6 +51,8 @@ public class AdminRequestHandler extends LotroServerRequestHandler implements Ur
|
||||
private final AdminService _adminService;
|
||||
private final ChatServer _chatServer;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(AdminRequestHandler.class);
|
||||
|
||||
public AdminRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
_soloDraftDefinitions = extractObject(context, SoloDraftDefinitions.class);
|
||||
@@ -575,6 +578,7 @@ public class AdminRequestHandler extends LotroServerRequestHandler implements Ur
|
||||
responseWriter.writeHtmlResponse("OK");
|
||||
}
|
||||
catch (RuntimeException ex) {
|
||||
logHttpError(_log, 500, request.uri(), ex);
|
||||
throw new HttpProcessingException(500);
|
||||
}
|
||||
finally {
|
||||
@@ -688,6 +692,7 @@ public class AdminRequestHandler extends LotroServerRequestHandler implements Ur
|
||||
|
||||
responseWriter.writeHtmlResponse("OK");
|
||||
} catch (Exception e) {
|
||||
_log.error("Error response for " + request.uri(), e);
|
||||
responseWriter.writeHtmlResponse("Error handling request");
|
||||
} finally {
|
||||
postDecoder.destroy();
|
||||
|
||||
@@ -16,6 +16,7 @@ import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.QueryStringDecoder;
|
||||
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.commonmark.Extension;
|
||||
import org.commonmark.ext.autolink.AutolinkExtension;
|
||||
import org.commonmark.ext.gfm.strikethrough.StrikethroughExtension;
|
||||
@@ -45,6 +46,8 @@ public class ChatRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
private final Parser _markdownParser;
|
||||
private final HtmlRenderer _markdownRenderer;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(ChatRequestHandler.class);
|
||||
|
||||
public ChatRequestHandler(Map<Type, Object> context, LongPollingSystem longPollingSystem) {
|
||||
super(context);
|
||||
_chatServer = extractObject(context, ChatServer.class);
|
||||
@@ -116,10 +119,13 @@ public class ChatRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
longPollingSystem.processLongPollingResource(polledResource, pollableResource);
|
||||
}
|
||||
} catch (SubscriptionExpiredException exp) {
|
||||
logHttpError(_log, 410, request.uri(), exp);
|
||||
throw new HttpProcessingException(410);
|
||||
} catch (PrivateInformationException exp) {
|
||||
logHttpError(_log, 403, request.uri(), exp);
|
||||
throw new HttpProcessingException(403);
|
||||
} catch (ChatCommandErrorException exp) {
|
||||
logHttpError(_log, 400, request.uri(), exp);
|
||||
throw new HttpProcessingException(400);
|
||||
}
|
||||
} finally {
|
||||
@@ -216,8 +222,10 @@ public class ChatRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
|
||||
responseWriter.writeXmlResponse(doc);
|
||||
} catch (SubscriptionExpiredException exp) {
|
||||
logHttpError(_log, 410, "chat poller", exp);
|
||||
responseWriter.writeError(410);
|
||||
} catch (Exception exp) {
|
||||
logHttpError(_log, 500, "chat poller", exp);
|
||||
responseWriter.writeError(500);
|
||||
}
|
||||
processed = true;
|
||||
@@ -248,6 +256,7 @@ public class ChatRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
|
||||
responseWriter.writeXmlResponse(doc);
|
||||
} catch (PrivateInformationException exp) {
|
||||
logHttpError(_log, 403, request.uri(), exp);
|
||||
throw new HttpProcessingException(403);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.QueryStringDecoder;
|
||||
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
@@ -36,6 +37,8 @@ public class CollectionRequestHandler extends LotroServerRequestHandler implemen
|
||||
private final SortAndFilterCards _sortAndFilterCards;
|
||||
private final ImportCards _importCards;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(CollectionRequestHandler.class);
|
||||
|
||||
public CollectionRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
_leagueService = extractObject(context, LeagueService.class);
|
||||
|
||||
@@ -17,6 +17,7 @@ import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.QueryStringDecoder;
|
||||
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
|
||||
import org.apache.commons.lang.StringEscapeUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
@@ -38,6 +39,8 @@ public class DeckRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
private final SoloDraftDefinitions _draftLibrary;
|
||||
private final LotroServer _lotroServer;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(DeckRequestHandler.class);
|
||||
|
||||
public DeckRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
_deckDao = extractObject(context, DeckDAO.class);
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.gempukku.lotro.game.Player;
|
||||
import com.google.common.collect.Iterables;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
@@ -19,6 +20,8 @@ import java.util.Map;
|
||||
public class DeliveryRequestHandler extends LotroServerRequestHandler implements UriRequestHandler {
|
||||
private final TransferDAO _transferDAO;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(DeliveryRequestHandler.class);
|
||||
|
||||
public DeliveryRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
_transferDAO = extractObject(context, TransferDAO.class);
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.gempukku.lotro.game.Player;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.QueryStringDecoder;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
@@ -23,6 +24,8 @@ import java.util.Map;
|
||||
public class GameHistoryRequestHandler extends LotroServerRequestHandler implements UriRequestHandler {
|
||||
private final GameHistoryService _gameHistoryService;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(GameHistoryRequestHandler.class);
|
||||
|
||||
public GameHistoryRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ import io.netty.handler.codec.http.QueryStringDecoder;
|
||||
import io.netty.handler.codec.http.cookie.Cookie;
|
||||
import io.netty.handler.codec.http.cookie.ServerCookieDecoder;
|
||||
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
import org.w3c.dom.Node;
|
||||
@@ -39,6 +40,8 @@ public class GameRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
private final LongPollingSystem longPollingSystem;
|
||||
private final Set<Phase> _autoPassDefault = new HashSet<>();
|
||||
|
||||
private static final Logger _log = Logger.getLogger(GameRequestHandler.class);
|
||||
|
||||
public GameRequestHandler(Map<Type, Object> context, LongPollingSystem longPollingSystem) {
|
||||
super(context);
|
||||
_lotroServer = extractObject(context, LotroServer.class);
|
||||
@@ -143,6 +146,7 @@ public class GameRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
|
||||
_responseWriter.writeXmlResponse(doc);
|
||||
} catch (Exception e) {
|
||||
logHttpError(_log, 500, "game update poller", e);
|
||||
_responseWriter.writeError(500);
|
||||
}
|
||||
_processed = true;
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.gempukku.lotro.async.handler;
|
||||
|
||||
import com.gempukku.lotro.SubscriptionConflictException;
|
||||
import com.gempukku.lotro.SubscriptionExpiredException;
|
||||
import com.gempukku.lotro.async.GempukkuHttpRequestHandler;
|
||||
import com.gempukku.lotro.async.HttpProcessingException;
|
||||
import com.gempukku.lotro.async.ResponseWriter;
|
||||
import com.gempukku.lotro.collection.CollectionsManager;
|
||||
@@ -43,7 +42,7 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
private final LotroServer _lotroServer;
|
||||
private final LongPollingSystem longPollingSystem;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(GempukkuHttpRequestHandler.class);
|
||||
private static final Logger _log = Logger.getLogger(HallRequestHandler.class);
|
||||
|
||||
public HallRequestHandler(Map<Type, Object> context, LongPollingSystem longPollingSystem) {
|
||||
super(context);
|
||||
@@ -104,7 +103,7 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
responseWriter.writeXmlResponse(null);
|
||||
return;
|
||||
} catch (HallException ex) {
|
||||
|
||||
_log.error("Error response for " + request.uri(), ex);
|
||||
}
|
||||
responseWriter.writeXmlResponse(marshalException(e));
|
||||
}
|
||||
@@ -186,6 +185,7 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
_log.error("Error response for " + request.uri(), ex);
|
||||
responseWriter.writeXmlResponse(marshalException(new HallException("Failed to create table. Please try again later.")));
|
||||
}
|
||||
finally {
|
||||
@@ -219,6 +219,7 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
_hallServer.joinQueue(queueId, resourceOwner, deckName);
|
||||
responseWriter.writeXmlResponse(null);
|
||||
} catch (HallException e) {
|
||||
_log.error("Error response for " + request.uri(), e);
|
||||
responseWriter.writeXmlResponse(marshalException(e));
|
||||
}
|
||||
} finally {
|
||||
@@ -378,7 +379,7 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
|
||||
responseWriter.writeXmlResponse(doc);
|
||||
} catch (HttpProcessingException exp) {
|
||||
_log.error("HTTP code " + exp.getStatus() + " response for " + request.uri(), exp);
|
||||
logHttpError(_log, exp.getStatus(), request.uri(), exp);
|
||||
responseWriter.writeError(exp.getStatus());
|
||||
} catch (Exception exp) {
|
||||
_log.error("Error response for " + request.uri(), exp);
|
||||
@@ -401,9 +402,11 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
longPollingSystem.processLongPollingResource(polledResource, pollableResource);
|
||||
}
|
||||
catch (SubscriptionExpiredException exp) {
|
||||
logHttpError(_log, 410, request.uri(), exp);
|
||||
responseWriter.writeError(410);
|
||||
}
|
||||
catch (SubscriptionConflictException exp) {
|
||||
logHttpError(_log, 409, request.uri(), exp);
|
||||
responseWriter.writeError(409);
|
||||
}
|
||||
} finally {
|
||||
@@ -450,6 +453,7 @@ public class HallRequestHandler extends LotroServerRequestHandler implements Uri
|
||||
|
||||
_responseWriter.writeXmlResponse(doc, headers);
|
||||
} catch (Exception exp) {
|
||||
logHttpError(_log, 500, _request.uri(), exp);
|
||||
_responseWriter.writeError(500);
|
||||
}
|
||||
_processed = true;
|
||||
|
||||
@@ -17,6 +17,7 @@ import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.QueryStringDecoder;
|
||||
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
@@ -34,6 +35,8 @@ public class LeagueRequestHandler extends LotroServerRequestHandler implements U
|
||||
private final LotroFormatLibrary _formatLibrary;
|
||||
private final LotroCardBlueprintLibrary _library;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(LeagueRequestHandler.class);
|
||||
|
||||
public LeagueRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
|
||||
|
||||
@@ -6,12 +6,16 @@ import com.gempukku.lotro.game.Player;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
public class LoginRequestHandler extends LotroServerRequestHandler implements UriRequestHandler {
|
||||
|
||||
private static final Logger _log = Logger.getLogger(LoginRequestHandler.class);
|
||||
|
||||
public LoginRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ import io.netty.handler.codec.http.cookie.ServerCookieEncoder;
|
||||
import io.netty.handler.codec.http.multipart.Attribute;
|
||||
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
|
||||
import io.netty.handler.codec.http.multipart.InterfaceHttpData;
|
||||
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Type;
|
||||
@@ -33,6 +33,8 @@ public class LotroServerRequestHandler {
|
||||
private final TransferDAO _transferDAO;
|
||||
private final CollectionsManager _collectionManager;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(LotroServerRequestHandler.class);
|
||||
|
||||
public LotroServerRequestHandler(Map<Type, Object> context) {
|
||||
_playerDao = extractObject(context, PlayerDAO.class);
|
||||
_loggedUserHolder = extractObject(context, LoggedUserHolder.class);
|
||||
|
||||
@@ -6,13 +6,13 @@ import com.gempukku.lotro.collection.CollectionsManager;
|
||||
import com.gempukku.lotro.db.vo.CollectionType;
|
||||
import com.gempukku.lotro.game.*;
|
||||
import com.gempukku.lotro.game.formats.LotroFormatLibrary;
|
||||
import com.gempukku.lotro.game.packs.SetDefinition;
|
||||
import com.gempukku.lotro.merchant.MerchantException;
|
||||
import com.gempukku.lotro.merchant.MerchantService;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.QueryStringDecoder;
|
||||
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
@@ -29,6 +29,8 @@ public class MerchantRequestHandler extends LotroServerRequestHandler implements
|
||||
private final LotroCardBlueprintLibrary _library;
|
||||
private final LotroFormatLibrary _formatLibrary;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(MerchantRequestHandler.class);
|
||||
|
||||
public MerchantRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
|
||||
@@ -66,6 +68,7 @@ public class MerchantRequestHandler extends LotroServerRequestHandler implements
|
||||
_merchantService.tradeForFoil(resourceOwner, blueprintId);
|
||||
responseWriter.writeXmlResponse(null);
|
||||
} catch (MerchantException exp) {
|
||||
_log.error("Error response for " + request.uri(), exp);
|
||||
responseWriter.writeXmlResponse(marshalException(exp));
|
||||
}
|
||||
} finally {
|
||||
@@ -85,6 +88,7 @@ public class MerchantRequestHandler extends LotroServerRequestHandler implements
|
||||
_merchantService.merchantBuysCard(resourceOwner, blueprintId, price);
|
||||
responseWriter.writeXmlResponse(null);
|
||||
} catch (MerchantException exp) {
|
||||
_log.error("Error response for " + request.uri(), exp);
|
||||
responseWriter.writeXmlResponse(marshalException(exp));
|
||||
}
|
||||
} finally {
|
||||
@@ -104,6 +108,7 @@ public class MerchantRequestHandler extends LotroServerRequestHandler implements
|
||||
_merchantService.merchantSellsCard(resourceOwner, blueprintId, price);
|
||||
responseWriter.writeXmlResponse(null);
|
||||
} catch (MerchantException exp) {
|
||||
_log.error("Error response for " + request.uri(), exp);
|
||||
responseWriter.writeXmlResponse(marshalException(exp));
|
||||
}
|
||||
} finally {
|
||||
|
||||
@@ -1,21 +1,23 @@
|
||||
package com.gempukku.lotro.async.handler;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.gempukku.lotro.async.HttpProcessingException;
|
||||
import com.gempukku.lotro.async.ResponseWriter;
|
||||
import com.gempukku.lotro.game.Player;
|
||||
import com.google.gson.Gson;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.QueryStringDecoder;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Map;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
public class PlayerInfoRequestHandler extends LotroServerRequestHandler implements UriRequestHandler {
|
||||
private final Gson JsonConvert = new Gson();
|
||||
|
||||
private static final Logger _log = Logger.getLogger(PlayerInfoRequestHandler.class);
|
||||
|
||||
public PlayerInfoRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.gempukku.lotro.game.Player;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.QueryStringDecoder;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
@@ -21,6 +22,8 @@ import java.util.Map;
|
||||
public class PlayerStatsRequestHandler extends LotroServerRequestHandler implements UriRequestHandler {
|
||||
private final GameHistoryService _gameHistoryService;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(PlayerStatsRequestHandler.class);
|
||||
|
||||
public PlayerStatsRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import com.google.gson.Gson;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
@@ -25,6 +26,8 @@ public class PlaytestRequestHandler extends LotroServerRequestHandler implements
|
||||
private final GameHistoryService _gameHistoryService;
|
||||
private final Gson JsonConvert = new Gson();
|
||||
|
||||
private static final Logger _log = Logger.getLogger(PlaytestRequestHandler.class);
|
||||
|
||||
public PlaytestRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
_playerDAO = extractObject(context, PlayerDAO.class);
|
||||
|
||||
@@ -6,11 +6,14 @@ import com.gempukku.lotro.db.LoginInvalidException;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Map;
|
||||
|
||||
public class RegisterRequestHandler extends LotroServerRequestHandler implements UriRequestHandler {
|
||||
|
||||
private static final Logger _log = Logger.getLogger(RegisterRequestHandler.class);
|
||||
public RegisterRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
}
|
||||
@@ -29,6 +32,7 @@ public class RegisterRequestHandler extends LotroServerRequestHandler implements
|
||||
throw new HttpProcessingException(409);
|
||||
}
|
||||
} catch (LoginInvalidException exp) {
|
||||
logHttpError(_log, 400, request.uri(), exp);
|
||||
throw new HttpProcessingException(400);
|
||||
}
|
||||
} finally {
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.gempukku.lotro.game.GameRecorder;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.util.AsciiString;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
@@ -19,6 +20,8 @@ import static io.netty.handler.codec.http.HttpHeaderNames.CONTENT_TYPE;
|
||||
public class ReplayRequestHandler extends LotroServerRequestHandler implements UriRequestHandler {
|
||||
private final GameRecorder _gameRecorder;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(ReplayRequestHandler.class);
|
||||
|
||||
public ReplayRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
|
||||
@@ -50,6 +53,7 @@ public class ReplayRequestHandler extends LotroServerRequestHandler implements U
|
||||
while ((count = recordedGame.read(bytes)) != -1)
|
||||
baos.write(bytes, 0, count);
|
||||
} catch (IOException exp) {
|
||||
_log.error("Error 404 response for " + request.uri(), exp);
|
||||
throw new HttpProcessingException(404);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.gempukku.lotro.game.Player;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.QueryStringDecoder;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
@@ -24,6 +25,8 @@ import java.util.TimeZone;
|
||||
public class ServerStatsRequestHandler extends LotroServerRequestHandler implements UriRequestHandler {
|
||||
private final GameHistoryService _gameHistoryService;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(ServerStatsRequestHandler.class);
|
||||
|
||||
public ServerStatsRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
|
||||
@@ -80,6 +83,7 @@ public class ServerStatsRequestHandler extends LotroServerRequestHandler impleme
|
||||
|
||||
responseWriter.writeXmlResponse(doc);
|
||||
} catch (ParseException exp) {
|
||||
logHttpError(_log, 400, request.uri(), exp);
|
||||
throw new HttpProcessingException(400);
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -20,6 +20,7 @@ import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import io.netty.handler.codec.http.QueryStringDecoder;
|
||||
import io.netty.handler.codec.http.multipart.HttpPostRequestDecoder;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
@@ -35,6 +36,8 @@ public class SoloDraftRequestHandler extends LotroServerRequestHandler implement
|
||||
private final LotroFormatLibrary _formatLibrary;
|
||||
private final LeagueService _leagueService;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(SoloDraftRequestHandler.class);
|
||||
|
||||
public SoloDraftRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
_leagueService = extractObject(context, LeagueService.class);
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.gempukku.lotro.game.GameHistoryService;
|
||||
import com.gempukku.lotro.hall.HallServer;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Map;
|
||||
@@ -16,6 +17,8 @@ public class StatusRequestHandler extends LotroServerRequestHandler implements U
|
||||
private final GameHistoryService _gameHistoryService;
|
||||
private final ChatServer _chatServer;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(StatusRequestHandler.class);
|
||||
|
||||
public StatusRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
_hallServer = extractObject(context, HallServer.class);
|
||||
|
||||
@@ -12,9 +12,10 @@ import com.gempukku.lotro.logic.GameUtils;
|
||||
import com.gempukku.lotro.logic.vo.LotroDeck;
|
||||
import com.gempukku.lotro.tournament.Tournament;
|
||||
import com.gempukku.lotro.tournament.TournamentService;
|
||||
import org.apache.commons.lang.StringEscapeUtils;
|
||||
import io.netty.handler.codec.http.HttpMethod;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import org.apache.commons.lang.StringEscapeUtils;
|
||||
import org.apache.log4j.Logger;
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.Element;
|
||||
|
||||
@@ -31,6 +32,8 @@ public class TournamentRequestHandler extends LotroServerRequestHandler implemen
|
||||
private final LotroCardBlueprintLibrary _library;
|
||||
private final SortAndFilterCards _sortAndFilterCards;
|
||||
|
||||
private static final Logger _log = Logger.getLogger(TournamentRequestHandler.class);
|
||||
|
||||
public TournamentRequestHandler(Map<Type, Object> context) {
|
||||
super(context);
|
||||
|
||||
|
||||
@@ -2,10 +2,23 @@ package com.gempukku.lotro.async.handler;
|
||||
|
||||
import com.gempukku.lotro.async.ResponseWriter;
|
||||
import io.netty.handler.codec.http.HttpRequest;
|
||||
import org.apache.log4j.Logger;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.Map;
|
||||
|
||||
public interface UriRequestHandler {
|
||||
public void handleRequest(String uri, HttpRequest request, Map<Type, Object> context, ResponseWriter responseWriter, String remoteIp) throws Exception;
|
||||
|
||||
default void logHttpError(Logger log, int code, String uri, Exception exp) {
|
||||
//401, 403, 404, and other 400 errors should just do minimal logging,
|
||||
// but 400 itself should error out
|
||||
if(code % 400 < 100 && code != 400) {
|
||||
log.debug("HTTP " + code + " response for " + uri);
|
||||
}
|
||||
// record an HTTP 400
|
||||
else if(code == 400 || code % 500 < 100) {
|
||||
log.error("HTTP code " + code + " response for " + uri, exp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user