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
commit3a3f3e89228d9bdcd5f95fe1e3f07e4541d7f80f (patch)
treefcda4d345aab60c9dafa8f5e183b3fec0284c58c
parent72097478eb948bec654af86f6b235bdb89a7c47a (diff)
downloadrabbitmq-server-git-3a3f3e89228d9bdcd5f95fe1e3f07e4541d7f80f.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 ed15b6f5fd..892c2a7765 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].