Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
0.9
-
Patch Available
Description
The generated TProcessor class implementation for services with methods that have the oneway modifier is incomplete.
This method is missing in the service generated implementation:
-(void)process_XXXX_withSequenceID:(int32_t)seqID inProtocol:(id<TProtocol>)inProtocol outProtocol:(id<TProtocol>)outProtocol
During initialization, for mMethodMap:
SEL s = @selector(process_XXXX_withSequenceID:inProtocol:outProtocol;
NSMethodSignature * sig = [self methodSignatureForSelector: s];
Because the method process_XXXX_withSequenceID:inProtocol:outProtocol: implementation is missing, methodSignatureForSelector will return nil (sig is nil).
The following call:
NSInvocation * invocation = [NSInvocation invocationWithMethodSignature: sig];
Will throw an exception:
'NSInvalidArgumentException', reason: '+[NSInvocation _invocationWithMethodSignature:frame:]: method signature argument cannot be nil'