- THRIFT-5712 - Added Dart 3 Compatibility
diff --git a/lib/dart/Makefile.am b/lib/dart/Makefile.am
index 74f1404..3518a87 100644
--- a/lib/dart/Makefile.am
+++ b/lib/dart/Makefile.am
@@ -17,6 +17,9 @@
# under the License.
#
+# Dart build command
+DARTPUB = dart pub
+
all-local:
$(DARTPUB) get
diff --git a/lib/dart/lib/src/browser/t_web_socket.dart b/lib/dart/lib/src/browser/t_web_socket.dart
index 1d0bfeb..1667831 100644
--- a/lib/dart/lib/src/browser/t_web_socket.dart
+++ b/lib/dart/lib/src/browser/t_web_socket.dart
@@ -49,19 +49,19 @@
: _onStateController = StreamController.broadcast(),
_onErrorController = StreamController.broadcast(),
_onMessageController = StreamController.broadcast() {
- if (url == null || !url.hasAuthority || !url.hasPort) {
+ if (!url.hasAuthority || !url.hasPort) {
throw ArgumentError('Invalid url');
}
}
- WebSocket _socket;
+ WebSocket? _socket;
@override
- bool get isOpen => _socket != null && _socket.readyState == WebSocket.OPEN;
+ bool get isOpen => _socket != null && _socket!.readyState == WebSocket.OPEN;
@override
bool get isClosed =>
- _socket == null || _socket.readyState == WebSocket.CLOSED;
+ _socket == null ||_socket!.readyState == WebSocket.CLOSED;
@override
Future open() {
@@ -71,19 +71,19 @@
}
_socket = WebSocket(url.toString());
- _socket.onError.listen(_onError);
- _socket.onOpen.listen(_onOpen);
- _socket.onClose.listen(_onClose);
- _socket.onMessage.listen(_onMessage);
+ _socket!.onError.listen(_onError);
+ _socket!.onOpen.listen(_onOpen);
+ _socket!.onClose.listen(_onClose);
+ _socket!.onMessage.listen(_onMessage);
- return _socket.onOpen.first;
+ return _socket!.onOpen.first;
}
@override
Future close() {
if (_socket != null) {
- _socket.close();
- return _socket.onClose.first;
+ _socket!.close();
+ return _socket!.onClose.first;
} else {
return Future.value();
}
@@ -98,7 +98,7 @@
void _sendRequests() {
while (isOpen && _requests.isNotEmpty) {
Uint8List data = _requests.removeAt(0);
- _socket.sendString(base64.encode(data));
+ _socket!.sendString(base64.encode(data));
}
}
diff --git a/lib/dart/lib/src/console/t_tcp_socket.dart b/lib/dart/lib/src/console/t_tcp_socket.dart
index 610d633..7c17f42 100644
--- a/lib/dart/lib/src/console/t_tcp_socket.dart
+++ b/lib/dart/lib/src/console/t_tcp_socket.dart
@@ -37,7 +37,7 @@
@override
Stream<Uint8List> get onMessage => _onMessageController.stream;
- TTcpSocket(Socket socket)
+ TTcpSocket(Socket? socket)
: _onStateController = StreamController.broadcast(),
_onErrorController = StreamController.broadcast(),
_onMessageController = StreamController.broadcast() {
@@ -46,10 +46,10 @@
}
_socket = socket;
- _socket.listen(_onMessage, onError: _onError, onDone: close);
+ _socket!.listen(_onMessage, onError: _onError, onDone: close);
}
- Socket _socket;
+ Socket? _socket;
@override
bool get isOpen => _socket != null;
@@ -65,7 +65,7 @@
@override
Future close() async {
if (_socket != null) {
- await _socket.close();
+ await _socket!.close();
_socket = null;
}
@@ -74,7 +74,9 @@
@override
void send(Uint8List data) {
- _socket.add(data);
+ if (_socket != null) {
+ _socket!.add(data);
+ }
}
void _onMessage(List<int> message) {
diff --git a/lib/dart/lib/src/console/t_web_socket.dart b/lib/dart/lib/src/console/t_web_socket.dart
index d69cafe..98fdf70 100644
--- a/lib/dart/lib/src/console/t_web_socket.dart
+++ b/lib/dart/lib/src/console/t_web_socket.dart
@@ -38,7 +38,7 @@
@override
Stream<Uint8List> get onMessage => _onMessageController.stream;
- TWebSocket(WebSocket socket)
+ TWebSocket(WebSocket? socket)
: _onStateController = StreamController.broadcast(),
_onErrorController = StreamController.broadcast(),
_onMessageController = StreamController.broadcast() {
@@ -47,10 +47,12 @@
}
_socket = socket;
- _socket.listen(_onMessage, onError: _onError, onDone: close);
+ _socket!.listen((dynamic message) => _onMessage(message as String),
+ onError: (dynamic error) => _onError(error),
+ onDone: () => close(),);
}
- WebSocket _socket;
+ WebSocket? _socket;
@override
bool get isOpen => _socket != null;
@@ -66,7 +68,7 @@
@override
Future close() async {
if (_socket != null) {
- await _socket.close();
+ await _socket!.close();
_socket = null;
}
@@ -75,7 +77,9 @@
@override
void send(Uint8List data) {
- _socket.add(base64.encode(data));
+ if (_socket != null) {
+ _socket!.add(base64.encode(data));
+ }
}
void _onMessage(String message) {
diff --git a/lib/dart/lib/src/protocol/t_binary_protocol.dart b/lib/dart/lib/src/protocol/t_binary_protocol.dart
index 9f8f3bf..5ddab2c 100644
--- a/lib/dart/lib/src/protocol/t_binary_protocol.dart
+++ b/lib/dart/lib/src/protocol/t_binary_protocol.dart
@@ -114,7 +114,6 @@
@override
void writeBool(bool b) {
- if (b == null) b = false;
writeByte(b ? 1 : 0);
}
@@ -122,7 +121,6 @@
@override
void writeByte(int byte) {
- if (byte == null) byte = 0;
_byteOut.setUint8(0, byte);
transport.write(_byteOut.buffer.asUint8List(), 0, 1);
}
@@ -131,7 +129,6 @@
@override
void writeI16(int i16) {
- if (i16 == null) i16 = 0;
_i16Out.setInt16(0, i16);
transport.write(_i16Out.buffer.asUint8List(), 0, 2);
}
@@ -140,7 +137,6 @@
@override
void writeI32(int i32) {
- if (i32 == null) i32 = 0;
_i32Out.setInt32(0, i32);
transport.write(_i32Out.buffer.asUint8List(), 0, 4);
}
@@ -149,7 +145,6 @@
@override
void writeI64(int i64) {
- if (i64 == null) i64 = 0;
var i = Int64(i64);
var bts = i.toBytes();
for (var j = 0; j < 8; j++) {
@@ -160,7 +155,7 @@
@override
void writeString(String s) {
- var bytes = s != null ? _utf8Codec.encode(s) : Uint8List.fromList([]);
+ var bytes = _utf8Codec.encode(s);
writeI32(bytes.length);
transport.write(bytes, 0, bytes.length);
}
@@ -169,7 +164,6 @@
@override
void writeDouble(double d) {
- if (d == null) d = 0.0;
_doubleOut.setFloat64(0, d);
transport.write(_doubleOut.buffer.asUint8List(), 0, 8);
}
diff --git a/lib/dart/lib/src/protocol/t_compact_protocol.dart b/lib/dart/lib/src/protocol/t_compact_protocol.dart
index dc26722..341b659 100644
--- a/lib/dart/lib/src/protocol/t_compact_protocol.dart
+++ b/lib/dart/lib/src/protocol/t_compact_protocol.dart
@@ -54,7 +54,8 @@
static const int TYPE_MAP = 0x0B;
static const int TYPE_STRUCT = 0x0C;
- static final List<int> _typeMap = List.unmodifiable(List(16)
+static final List<int> _typeMap = List<int>.unmodifiable(
+ List<int>.filled(16, 0)
..[TType.STOP] = TType.STOP
..[TType.BOOL] = TYPE_BOOLEAN_TRUE
..[TType.BYTE] = TYPE_BYTE
@@ -66,7 +67,8 @@
..[TType.LIST] = TYPE_LIST
..[TType.SET] = TYPE_SET
..[TType.MAP] = TYPE_MAP
- ..[TType.STRUCT] = TYPE_STRUCT);
+ ..[TType.STRUCT] = TYPE_STRUCT,
+);
static const Utf8Codec _utf8Codec = Utf8Codec();
@@ -74,8 +76,8 @@
DoubleLinkedQueue<int> _lastField = DoubleLinkedQueue<int>();
int _lastFieldId = 0;
- TField _booleanField;
- bool _boolValue;
+ TField? _booleanField;
+ bool? _boolValue;
final Uint8List tempList = Uint8List(10);
final ByteData tempBD = ByteData(10);
@@ -169,10 +171,9 @@
@override
void writeBool(bool b) {
- if (b == null) b = false;
if (_booleanField != null) {
_writeFieldBegin(
- _booleanField, b ? TYPE_BOOLEAN_TRUE : TYPE_BOOLEAN_FALSE);
+ _booleanField!, b ? TYPE_BOOLEAN_TRUE : TYPE_BOOLEAN_FALSE);
_booleanField = null;
} else {
writeByte(b ? TYPE_BOOLEAN_TRUE : TYPE_BOOLEAN_FALSE);
@@ -181,40 +182,34 @@
@override
void writeByte(int b) {
- if (b == null) b = 0;
tempList[0] = b;
transport.write(tempList, 0, 1);
}
@override
void writeI16(int i16) {
- if (i16 == null) i16 = 0;
_writeVarInt32(_int32ToZigZag(Int32(i16)));
}
@override
void writeI32(int i32) {
- if (i32 == null) i32 = 0;
_writeVarInt32(_int32ToZigZag(Int32(i32)));
}
@override
void writeI64(int i64) {
- if (i64 == null) i64 = 0;
_writeVarInt64(_int64ToZigZag(Int64(i64)));
}
@override
void writeDouble(double d) {
- if (d == null) d = 0.0;
tempBD.setFloat64(0, d, Endian.little);
transport.write(tempBD.buffer.asUint8List(), 0, 8);
}
@override
void writeString(String str) {
- Uint8List bytes =
- str != null ? _utf8Codec.encode(str) : Uint8List.fromList([]);
+ Uint8List bytes = _utf8Codec.encode(str);
writeBinary(bytes);
}
@@ -374,7 +369,7 @@
@override
bool readBool() {
if (_boolValue != null) {
- bool result = _boolValue;
+ bool result = _boolValue!;
_boolValue = null;
return result;
}
diff --git a/lib/dart/lib/src/protocol/t_json_protocol.dart b/lib/dart/lib/src/protocol/t_json_protocol.dart
index 4aaf20c..9752a41 100644
--- a/lib/dart/lib/src/protocol/t_json_protocol.dart
+++ b/lib/dart/lib/src/protocol/t_json_protocol.dart
@@ -32,15 +32,16 @@
static const Utf8Codec utf8Codec = Utf8Codec();
- _BaseContext _context;
- _BaseContext _rootContext;
- _LookaheadReader _reader;
+ late _BaseContext _context;
+ late _BaseContext _rootContext;
+ late _LookaheadReader _reader;
final List<_BaseContext> _contextStack = [];
final Uint8List _tempBuffer = Uint8List(4);
TJsonProtocol(TTransport transport) : super(transport) {
_rootContext = _BaseContext(this);
+ _context = _rootContext;
_reader = _LookaheadReader(this);
_resetContext();
}
@@ -122,8 +123,6 @@
}
void _writeJsonInteger(int i) {
- if (i == null) i = 0;
-
_context.write();
String str = i.toString();
@@ -137,8 +136,6 @@
}
void _writeJsonDouble(double d) {
- if (d == null) d = 0.0;
-
_context.write();
String str = d.toString();
bool escapeNumbers = d.isNaN || d.isInfinite || _context.escapeNumbers;
@@ -267,7 +264,6 @@
@override
void writeBool(bool b) {
- if (b == null) b = false;
_writeJsonInteger(b ? 1 : 0);
}
@@ -298,7 +294,7 @@
@override
void writeString(String s) {
- var bytes = s != null ? utf8Codec.encode(s) : Uint8List.fromList([]);
+ var bytes = utf8Codec.encode(s);
_writeJsonString(bytes);
}
@@ -418,7 +414,7 @@
Uint8List bytes = _readJsonString(skipContext: true);
double d;
try {
- d = double.tryParse(utf8Codec.decode(bytes));
+ d = double.parse(utf8Codec.decode(bytes));
} catch (_) {
throw TProtocolError(TProtocolErrorType.INVALID_DATA,
"Bad data encounted in numeric data");
@@ -675,7 +671,7 @@
TProtocolErrorType.NOT_IMPLEMENTED, "Unrecognized type");
}
- return _TYPE_ID_TO_NAME_BYTES[typeId];
+ return _TYPE_ID_TO_NAME_BYTES[typeId]!;
}
static final Map<String, int> _NAME_TO_TYPE_ID = Map.unmodifiable({
@@ -699,7 +695,7 @@
TProtocolErrorType.NOT_IMPLEMENTED, "Unrecognized type");
}
- return _NAME_TO_TYPE_ID[name];
+ return _NAME_TO_TYPE_ID[name]!;
}
static final Set<int> _JSON_NUMERICS = Set.from([
diff --git a/lib/dart/lib/src/protocol/t_multiplexed_protocol.dart b/lib/dart/lib/src/protocol/t_multiplexed_protocol.dart
index 693e58b..42030a8 100644
--- a/lib/dart/lib/src/protocol/t_multiplexed_protocol.dart
+++ b/lib/dart/lib/src/protocol/t_multiplexed_protocol.dart
@@ -25,11 +25,7 @@
TMultiplexedProtocol(TProtocol protocol, String serviceName)
: _serviceName = serviceName,
- super(protocol) {
- if (serviceName == null) {
- throw ArgumentError.notNull("serviceName");
- }
- }
+ super(protocol);
@override
void writeMessageBegin(TMessage message) {
diff --git a/lib/dart/lib/src/serializer/t_deserializer.dart b/lib/dart/lib/src/serializer/t_deserializer.dart
index c01ab6b..f284ee6 100644
--- a/lib/dart/lib/src/serializer/t_deserializer.dart
+++ b/lib/dart/lib/src/serializer/t_deserializer.dart
@@ -19,10 +19,10 @@
class TDeserializer {
final message = TMessage('Deserializer', TMessageType.ONEWAY, 1);
- TBufferedTransport transport;
- TProtocol protocol;
+ late TBufferedTransport transport;
+ late TProtocol protocol;
- TDeserializer({TProtocolFactory protocolFactory}) {
+ TDeserializer({TProtocolFactory? protocolFactory}) {
this.transport = TBufferedTransport();
if (protocolFactory == null) {
diff --git a/lib/dart/lib/src/serializer/t_serializer.dart b/lib/dart/lib/src/serializer/t_serializer.dart
index fb89789..17cab53 100644
--- a/lib/dart/lib/src/serializer/t_serializer.dart
+++ b/lib/dart/lib/src/serializer/t_serializer.dart
@@ -19,10 +19,10 @@
class TSerializer {
final message = TMessage('Serializer', TMessageType.ONEWAY, 1);
- TBufferedTransport transport;
- TProtocol protocol;
+ late TBufferedTransport transport;
+ late TProtocol protocol;
- TSerializer({TProtocolFactory protocolFactory}) {
+ TSerializer({TProtocolFactory? protocolFactory}) {
this.transport = TBufferedTransport();
if (protocolFactory == null) {
diff --git a/lib/dart/lib/src/t_application_error.dart b/lib/dart/lib/src/t_application_error.dart
index 38449a9..69c0138 100644
--- a/lib/dart/lib/src/t_application_error.dart
+++ b/lib/dart/lib/src/t_application_error.dart
@@ -45,7 +45,7 @@
static TApplicationError read(TProtocol iprot) {
TField field;
- String message;
+ String message = "";
int type = TApplicationErrorType.UNKNOWN;
iprot.readStructBegin();
@@ -87,7 +87,7 @@
write(TProtocol oprot) {
oprot.writeStructBegin(_struct);
- if (message != null && message.isNotEmpty) {
+ if (message.isNotEmpty) {
oprot.writeFieldBegin(_messageField);
oprot.writeString(message);
oprot.writeFieldEnd();
diff --git a/lib/dart/lib/src/transport/t_buffered_transport.dart b/lib/dart/lib/src/transport/t_buffered_transport.dart
index f17b2ee..f6c5ea6 100644
--- a/lib/dart/lib/src/transport/t_buffered_transport.dart
+++ b/lib/dart/lib/src/transport/t_buffered_transport.dart
@@ -20,7 +20,7 @@
/// Buffered implementation of [TTransport].
class TBufferedTransport extends TTransport {
final List<int> _writeBuffer = [];
- Iterator<int> _readIterator;
+ Iterator<int>? _readIterator;
Uint8List consumeWriteBuffer() {
Uint8List buffer = Uint8List.fromList(_writeBuffer);
@@ -29,7 +29,7 @@
}
void _setReadBuffer(Uint8List readBuffer) {
- _readIterator = readBuffer != null ? readBuffer.iterator : null;
+ _readIterator = readBuffer.iterator;
}
void _reset({bool isOpen = false}) {
@@ -40,7 +40,7 @@
bool get hasReadData => _readIterator != null;
- bool _isOpen;
+ bool _isOpen = false;
@override
bool get isOpen => _isOpen;
@@ -56,10 +56,6 @@
@override
int read(Uint8List buffer, int offset, int length) {
- if (buffer == null) {
- throw ArgumentError.notNull("buffer");
- }
-
if (offset + length > buffer.length) {
throw ArgumentError("The range exceeds the buffer length");
}
@@ -69,13 +65,17 @@
}
int i = 0;
- while (i < length && _readIterator.moveNext()) {
- buffer[offset + i] = _readIterator.current;
+ bool hasData = true;
+ while (i < length && hasData) {
+ hasData = _readIterator!.moveNext();
+ if (hasData) {
+ buffer[offset + i] = _readIterator!.current;
i++;
+ }
}
// cleanup iterator when we've reached the end
- if (_readIterator.current == null) {
+ if (!hasData) {
_readIterator = null;
}
@@ -84,10 +84,6 @@
@override
void write(Uint8List buffer, int offset, int length) {
- if (buffer == null) {
- throw ArgumentError.notNull("buffer");
- }
-
if (offset + length > buffer.length) {
throw ArgumentError("The range exceeds the buffer length");
}
diff --git a/lib/dart/lib/src/transport/t_framed_transport.dart b/lib/dart/lib/src/transport/t_framed_transport.dart
index 3fc55fa..de09e51 100644
--- a/lib/dart/lib/src/transport/t_framed_transport.dart
+++ b/lib/dart/lib/src/transport/t_framed_transport.dart
@@ -29,16 +29,12 @@
int _receivedHeaderBytes = 0;
int _bodySize = 0;
- Uint8List _body;
+ Uint8List? _body;
int _receivedBodyBytes = 0;
- Completer<Uint8List> _frameCompleter;
+ Completer<Uint8List>? _frameCompleter;
- TFramedTransport(TTransport transport) : _transport = transport {
- if (transport == null) {
- throw ArgumentError.notNull("transport");
- }
- }
+ TFramedTransport(TTransport transport) : _transport = transport;
@override
bool get isOpen => _transport.isOpen;
@@ -115,7 +111,7 @@
void _readFrameBody() {
var remainingBodyBytes = _bodySize - _receivedBodyBytes;
- int got = _transport.read(_body, _receivedBodyBytes, remainingBodyBytes);
+ int got = _transport.read(_body!, _receivedBodyBytes, remainingBodyBytes);
if (got < 0) {
throw TTransportError(
TTransportErrorType.UNKNOWN, "Socket closed during frame body read");
@@ -124,7 +120,7 @@
_receivedBodyBytes += got;
if (_receivedBodyBytes == _bodySize) {
- var body = _body;
+ var body = _body!;
_bodySize = 0;
_body = null;
@@ -134,7 +130,9 @@
var completer = _frameCompleter;
_frameCompleter = null;
- completer.complete(Uint8List(0));
+ if (completer != null) {
+ completer.complete(Uint8List(0));
+ }
} else {
_registerForReadableBytes();
}
@@ -154,7 +152,7 @@
_registerForReadableBytes();
}
- return _frameCompleter.future;
+ return _frameCompleter!.future;
}
void _registerForReadableBytes() {
@@ -168,8 +166,9 @@
_body = null;
_receivedBodyBytes = 0;
_frameCompleter = null;
-
- completer.completeError(e);
+ if (completer != null) {
+ completer.completeError(e);
+ }
});
}
}
diff --git a/lib/dart/lib/src/transport/t_http_transport.dart b/lib/dart/lib/src/transport/t_http_transport.dart
index 71fdb3c..cbd5242 100644
--- a/lib/dart/lib/src/transport/t_http_transport.dart
+++ b/lib/dart/lib/src/transport/t_http_transport.dart
@@ -33,9 +33,9 @@
final THttpConfig config;
THttpClientTransport(this.httpClient, this.config) {
- if (httpClient == null) {
+ /*if (httpClient == null) {
throw ArgumentError.notNull("httpClient");
- }
+ }*/
}
@override
@@ -75,11 +75,11 @@
class THttpConfig {
final Uri url;
- Map<String, String> _headers;
+ late Map<String, String> _headers;
Map<String, String> get headers => _headers;
THttpConfig(this.url, Map<String, String> headers) {
- if (url == null || !url.hasAuthority) {
+ if (!url.hasAuthority) {
throw ArgumentError("Invalid url");
}
@@ -89,9 +89,7 @@
void _initHeaders(Map<String, String> initial) {
var h = {};
- if (initial != null) {
h.addAll(initial);
- }
h['Content-Type'] = 'application/x-thrift';
h['Accept'] = 'application/x-thrift';
diff --git a/lib/dart/lib/src/transport/t_message_reader.dart b/lib/dart/lib/src/transport/t_message_reader.dart
index 620a27a..afef386 100644
--- a/lib/dart/lib/src/transport/t_message_reader.dart
+++ b/lib/dart/lib/src/transport/t_message_reader.dart
@@ -45,9 +45,9 @@
class _TMessageReaderTransport extends TTransport {
_TMessageReaderTransport();
- Iterator<int> _readIterator;
+ Iterator<int>? _readIterator;
- void reset(Uint8List bytes, [int offset = 0]) {
+ void reset(Uint8List? bytes, [int offset = 0]) {
if (bytes == null) {
_readIterator = null;
return;
@@ -57,11 +57,7 @@
throw ArgumentError("The offset exceeds the bytes length");
}
- _readIterator = bytes.iterator;
-
- for (var i = 0; i < offset; i++) {
- _readIterator.moveNext();
- }
+ _readIterator = bytes.skip(offset).iterator;
}
@override
@@ -75,9 +71,6 @@
@override
int read(Uint8List buffer, int offset, int length) {
- if (buffer == null) {
- throw ArgumentError.notNull("buffer");
- }
if (offset + length > buffer.length) {
throw ArgumentError("The range exceeds the buffer length");
@@ -88,8 +81,8 @@
}
int i = 0;
- while (i < length && _readIterator.moveNext()) {
- buffer[offset + i] = _readIterator.current;
+ while (i < length && _readIterator!.moveNext()) {
+ buffer[offset + i] = _readIterator!.current;
i++;
}
diff --git a/lib/dart/lib/src/transport/t_socket_transport.dart b/lib/dart/lib/src/transport/t_socket_transport.dart
index d9929c8..b568a8b 100644
--- a/lib/dart/lib/src/transport/t_socket_transport.dart
+++ b/lib/dart/lib/src/transport/t_socket_transport.dart
@@ -34,10 +34,6 @@
/// A transport using the provided [socket].
TSocketTransport(this.socket) {
- if (socket == null) {
- throw ArgumentError.notNull('socket');
- }
-
socket.onError.listen((e) => logger.warning(e));
socket.onMessage.listen(handleIncomingMessage);
}
@@ -96,7 +92,7 @@
if (_completers.isNotEmpty) {
var completer = _completers.removeAt(0);
- completer.complete();
+ completer.complete(Uint8List(0));
}
}
}
@@ -134,15 +130,13 @@
var completer = Completer<Uint8List>.sync();
_completers[seqid] = completer;
- if (responseTimeout != null) {
- Future.delayed(responseTimeout, () {
- var completer = _completers.remove(seqid);
- if (completer != null) {
- completer.completeError(
- TimeoutException("Response timed out.", responseTimeout));
- }
- });
- }
+ Future.delayed(responseTimeout, () {
+ var completer = _completers.remove(seqid);
+ if (completer != null) {
+ completer.completeError(
+ TimeoutException("Response timed out.", responseTimeout));
+ }
+ });
socket.send(bytes);
@@ -156,7 +150,7 @@
TMessage message = messageReader.readMessage(messageBytes);
var completer = _completers.remove(message.seqid);
if (completer != null) {
- completer.complete();
+ completer.complete(Uint8List(0));
}
}
}
diff --git a/lib/dart/pubspec.yaml b/lib/dart/pubspec.yaml
index 732e553..c05d3d1 100644
--- a/lib/dart/pubspec.yaml
+++ b/lib/dart/pubspec.yaml
@@ -24,20 +24,20 @@
documentation: http://thrift.apache.org
environment:
- sdk: ">=2.0.0 <3.0.0"
+ sdk: ">=2.12.0 <4.0.0"
dependencies:
fixnum: ">=0.10.2 <2.0.0"
- http: ">=0.11.3 <0.14.0"
+ http: "^1.2.0"
logging: ">=0.11.0 <2.0.0"
dev_dependencies:
build_runner: ">=1.7.1 <3.0.0"
build_test: ">=0.10.9 <3.0.0"
- build_vm_compilers: ^1.0.3
- build_web_compilers: ">=2.7.1 <4.0.0"
- dart_dev: ^3.0.0
- dart_style: ">=1.3.1 <3.0.0"
+ build_vm_compilers: ^1.0.13
+ build_web_compilers: ^3.2.7
+ dart_dev: ^4.1.0
+ dart_style: ^2.3.0
mockito: ">=4.1.1 <6.0.0"
test: ^1.9.1
workiva_analysis_options: ^1.0.0
\ No newline at end of file
diff --git a/lib/dart/test/protocol/t_protocol_test.dart b/lib/dart/test/protocol/t_protocol_test.dart
index 15d973c..4b6ca09 100644
--- a/lib/dart/test/protocol/t_protocol_test.dart
+++ b/lib/dart/test/protocol/t_protocol_test.dart
@@ -15,6 +15,7 @@
// specific language governing permissions and limitations
// under the License.
+
library thrift.test.transport.t_json_protocol_test;
import 'dart:async';
@@ -27,7 +28,7 @@
void main() {
final message = TMessage('my message', TMessageType.ONEWAY, 123);
- TProtocol protocol;
+ late TProtocol protocol;
Primitive getPrimitive(int tType) {
switch (tType) {
@@ -69,7 +70,7 @@
expect(output, input);
}
- Future primitiveNullTest(Primitive primitive) async {
+ /*Future primitiveNullTest(Primitive primitive) async {
primitive.write(null);
protocol.writeMessageEnd();
@@ -79,7 +80,7 @@
var output = primitive.read();
expect(output, primitive.defaultValue);
- }
+ }*/
var sharedTests = () {
test('Test message', () async {
@@ -179,61 +180,61 @@
test('Test bool', () async {
await primitiveTest(getPrimitive(TType.BOOL), true);
});
-
+/*
test('Test bool null', () async {
await primitiveNullTest(getPrimitive(TType.BOOL));
});
-
+*/
test('Test byte', () async {
await primitiveTest(getPrimitive(TType.BYTE), 64);
});
-
+/*
test('Test byte null', () async {
await primitiveNullTest(getPrimitive(TType.BYTE));
});
-
+*/
test('Test I16', () async {
await primitiveTest(getPrimitive(TType.I16), 32767);
});
-
+/*
test('Test I16 null', () async {
await primitiveNullTest(getPrimitive(TType.I16));
});
-
+*/
test('Test I32', () async {
await primitiveTest(getPrimitive(TType.I32), 2147483647);
});
-
+/*
test('Test I32 null', () async {
await primitiveNullTest(getPrimitive(TType.I32));
});
-
+*/
test('Test I64', () async {
await primitiveTest(getPrimitive(TType.I64), 9223372036854775807);
});
-
+/*
test('Test I64 null', () async {
await primitiveNullTest(getPrimitive(TType.I64));
});
-
+*/
test('Test double', () async {
await primitiveTest(getPrimitive(TType.DOUBLE), 3.1415926);
});
-
+/*
test('Test double null', () async {
await primitiveNullTest(getPrimitive(TType.DOUBLE));
});
-
+*/
test('Test string', () async {
var input = 'There are only two hard things in computer science: '
'cache invalidation, naming things, and off-by-one errors.';
await primitiveTest(getPrimitive(TType.STRING), input);
});
-
+/*
test('Test string null', () async {
await primitiveNullTest(getPrimitive(TType.STRING));
});
-
+*/
test('Test binary', () async {
var input = Uint8List.fromList(List.filled(100, 123));
diff --git a/lib/dart/test/serializer/serializer_test.dart b/lib/dart/test/serializer/serializer_test.dart
index 89883cb..33df024 100644
--- a/lib/dart/test/serializer/serializer_test.dart
+++ b/lib/dart/test/serializer/serializer_test.dart
@@ -25,9 +25,9 @@
void main() {
var serializer = () {
- TDeserializer deserializer;
- TSerializer serializer;
- TestTObject testTObject;
+ TDeserializer deserializer = TDeserializer();
+ TSerializer serializer = TSerializer();
+ TestTObject testTObject = TestTObject();
setUp(() {
serializer = TSerializer();
@@ -39,7 +39,7 @@
testTObject.d = 15.25;
testTObject.i = 10;
- var testList = List<String>();
+ var testList = <String>[];
testList.add("TEST 1");
testList.add("TEST 2");
diff --git a/lib/dart/test/serializer/serializer_test_data.dart b/lib/dart/test/serializer/serializer_test_data.dart
index fc488f4..f5580ff 100644
--- a/lib/dart/test/serializer/serializer_test_data.dart
+++ b/lib/dart/test/serializer/serializer_test_data.dart
@@ -30,15 +30,15 @@
static final TField _L_FIELD_DESC = TField("l", TType.LIST, 4);
static final TField _B_FIELD_DESC = TField("b", TType.BOOL, 5);
- int _i;
+ int? _i;
static const int I = 1;
- double _d;
+ double? _d;
static const int D = 2;
- String _s;
+ String? _s;
static const int S = 3;
- List<String> _l;
+ List<String>? _l;
static const int L = 4;
- bool _b;
+ bool? _b;
static const int B = 5;
bool __isset_i = false;
@@ -48,9 +48,9 @@
TestTObject();
// i
- int get i => this._i;
+ int? get i => this._i;
- set i(int i) {
+ set i(int? i) {
this._i = i;
this.__isset_i = true;
}
@@ -62,9 +62,9 @@
}
// d
- double get d => this._d;
+ double? get d => this._d;
- set d(double d) {
+ set d(double? d) {
this._d = d;
this.__isset_d = true;
}
@@ -76,9 +76,9 @@
}
// s
- String get s => this._s;
+ String? get s => this._s;
- set s(String s) {
+ set s(String? s) {
this._s = s;
}
@@ -89,9 +89,9 @@
}
// l
- List<String> get l => this._l;
+ List<String>? get l => this._l;
- set l(List<String> l) {
+ set l(List<String>? l) {
this._l = l;
}
@@ -102,9 +102,9 @@
}
// b
- bool get b => this._b;
+ bool? get b => this._b;
- set b(bool b) {
+ set b(bool? b) {
this._b = b;
this.__isset_b = true;
}
@@ -134,13 +134,13 @@
}
@override
- setFieldValue(int fieldID, Object value) {
+ setFieldValue(int fieldID, Object? value) {
switch (fieldID) {
case I:
if (value == null) {
unsetI();
} else {
- this.i = value;
+ this.i = value as int;
}
break;
@@ -148,7 +148,7 @@
if (value == null) {
unsetD();
} else {
- this.d = value;
+ this.d = value as double;
}
break;
@@ -156,7 +156,7 @@
if (value == null) {
unsetS();
} else {
- this.s = value;
+ this.s = value as String;
}
break;
@@ -172,7 +172,7 @@
if (value == null) {
unsetB();
} else {
- this.b = value;
+ this.b = value as bool;
}
break;
@@ -237,11 +237,11 @@
if (field.type == TType.LIST) {
{
TList _list74 = iprot.readListBegin();
- this.l = List<String>();
+ this.l = <String>[];
for (int _i75 = 0; _i75 < _list74.length; ++_i75) {
String _elem76;
_elem76 = iprot.readString();
- this.l.add(_elem76);
+ this.l?.add(_elem76);
}
iprot.readListEnd();
}
@@ -275,21 +275,21 @@
oprot.writeStructBegin(_STRUCT_DESC);
oprot.writeFieldBegin(_I_FIELD_DESC);
- oprot.writeI32(this.i);
+ oprot.writeI32(this.i!);
oprot.writeFieldEnd();
oprot.writeFieldBegin(_D_FIELD_DESC);
- oprot.writeDouble(this.d);
+ oprot.writeDouble(this.d!);
oprot.writeFieldEnd();
if (this.s != null) {
oprot.writeFieldBegin(_S_FIELD_DESC);
- oprot.writeString(this.s);
+ oprot.writeString(this.s!);
oprot.writeFieldEnd();
}
if (this.l != null) {
oprot.writeFieldBegin(_L_FIELD_DESC);
{
- oprot.writeListBegin(TList(TType.STRING, this.l.length));
- for (var elem77 in this.l) {
+ oprot.writeListBegin(TList(TType.STRING, this.l!.length));
+ for (var elem77 in this.l!) {
oprot.writeString(elem77);
}
oprot.writeListEnd();
@@ -297,7 +297,7 @@
oprot.writeFieldEnd();
}
oprot.writeFieldBegin(_B_FIELD_DESC);
- oprot.writeBool(this.b);
+ oprot.writeBool(this.b!);
oprot.writeFieldEnd();
oprot.writeFieldStop();
oprot.writeStructEnd();
diff --git a/lib/dart/test/t_application_error_test.dart b/lib/dart/test/t_application_error_test.dart
index 848ce56..cecefc7 100644
--- a/lib/dart/test/t_application_error_test.dart
+++ b/lib/dart/test/t_application_error_test.dart
@@ -21,7 +21,7 @@
import 'package:thrift/thrift.dart';
void main() {
- TProtocol protocol;
+ late TProtocol protocol;
setUp(() {
protocol = TBinaryProtocol(TBufferedTransport());
diff --git a/lib/dart/test/transport/t_framed_transport_test.dart b/lib/dart/test/transport/t_framed_transport_test.dart
index d9a15a5..a028c6f 100644
--- a/lib/dart/test/transport/t_framed_transport_test.dart
+++ b/lib/dart/test/transport/t_framed_transport_test.dart
@@ -28,10 +28,10 @@
group('TFramedTransport partial reads', () {
final flushAwaitDuration = Duration(seconds: 10);
- FakeReadOnlySocket socket;
- TSocketTransport socketTransport;
- TFramedTransport transport;
- var messageAvailable;
+ late FakeReadOnlySocket socket;
+ late TSocketTransport socketTransport;
+ late TFramedTransport transport;
+ late bool messageAvailable;
setUp(() {
socket = FakeReadOnlySocket();
diff --git a/lib/dart/test/transport/t_http_transport_test.dart b/lib/dart/test/transport/t_http_transport_test.dart
index 13f0ee9..d0d91f4 100644
--- a/lib/dart/test/transport/t_http_transport_test.dart
+++ b/lib/dart/test/transport/t_http_transport_test.dart
@@ -34,8 +34,8 @@
const utf8Codec = Utf8Codec();
group('THttpClientTransport', () {
- FakeHttpClient client;
- THttpClientTransport transport;
+ late FakeHttpClient client;
+ late THttpClientTransport transport;
setUp(() {
client = FakeHttpClient(sync: false);
@@ -78,8 +78,8 @@
});
group('THttpClientTransport with multiple messages', () {
- FakeHttpClient client;
- THttpClientTransport transport;
+ late FakeHttpClient client;
+ late THttpClientTransport transport;
setUp(() {
client = FakeHttpClient(sync: true);
@@ -88,7 +88,7 @@
});
test('Test read correct buffer after flush', () async {
- String bufferText;
+ String bufferText= "";
var expectedText = 'response 1';
var expectedBytes = utf8Codec.encode(expectedText);
@@ -124,8 +124,8 @@
@override
Future<Response> post(url,
- {Map<String, String> headers, body, Encoding encoding}) {
- postRequest = body;
+ {Map<String, String>? headers, body, Encoding? encoding}) {
+ postRequest = body.toString();
var response = Response(postResponse, 200);
if (sync) {
@@ -136,33 +136,34 @@
}
@override
- Future<Response> head(url, {Map<String, String> headers}) =>
+ Future<Response> head(url, {Map<String, String>? headers}) =>
throw UnimplementedError();
@override
- Future<Response> get(url, {Map<String, String> headers}) =>
+ Future<Response> get(url, {Map<String, String>? headers}) =>
throw UnimplementedError();
@override
Future<Response> put(url,
- {Map<String, String> headers, body, Encoding encoding}) =>
+ {Map<String, String>? headers, body, Encoding? encoding}) =>
throw UnimplementedError();
@override
Future<Response> patch(url,
- {Map<String, String> headers, body, Encoding encoding}) =>
+ {Map<String, String>? headers, body, Encoding? encoding}) =>
throw UnimplementedError();
@override
- Future<Response> delete(url, {Map<String, String> headers}) =>
+ Future<Response> delete(Uri url,
+ {Map<String, String>? headers, Object? body, Encoding? encoding}) =>
throw UnimplementedError();
@override
- Future<String> read(url, {Map<String, String> headers}) =>
+ Future<String> read(url, {Map<String, String>? headers}) =>
throw UnimplementedError();
@override
- Future<Uint8List> readBytes(url, {Map<String, String> headers}) =>
+ Future<Uint8List> readBytes(url, {Map<String, String>? headers}) =>
throw UnimplementedError();
@override
diff --git a/lib/dart/test/transport/t_socket_transport_test.dart b/lib/dart/test/transport/t_socket_transport_test.dart
index d46f5ed..80edb68 100644
--- a/lib/dart/test/transport/t_socket_transport_test.dart
+++ b/lib/dart/test/transport/t_socket_transport_test.dart
@@ -39,8 +39,8 @@
final framedResponseBase64 = base64.encode(_getFramedResponse(responseBytes));
group('TClientSocketTransport', () {
- FakeSocket socket;
- TTransport transport;
+ late FakeSocket socket;
+ late TTransport transport;
setUp(() async {
socket = FakeSocket(sync: false);
@@ -74,8 +74,8 @@
}, timeout: Timeout(Duration(seconds: 1)));
group('TClientSocketTransport with FramedTransport', () {
- FakeSocket socket;
- TTransport transport;
+ late FakeSocket socket;
+ late TTransport transport;
setUp(() async {
socket = FakeSocket(sync: true);
@@ -87,7 +87,7 @@
});
test('Test client sending data over framed transport', () async {
- String bufferText;
+ String bufferText = "";
Future responseReady = transport.flush().then((_) {
var buffer = Uint8List(responseBytes.length);
@@ -104,9 +104,9 @@
}, timeout: Timeout(Duration(seconds: 1)));
group('TAsyncClientSocketTransport', () {
- FakeSocket socket;
- FakeProtocolFactory protocolFactory;
- TTransport transport;
+ late FakeSocket socket;
+ late FakeProtocolFactory protocolFactory;
+ late TTransport transport;
setUp(() async {
socket = FakeSocket(sync: true);
@@ -122,7 +122,7 @@
});
test('Test response correlates to correct request', () async {
- String bufferText;
+ String bufferText = "";
Future responseReady = transport.flush().then((_) {
var buffer = Uint8List(responseBytes.length);
@@ -152,9 +152,9 @@
}, timeout: Timeout(Duration(seconds: 1)));
group('TAsyncClientSocketTransport with TFramedTransport', () {
- FakeSocket socket;
- FakeProtocolFactory protocolFactory;
- TTransport transport;
+ late FakeSocket socket;
+ late FakeProtocolFactory protocolFactory;
+ late TTransport transport;
setUp(() async {
socket = FakeSocket(sync: true);
@@ -173,7 +173,7 @@
});
test('Test async client sending data over framed transport', () async {
- String bufferText;
+ String bufferText = "";
Future responseReady = transport.flush().then((_) {
var buffer = Uint8List(responseBytes.length);
@@ -251,7 +251,7 @@
_onErrorController = StreamController.broadcast(sync: sync),
_onMessageController = StreamController.broadcast(sync: sync);
- bool _isOpen;
+ bool _isOpen = false;
@override
bool get isOpen => _isOpen;
@@ -271,8 +271,8 @@
_onStateController.add(TSocketState.CLOSED);
}
- Uint8List _sendPayload;
- Uint8List get sendPayload => _sendPayload;
+ Uint8List? _sendPayload;
+ Uint8List? get sendPayload => _sendPayload;
@override
void send(Uint8List data) {
@@ -292,7 +292,7 @@
class FakeProtocolFactory implements TProtocolFactory {
FakeProtocolFactory();
- TMessage message;
+ TMessage message = TMessage("", TMessageType.CALL, 0 /* seqid */);
@override
getProtocol(TTransport transport) => FakeProtocol(message);
diff --git a/lib/dart/test/transport/t_transport_test.dart b/lib/dart/test/transport/t_transport_test.dart
index 4758593..e60f61d 100644
--- a/lib/dart/test/transport/t_transport_test.dart
+++ b/lib/dart/test/transport/t_transport_test.dart
@@ -25,16 +25,19 @@
group('TTransportFactory', () {
test('transport is returned from base factory', () async {
TTransport result;
- TTransport transport;
+ TTransport? transport;
var factory = TTransportFactory();
- result = await factory.getTransport(transport);
- expect(result, isNull);
+ try {
+ result = await factory.getTransport(transport!);
+ expect(result, isNull);
+ } catch (e) {
+ expect(e, isA<TypeError>());
+ }
- transport = TBufferedTransport();
+ transport = TBufferedTransport()..open();
result = await factory.getTransport(transport);
-
expect(result, transport);
});
});