Skip to content

Commit ab43c9a

Browse files
committed
Reverted link failed status
1 parent 1977b1d commit ab43c9a

File tree

6 files changed

+30
-24
lines changed

6 files changed

+30
-24
lines changed

src/amqpvalue.pyx

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,9 @@ cdef value_factory(c_amqpvalue.AMQP_VALUE value):
121121
elif type_val == AMQPType.DescribedType:
122122
new_obj = DescribedValue()
123123
else:
124-
raise TypeError("Unrecognized AMQPType: {}".format(type_val))
124+
error = "Unrecognized AMQPType: {}".format(type_val)
125+
_logger.info(error)
126+
raise TypeError(error)
125127
new_obj.wrap(value)
126128
return new_obj
127129

@@ -689,7 +691,10 @@ cdef class ListValue(AMQPValue):
689691
value = c_amqpvalue.amqpvalue_get_list_item(self._c_value, index)
690692
if <void*>value == NULL:
691693
self._value_error()
692-
return value_factory(value)
694+
try:
695+
return value_factory(value)
696+
except TypeError:
697+
return None
693698

694699
def __setitem__(self, stdint.uint32_t index, AMQPValue value):
695700
assert value.type
@@ -738,7 +743,10 @@ cdef class DictValue(AMQPValue):
738743
value = c_amqpvalue.amqpvalue_get_map_value(self._c_value, key._c_value)
739744
if <void*>value == NULL:
740745
raise KeyError("No value found for key: {}".format(key.value))
741-
return value_factory(value)
746+
try:
747+
return value_factory(value)
748+
except TypeError:
749+
return None
742750

743751
def __setitem__(self, AMQPValue key, AMQPValue value):
744752
if c_amqpvalue.amqpvalue_set_map_value(self._c_value, key._c_value, value._c_value) != 0:

src/annotations.pyx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ _logger = logging.getLogger(__name__)
2020

2121

2222
cdef annotations_factory(c_amqpvalue.AMQP_VALUE value):
23-
wrapped = value_factory(value)
23+
try:
24+
wrapped = value_factory(value)
25+
except TypeError:
26+
return None
2427
if c_amqp_definitions.is_delivery_annotations_type_by_descriptor(<c_amqp_definitions.delivery_annotations>value):
2528
new_obj = create_delivery_annotations(wrapped)
2629
elif c_amqp_definitions.is_message_annotations_type_by_descriptor(<c_amqp_definitions.message_annotations>value):
@@ -115,7 +118,10 @@ cdef class cAnnotations(StructBase):
115118

116119
@property
117120
def value(self):
118-
return value_factory(self._c_value)
121+
try:
122+
return value_factory(self._c_value)
123+
except TypeError:
124+
return None
119125

120126
@property
121127
def map(self):

src/error.pyx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,11 @@ cdef class cError(StructBase):
8787
cdef c_amqp_definitions.fields info_value
8888
if c_amqp_definitions.error_get_info(self._c_value, &info_value) != 0:
8989
return None
90-
return copy.deepcopy(value_factory(info_value).value)
90+
try:
91+
info = value_factory(info_value)
92+
return copy.deepcopy(info.value)
93+
except TypeError:
94+
return None
9195

9296
@info.setter
9397
def info(self, AMQPValue info_value):

uamqp/constants.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,6 @@ class MessageReceiverState(Enum):
7777
Open = c_uamqp.MESSAGE_RECEIVER_STATE_OPEN
7878
Closing = c_uamqp.MESSAGE_RECEIVER_STATE_CLOSING
7979
Error = c_uamqp.MESSAGE_RECEIVER_STATE_ERROR
80-
Failed = 99
8180

8281

8382
class MessageSendResult(Enum):
@@ -93,7 +92,6 @@ class MessageSenderState(Enum):
9392
Open = c_uamqp.MESSAGE_SENDER_STATE_OPEN
9493
Closing = c_uamqp.MESSAGE_SENDER_STATE_CLOSING
9594
Error = c_uamqp.MESSAGE_SENDER_STATE_ERROR
96-
Failed = 99
9795

9896

9997
class ManagementLinkState(Enum):

uamqp/receiver.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -254,14 +254,9 @@ def on_state_changed(self, previous_state, new_state):
254254
:param new_state: The new Receiver state.
255255
:type new_state: ~uamqp.constants.MessageReceiverState
256256
"""
257-
if new_state == constants.MessageReceiverState.Error and \
258-
previous_state == constants.MessageReceiverState.Opening:
259-
_logger.debug("Message receiver received invalid ATTACH - waiting for DETACH")
260-
self._state = constants.MessageReceiverState.Failed
261-
elif new_state != previous_state:
262-
_logger.debug("Message receiver {} state changed from {} to {}".format(
263-
self.name, previous_state, new_state))
264-
self._state = new_state
257+
_logger.debug("Message receiver {} state changed from {} to {}".format(
258+
self.name, previous_state, new_state))
259+
self._state = new_state
265260

266261
@property
267262
def receive_settle_mode(self):

uamqp/sender.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -222,14 +222,9 @@ def on_state_changed(self, previous_state, new_state):
222222
:param new_state: The new Sender state.
223223
:type new_state: ~uamqp.constants.MessageSenderState
224224
"""
225-
if new_state == constants.MessageSenderState.Error and \
226-
previous_state == constants.MessageSenderState.Opening:
227-
_logger.debug("Message sender received invalid ATTACH - waiting for DETACH")
228-
self._state = constants.MessageSenderState.Failed
229-
elif new_state != previous_state:
230-
_logger.debug("Message sender {} state changed from {} to {}".format(
231-
self.name, previous_state, new_state))
232-
self._state = new_state
225+
_logger.debug("Message sender {} state changed from {} to {}".format(
226+
self.name, previous_state, new_state))
227+
self._state = new_state
233228

234229
@property
235230
def send_settle_mode(self):

0 commit comments

Comments
 (0)