summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Watson <tim@rabbitmq.com>2013-06-06 11:38:54 +0100
committerTim Watson <tim@rabbitmq.com>2013-06-06 11:38:54 +0100
commitcf8b72892eb82f7eac0298c36f8510d9ccdf8ed7 (patch)
treefcda4d345aab60c9dafa8f5e183b3fec0284c58c
parent7f84407e046c979f798e9c685303a7d03ec9c40e (diff)
downloadrabbitmq-server-cf8b72892eb82f7eac0298c36f8510d9ccdf8ed7.tar.gz
do not attempt to parse expiration from missing properties
-rw-r--r--src/rabbit_amqqueue_process.erl20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/rabbit_amqqueue_process.erl b/src/rabbit_amqqueue_process.erl
index ed15b6f5..892c2a77 100644
--- a/src/rabbit_amqqueue_process.erl
+++ b/src/rabbit_amqqueue_process.erl
@@ -901,13 +901,8 @@ make_dead_letter_msg(Msg = #basic_message{content = Content,
MaybePerMsgTTL =
case Reason of
expired ->
- OrigProps = Content#content.properties,
- case rabbit_basic:parse_expiration(OrigProps) of
- {ok, Exp} when is_integer(Exp) ->
- [{<<"original-expiration">>, longstr,
- integer_to_list(Exp)}];
- _ -> []
- end;
+ OriginalProps = Content#content.properties,
+ maybe_create_per_msg_ttl_xdeath_header(OriginalProps);
_ -> []
end,
HeadersFun2 =
@@ -932,6 +927,17 @@ make_dead_letter_msg(Msg = #basic_message{content = Content,
routing_keys = DeathRoutingKeys,
content = ContentNoExpiration}.
+maybe_create_per_msg_ttl_xdeath_header(#'P_basic'{}=Props) ->
+ case rabbit_basic:parse_expiration(Props) of
+ {ok, Exp} when is_integer(Exp) ->
+ [{<<"original-expiration">>, longstr,
+ integer_to_list(Exp)}];
+ _ ->
+ []
+ end;
+maybe_create_per_msg_ttl_xdeath_header(_) ->
+ [].
+
now_micros() -> timer:now_diff(now(), {0,0,0}).
infos(Items, State) -> [{Item, i(Item, State)} || Item <- Items].