forked from igniterealtime/Smack
-
Notifications
You must be signed in to change notification settings - Fork 4
/
changelog.html
1035 lines (942 loc) · 70.3 KB
/
changelog.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Smack Changelog</title>
<style type="text/css">
/* global font and body settings */
body {
font-size : 100%;
background-color : #d3d6d9;
padding: 0;
margin: 0 0 30px 0;
}
body, td, th {
font-family : arial, helvetica, sans-serif;
font-size : 10pt;
}
pre, tt, code {
font-family : courier new, monospace;
font-size : 9pt;
}
#pageContainer {
display: block;
position: relative;
clear: both;
background-color: #fff;
border: 1px solid #999;
padding: 40px;
margin: 30px;
-moz-border-radius: 6px;
}
#pageHeader {
display: block;
position: relative;
height: 80px;
background-color: #e7eaee;
border: 1px solid #cccccc;
border-bottom: none;
-moz-border-radius: 5px 5px 0 0;
margin: 10px 0 0 0;
}
#pageBody {
margin: 0 18px 0 20px;
}
/* anchors */
a:link {
color: #11568c;
}
a:visited {
color: #571c8d;
}
a:hover {
color: #7a1d42;
text-decoration : underline;
}
a:active {
color: #7a1d42;
}
/* page header elements (logo and navigation) */
.navigation {
display: block;
position: relative;
height: 20px;
background-color: #335588;
border: 1px solid #cccccc;
border-top: none;
color: #ffffff;
font-size: 11px;
line-height: 18px;
padding: 0 0 0 0;
margin: 0 0 25px 0;
overflow: hidden;
}
.navigation a {
margin: 0 20px 0 20px;
}
.navigation a:link { color: #ffffff; }
.navigation a:visited { color: #ffffff; }
.navigation a:hover { color: #ffffff; }
.navigation a:active { color: #ffffff; }
/* headings */
h1 {
display: block;
position: relative;
font-size : 1.7em;
font-weight : bold;
color: #670e15;
padding: 0;
margin: 30px 0 0 20px;
}
h2 {
font-size : 1.3em;
font-weight : bold;
margin: 40px 0 6px 0;
padding: 0;
color: #335588;
}
h3 {
font-size : 1.0em;
font-weight : bold;
margin: 25px 0 3px 0;
padding: 0;
color: #334466;
}
/* general elements */
p {
margin: 0 0 15px 0;
}
ul {
margin: 5px 0 15px 15px;
}
li {
padding-bottom : 4px;
}
tt {
font-family : courier new, monospace;
font-weight : bold;
color : #060;
}
hr {
display: block;
height: 1px;
background-color: #999999;
border: none;
margin: 40px 0 20px 0;
}
</style>
</head>
<body>
<div id="pageContainer">
<div id="pageHeader">
<h1>Smack Changelog</h1>
</div>
<div class="navigation">
<a href="README.html">Readme</a>|<a href="changelog.html"><strong>Changelog</strong></a>
</div>
<div id="pageBody">
<h2>4.1.5 -- <span style="font-weight: normal;">2015-11-22</span></h2>
<h2> Bug
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-698'>SMACK-698</a>] - Time creates invalid XML
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-700'>SMACK-700</a>] - Duplicate stanzas in unacknowledgedStanzas queue when stream is resumed
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-702'>SMACK-702</a>] - RejectedExecutionException in AbstractXMPPConnection.processPacket() causes connection Termination
</li>
</ul>
<h2>4.1.4 -- <span style="font-weight: normal;">2015-09-14</span></h2>
<h2> Bug
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-688'>SMACK-688</a>] - Reset carbons state if session got not resumed or cleanly disconnected
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-689'>SMACK-689</a>] - PEPPubSub creates malformed XML
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-693'>SMACK-693</a>] - MultiUserChat's UserStatusListener is not getting triggered
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-695'>SMACK-695</a>] - JSON and GCM parser does an erroneous extra next()
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-697'>SMACK-697</a>] - PrivacyListManager should handle the case where not default and active list are currently set
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-686'>SMACK-686</a>] - Provide a hint that connect() needs to be called prior login() in NotConnectedException
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-687'>SMACK-687</a>] - Update to jxmpp 0.4.2
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-696'>SMACK-696</a>] - Drop stream state after stream error
</li>
</ul>
<h2>4.1.3 -- <span style="font-weight: normal;">2015-07-15</span></h2>
<h2> Bug
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-679'>SMACK-679</a>] - Memory leak in Socks5BytestreamManager. Should use weak map for 'managers'
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-680'>SMACK-680</a>] - XHTML bodies are un-escaped after parsing
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-681'>SMACK-681</a>] - Roster presence callbacks may not be invoked right after login
</li>
</ul>
<h2>4.1.2 -- <span style="font-weight: normal;">2015-06-27</span></h2>
<h2> Bug
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-664'>SMACK-664</a>] - Invalid IQ error response to OfferRequestPacket and OfferRevokePacket
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-668'>SMACK-668</a>] - ReconnectionManager's value of 'attempts' is not reset after successful reconnection
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-669'>SMACK-669</a>] - Only add Entity Capabilities extension to available presences
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-670'>SMACK-670</a>] - SASLMechanism.authenticate should treat an empty byte array like 'null' byte array
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-672'>SMACK-672</a>] - Memory leak caused by RosterGroup declaring a strong reference to XMPPConnection
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-673'>SMACK-673</a>] - VCard API does not support all elements
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-676'>SMACK-676</a>] - ConcurrentModificationException in ServerPingWithAlarmManager
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-678'>SMACK-678</a>] - Login hangs if starttls advertised, but security is set to 'disabled' and compression is also advertised
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-667'>SMACK-667</a>] - Request Stream Mangement Acknowledgement after re-sending unack'ed stanzas after stream resumption
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-671'>SMACK-671</a>] - Don't disable Scoks5BytestreamManager on connection termination
</li>
</ul>
<h2>4.1.1 -- <span style="font-weight: normal;">2015-05-09</span></h2>
<h2> Bug
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-649'>SMACK-649</a>] - DIGEST-MD5 challenge/response parsing must handle linear white spaces after the comma
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-652'>SMACK-652</a>] - SynchronizationPoint should use signalAll
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-653'>SMACK-653</a>] - Integer overflow if both client and server don't specify a max resumption time
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-654'>SMACK-654</a>] - isSmResumptionPossible() returns wrong values
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-656'>SMACK-656</a>] - DeliveryReceipts auto add should use packet interceptors and should not be requested for messages with ACKs.
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-659'>SMACK-659</a>] - Memory leak caused by RosterEntry declaring a strong reference to XMPPConnection
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-660'>SMACK-660</a>] - ReconnectionManager's RANDOM_INCREASING_DELAY is erroneously using a fixed value.
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-661'>SMACK-661</a>] - Add method to set ProxyInfo in ConnectionConfiguration.Builder
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-662'>SMACK-662</a>] - RosterEntry.setName() does not change the name
</li>
</ul>
<h2>4.1.0 -- <span style="font-weight: normal;">2015-03-29</span></h2>
<h2> Sub-task
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-398'>SMACK-398</a>] - Implement SCRAM support
</li>
</ul>
<h2> Bug
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-65'>SMACK-65</a>] - Packet parsing should look for depth
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-237'>SMACK-237</a>] - Handle more vCard values (XEP-0054)
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-383'>SMACK-383</a>] - Allow the garbage collection of all object instances of a closed and unreferenced connection
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-424'>SMACK-424</a>] - Add a MultiUserChat.presenceChanged callback method to be informed if a presence within a MUC has changed (joined, leaved, status change)
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-542'>SMACK-542</a>] - MUC: RoomInfo should hold more data if the result contains a FORM_TYPE field
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-549'>SMACK-549</a>] - MUCUser#getStatus should be a List
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-564'>SMACK-564</a>] - Some tests fail with Java 8
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-570'>SMACK-570</a>] - Smack does not support resourceparts which contain the '@' character.
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-571'>SMACK-571</a>] - Don't remove the MUC listeners after a disconnect() , keep state of Connection between disconnect() and connect()/login()
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-573'>SMACK-573</a>] - MessageEventManager treats error replies as message events
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-583'>SMACK-583</a>] - PacketListeners may not be invoked in delivery order
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-585'>SMACK-585</a>] - XMPPTCPConnection does not set 'host' and 'port'
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-590'>SMACK-590</a>] - Don't use IQReplyFilter for the bind set/result exchange
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-597'>SMACK-597</a>] - PingManager.getLastReceivedPong() always returns -1
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-604'>SMACK-604</a>] - MUCUser must support multiple status codes
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-620'>SMACK-620</a>] - Smack should use a safe SAX parser, e.g. with entity reference expansion disabled
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-635'>SMACK-635</a>] - Typo DNSUtil.init() prevents DNS SRV lookups to fail in some cases
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-643'>SMACK-643</a>] - Smack should not set the service name to the vale of the 'from' attribute of the opening stream element received from the service
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-340'>SMACK-340</a>] - Should make the wait/timeouts on SASL authentication configurable.
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-402'>SMACK-402</a>] - Update obsolete "Message Delivery Receipts" support from (JEP|XEP)-0022 to XEP-0184
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-453'>SMACK-453</a>] - Add support for all primitive types in IntrospectionProvider.decode()
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-521'>SMACK-521</a>] - Clear PacketWriters queue when the connection is shut down
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-532'>SMACK-532</a>] - Evaluate if its possible to guarantee the order of listeners by using a LinkedHashMap
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-566'>SMACK-566</a>] - Create public method that parses Strings/CharSequences to messages, IQs and presence instances
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-587'>SMACK-587</a>] - Subprojects should uses versions when importing the OSGi smack-core components
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-595'>SMACK-595</a>] - Add an API to send a stanza and wait asynchronously for a response
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-599'>SMACK-599</a>] - Provide string messages to all exceptions thrown by Smack
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-600'>SMACK-600</a>] - RoomInfo Class should add the information from the Identity element.
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-608'>SMACK-608</a>] - Add support for XMPP error conditions text
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-622'>SMACK-622</a>] - Add support for 'optional' in session stream features
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-626'>SMACK-626</a>] - Add support for 'ofrom' Extended Stanza Addressing type
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-627'>SMACK-627</a>] - Smack should allow null usernames under certain circumstances
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-645'>SMACK-645</a>] - Roster should not leak internal state e.g. presences
</li>
</ul>
<h2> New Feature
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-234'>SMACK-234</a>] - Add support for SASL EXTERNAL: PKI (Client SSL Cert) Support
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-333'>SMACK-333</a>] - Implement XEP-0198: Stream Management
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-378'>SMACK-378</a>] - Give access to the socket outside the XMPPconnection
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-581'>SMACK-581</a>] - Add support for "Result Set Management" (XEP-59)
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-607'>SMACK-607</a>] - Add support for XEP-0352: Client State Indication
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-612'>SMACK-612</a>] - Add support for XEP-0141: Data Forms Layout
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-621'>SMACK-621</a>] - Add support for XEP-0122: Data Forms Validation
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-623'>SMACK-623</a>] - Add API to retrieve the subscriptions of a PubSub node as owner
</li>
</ul>
<h2> Task
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-365'>SMACK-365</a>] - SmackConfiguration should only report errors if the file fails to load, not when it fails to load for a specific classloader.
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-371'>SMACK-371</a>] - Some MUC tasks are using stanza's as defined in an older version of the spec. Fails to work on some servers.
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-569'>SMACK-569</a>] - Move Message Event code to legacy subproject
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-578'>SMACK-578</a>] - Remove decorators for "Legacy Delayed Delivery" (XEP-91) in favor of Delayed Delivery (XEP-203)
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-579'>SMACK-579</a>] - FileTransferManager and FileTransferNegoiator should use WeakHashMaps and extend Manager
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-582'>SMACK-582</a>] - Change ReceiptReceivedListener.onReceiptReceived parameters
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-637'>SMACK-637</a>] - Move Roster and Chat code to new smack-im subproject
</li>
</ul>
<h2>4.0.7 -- <span style="font-weight: normal;">2015-02-20</span></h2>
<h2> Bug
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-635'>SMACK-635</a>] - Typo DNSUtil.init() prevents DNS SRV lookups to fail in some cases
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-643'>SMACK-643</a>] - Smack should not set the service name to the vale of the 'from' attribute of the opening stream element received from the service
</li>
</ul>
<h2>4.0.6 -- <span style="font-weight: normal;">2014-11-23</span></h2>
<h2> Bug
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-616'>SMACK-616</a>] - Smack should fallback to using host with default port if DNS SRV lookup fails
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-617'>SMACK-617</a>] - Message Digest in EntityCapsManager should be synchronized
</li>
</ul>
<h2>4.0.5 -- <span style="font-weight: normal;">2014-10-22</span></h2>
<h2> Bug
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-609'>SMACK-609</a>] - PingManager.ping(String, long) does not respect timeout
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-613'>SMACK-613</a>] - Parsing exception causes infinite loop if the exception is not thrown
</li>
</ul>
<h2>4.0.4 -- <span style="font-weight: normal;">2014-09-05</span></h2>
<h2> Bug
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-596'>SMACK-596</a>] - Smack should load roster before sending the initial presence
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-598'>SMACK-598</a>] - Smack should allow the empty string as content of message body element
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-601'>SMACK-601</a>] - PubSub ItemProvider does only process the outermost namespace definition when creating PayloadItems
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-602'>SMACK-602</a>] - PacketCollector must handle InterruptException
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-603'>SMACK-603</a>] - XMPPError.Condition.equals() should be null-safe
</li>
</ul>
<h2>4.0.3 -- <span style="font-weight: normal;">2014-08-16</span></h2>
<h2> Bug
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-589'>SMACK-589</a>] - FormField.Option toXML() produces malformed XML
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-592'>SMACK-592</a>] - OfflineMessagesManager.getMessages() does send request before collector is set up and could leak collector
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-594'>SMACK-594</a>] - PrivateData Bookmarks.toXML() returns invalid XML
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-539'>SMACK-539</a>] - Verify ConnectionConfiguration parameters
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-588'>SMACK-588</a>] - Typo in org.jivesoftware.smackx.pubsub.ConfigureForm: s/isSubscibe/isSubscribe/
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-593'>SMACK-593</a>] - Smack should prefer full flush over sync flush when using compression
</li>
</ul>
<h2>4.0.2 -- <span style="font-weight: normal;">2014-07-27</span></h2>
<h2> Improvement
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-576'>SMACK-576</a>] - smack-resolver-javax should become a OSGi ServiceComponent
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-586'>SMACK-586</a>] - Extend API to configure a HostnameVerifier
</li>
</ul>
<h2>4.0.1 -- <span style="font-weight: normal;">2014-07-20</span></h2>
<h2> Sub-task
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-346'>SMACK-346</a>] - Bug in return code for rejection handling in FileTransferManager
</li>
</ul>
<h2> Bug
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-574'>SMACK-574</a>] - Documentation still refers at some places to Connection
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-575'>SMACK-575</a>] - PingManager schedules pings after pingInterval when it should be use nextPingIn instead
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-577'>SMACK-577</a>] - Bookmarks and FormField toXml() methods do not properly escape XML
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-583'>SMACK-583</a>] - PacketListeners may not be invoked in delivery order
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-576'>SMACK-576</a>] - smack-resolver-javax should become a OSGi ServiceComponent
</li>
</ul>
<h2> New Feature
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-580'>SMACK-580</a>] - Add support for retrieving a PubSub node's affiliations
</li>
</ul>
<h2>4.0.0 -- <span style="font-weight: normal;">2014-06-08</span></h2>
<h2> Sub-task
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-399'>SMACK-399</a>] - Add support for Roster Versioning (was XEP-0237, now in RFC 6121)
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-400'>SMACK-400</a>] - Change xml-not-well-formed to not-well-formed
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-401'>SMACK-401</a>] - Remove <invalid-id/>
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-445'>SMACK-445</a>] - XMPPError class is based on deprecated XEP-0086
</li>
</ul>
<h2> Bug
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-357'>SMACK-357</a>] - Error in SASL authentication when SASL authzid parameter is null
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-410'>SMACK-410</a>] - Any valid SSL server certificate can be used to perform a man-in-the-middle attack
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-411'>SMACK-411</a>] - ServiceDiscoveryManager identities should be non-static and kept in a Set to allow multiple identities as per XEP-30
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-414'>SMACK-414</a>] - Smack does not announce the support for XEP-54 aka vcard-temp
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-427'>SMACK-427</a>] - Typo in code - StreamInitiation.setSesssionID()
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-467'>SMACK-467</a>] - Don't use the default locale for machine-readable output, use Locale.US instead
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-531'>SMACK-531</a>] - Add missing namespace attribute to XHTML-IM body tags
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-533'>SMACK-533</a>] - Smack should prevent IQ response spoofing
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-535'>SMACK-535</a>] - jul.properties should only configure the 'org.igniterealtime' namespace
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-538'>SMACK-538</a>] - ParseRoster does not check the sender of the roster and for pending roster queries
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-541'>SMACK-541</a>] - XHTMLExtensionProvider relies on incorrect behavior of MXParser, violating the contract of the XMLPullParser interface
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-543'>SMACK-543</a>] - packet.Time is not thread-safe
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-546'>SMACK-546</a>] - PubSub's Item needs to escape its XML payload
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-548'>SMACK-548</a>] - PingManager notifies pingFailedListeners multiple times
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-551'>SMACK-551</a>] - ChatManager throws NPE, when Message has no 'from' attribute
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-554'>SMACK-554</a>] - Memory leak in BookmarkManager
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-555'>SMACK-555</a>] - VCardProvider should consider some elements as optional
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-558'>SMACK-558</a>] - connect() must wait until the stream features have been parsed
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-559'>SMACK-559</a>] - Roster entries without a group are not updated
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-560'>SMACK-560</a>] - Race condition in PacketWriter
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-567'>SMACK-567</a>] - XMPPConnection leaks listenerExecutor ExecutorService
</li>
</ul>
<h2> Improvement
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-343'>SMACK-343</a>] - Make Smack jar an OSGi bundle.
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-356'>SMACK-356</a>] - There is no way to reliably end a Chat and have a new one created.
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-454'>SMACK-454</a>] - Follow XEP-0170 recommendation: Compression before Resource Binding
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-459'>SMACK-459</a>] - Add option to configure the default identity in ServiceDiscoveryManager
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-465'>SMACK-465</a>] - Replace custom wrapped Throwable in XMPPException with Exception.cause
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-468'>SMACK-468</a>] - Don't throw an IOException in IBBStreams when the stream got closed by the remote
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-536'>SMACK-536</a>] - JUL Loggers should become final
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-537'>SMACK-537</a>] - Move XMPP Ping code to smackx, add keep-alive functionality to PingManager
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-545'>SMACK-545</a>] - Change API to the style mentioned in Smack's Code Guidelines
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-547'>SMACK-547</a>] - Consistent behavior for "from" attribute on outgoing stanzas
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-556'>SMACK-556</a>] - Make ConnectionConfigration getters public
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-557'>SMACK-557</a>] - Provide a MultiUserChat method to create *or* join a room
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-568'>SMACK-568</a>] - Don't exclude groupchat messages without body element in MultiUserChat MessageListeners
</li>
</ul>
<h2> New Feature
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-53'>SMACK-53</a>] - Add support for XEP-0092: Software Version
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-71'>SMACK-71</a>] - Create new FromFilter that checks for exact matching
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-187'>SMACK-187</a>] - Add HTTP Binding support (BOSH / XEP-0124)
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-265'>SMACK-265</a>] - Move to a newer build process with artifacts published to maven central repo
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-426'>SMACK-426</a>] - Improve XMPPException
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-544'>SMACK-544</a>] - Add support for XEP-0079: Advanced Message Processing
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-552'>SMACK-552</a>] - Add support for "HTTP over XMPP transport" aka. XEP-0332
</li>
</ul>
<h2> Task
</h2>
<ul>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-371'>SMACK-371</a>] - Some MUC tasks are using stanza's as defined in an older version of the spec. Fails to work on some servers.
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-432'>SMACK-432</a>] - Code cleanup of deprecated methods
</li>
<li>[<a href='https://igniterealtime.org/issues/browse/SMACK-446'>SMACK-446</a>] - Remove non-SASL authentication code
</li>
</ul>
<h2>3.4.1 -- <span style="font-weight: normal;">Feb 9, 2014</span></h2>
<h2>Bug</h2>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-540'>SMACK-540</a>] - Memory leak in MultiUserChat
</li>
</ul>
<h2>3.4.0 -- <span style="font-weight: normal;">Feb 2, 2014</span></h2>
<h2>Bug Fixes</h2>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-442'>SMACK-442</a>] - Manager's should also handle connectionClosedOnError()</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-443'>SMACK-443</a>] - ReconnectionSuccessful listeners are invoked twice on reconnection if connect() failed before</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-452'>SMACK-452</a>] - PacketParserUtils.parseStreamError() is not aware of optional text element and therefore failes to parse stream error's correctly. Prevents ReconnectionManager from reconnecting.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-458'>SMACK-458</a>] - Smack's Managers should not remove itself when the connection is closed or should re-add themselfs if the connection get reconnected</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-462'>SMACK-462</a>] - Prevent duplicate manager instances by using the manager's constructor in the ConnectionCreationListener's connectionCreated</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-463'>SMACK-463</a>] - packet listeners silently fail when preceding listener caused exception</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-524'>SMACK-524</a>] - Use correct block-size definition for IBB transfers</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-525'>SMACK-525</a>] - NPE in XMPPConnection.notifyConnectionError</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-529'>SMACK-529</a>] - Add support for XEP-0280 "Message Carbons"</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-530'>SMACK-530</a>] - DNSUtilTest requires an internet connection to work, it should be moved to integration tests.</li>
</ul>
<h2>New Feature</h2>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-286'>SMACK-286</a>] - Need to change ProviderManager to support loading smack.providers from alternative locations</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-387'>SMACK-387</a>] - Allow configuration of ChatManager to be able to allow message handling to be customized.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-403'>SMACK-403</a>] - Add support for XEP-0297 "Stanza Forwarding"</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-434'>SMACK-434</a>] - Create a project to contain non production ready implementations of specifications</li>
</ul>
<h2>Improvement</h2>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-343'>SMACK-343</a>] - Make Smack jar an OSGi bundle.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-381'>SMACK-381</a>] - Separate the configuration for smack extension related classes from the smack jar.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-444'>SMACK-444</a>] - Allow 'null' for TruststorePath and TruststorePassword in ServerTrustManager</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-456'>SMACK-456</a>] - Add the causing exception to the XMPPExceptions thrown in XMPPConnection</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-457'>SMACK-457</a>] - Remove unnecessary printStackTrace() in XMPPConnection</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-460'>SMACK-460</a>] - ServiceDiscoveryManager should not use the constructor in connectionCreated()</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-461'>SMACK-461</a>] - Remove incorrect deprecated marker for DiscoverInfo.Identity.setType()</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-464'>SMACK-464</a>] - Make it clear that PacketListener's added with XMPPConnection.addPacketListener() are only for received packets</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-534'>SMACK-534</a>] - Convert all System.out and printStackTrace calls to use Java util logging.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-339'>SMACK-339</a>] - Allow ConnectionListeners to be added before XMPPConnection is connected. Currently throws exception</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-373'>SMACK-373</a>] - Don't remove listeners after a disconnect() , keep state of XMPPConnection between disconnect() and connect()/login()</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-434'>SMACK-434</a>] - Create a project to contain non production ready implementations of specifications</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-526'>SMACK-526</a>] - Deprecate all PEP related classes.</li>
</ul>
<h2>3.3.1 -- <span style="font-weight: normal;">Oct 6, 2013</span></h2>
<h2>Bug Fixes</h2>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-428'>SMACK-428</a>] - RosterEntry overrides equals, but not hashcode.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-438'>SMACK-438</a>] - Possible NPE in MultiUserChat.InvitationsMonitor.getInvitationsMonitor()</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-441'>SMACK-441</a>] - Memory leak in KeepAliveManager</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-447'>SMACK-447</a>] - Compression is not enabled for Java7ZlibInputOutputStream</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-448'>SMACK-448</a>] - Java7ZlibInputOutputStream does not work. Deflater.DEFAULT_STRATEGY is used as compression level when it should use Deflater.DEFAULT_COMPRESSION</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-450'>SMACK-450</a>] - VCard.load() throws null pointer exception if there is no VCard for the user</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-455'>SMACK-455</a>] - Multiple items doesn`t not parse correctly in a pubsub message</li>
</ul>
<h2>New Feature</h2>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-425'>SMACK-425</a>] - Collect (parser) Exceptions and unparseable stanzas. Provide a callback method so that the user is notified about them if he wants to</li>
</ul>
<h2>Improvement</h2>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-369'>SMACK-369</a>] - Exceptions during login should get thrown back up to the caller.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-439'>SMACK-439</a>] - Improve documentation for MultiUserChat.InvitationsListener</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-451'>SMACK-451</a>] - PingManager entry in META-INF/smack.providers is within Ad-Hoc Command section</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-431'>SMACK-431</a>] - Enable Entity Caps as default for new connections and write extensions documentation html page</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-405'>SMACK-405</a>] - Cleanup of redundant code in XMPPConnection.shutdown()</li>
</ul>
<h2>3.3.0 -- <span style="font-weight: normal;">May 4, 2013</span></h2>
<h2>Bug Fixes</h2>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-225'>SMACK-225</a>] - Improper handeling of DNS SRV records</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-238'>SMACK-238</a>] - The vCard avatar type always return jpg</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-270'>SMACK-270</a>] - Fix for a memory leak in MUC with MUC.finalize()</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-278'>SMACK-278</a>] - Deadlock during Smack disconnect</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-342'>SMACK-342</a>] - VCards causes ConcurrentModificationException</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-344'>SMACK-344</a>] - Bug in SASL authentication mechanism when SRV records are being used.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-351'>SMACK-351</a>] - Rework File Transfer</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-352'>SMACK-352</a>] - Update the licensing headers in various files.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-355'>SMACK-355</a>] - IO Error if smack cant use port for local proxy</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-371'>SMACK-371</a>] - Some MUC tasks are using stanza's as defined in an older version of the spec. Fails to work on some servers.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-375'>SMACK-375</a>] - Node strings in the discovery info packets are not escaped as in the other packets</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-382'>SMACK-382</a>] - Prevent memory leak in AdHocCommandManager</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-384'>SMACK-384</a>] - Endless waiting for connection to be established</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-390'>SMACK-390</a>] - Smack login will fail if a bad delay packet is received</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-392'>SMACK-392</a>] - In ant build, compile-test target doesn't work.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-394'>SMACK-394</a>] - Erroneous cast in IBBInputStream's read() method</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-395'>SMACK-395</a>] - Socks5BytestreamManager's establishConnection() should still try to use the local streamhost proxy if the server doesn't provide one</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-404'>SMACK-404</a>] - Smack uses the wrong method to decode Base64 Strings</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-413'>SMACK-413</a>] - VCardProvider incorrectly parses binary value of avatars</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-415'>SMACK-415</a>] - ItemProvider relies on incorrect behavior of MXParser, violating the contract of the XMLPullParser interface</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-417'>SMACK-417</a>] - If both PacketReader and PacketWriter fail at the same time, connectionClosedonError() is called two times</li>
</ul>
<h2>New Features</h2>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-331'>SMACK-331</a>] - Add support for XEP-0184: Message Delivery Receipts</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-345'>SMACK-345</a>] - Inproved detection of last activity</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-361'>SMACK-361</a>] - Add support for XEP-0115 Entity Capabilities</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-376'>SMACK-376</a>] - Setting a custom trust manager to control certificates from outside</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-388'>SMACK-388</a>] - XEP-199 XMPP Ping support</li>
</ul>
<h2>Improvements</h2>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-341'>SMACK-341</a>] - Update the PacketCollector and ConnectionDetachedPacketCollector to use the java concurrent classes.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-358'>SMACK-358</a>] - Support additional properties for account creation in test cases.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-363'>SMACK-363</a>] - Code Cleanup</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-377'>SMACK-377</a>] - avoid unnecessary DNS requests in XMPPconnection</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-379'>SMACK-379</a>] - Sessions were removed from the specification but Smack still uses them. Should be updated to reflect the spec changes.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-385'>SMACK-385</a>] - Reusing KeyStore in order to reduce memory usage</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-389'>SMACK-389</a>] - Add java.util.zip.Deflater(In|Out)putStream as Java7 API native alternative to JZlib </li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-391'>SMACK-391</a>] - Improve date parsing in StringUtils and make DelayInformationProvider use StringUtils for date parsing.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-412'>SMACK-412</a>] - Replace the whitespace ping with a XEP-0199 ping</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-419'>SMACK-419</a>] - PacketWriter: Only flush the BufferedWriter if the packet queue is empty</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-423'>SMACK-423</a>] - Investigate whether unhandled packets should still parse the child xml into a string as content</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-430'>SMACK-430</a>] - Throw an exception if FileTransferManager.createOutgoingFileTransfer() was used with a bare JID</li>
</ul>
<h2>3.2.2 -- <span style="font-weight: normal;">Dec. 23, 2011</span></h2>
<h3>Bug Fixes</h3>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-263'>SMACK-263</a>] - Set file info in all send* methods</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-322'>SMACK-322</a>] - NPE in XMPPConnection</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-324'>SMACK-324</a>] - Investigate SASL issue with jabberd2 servers</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-338'>SMACK-338</a>] - IBB filetransfer doesn't work as expected</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-346'>SMACK-346</a>] - Bug in return code for rejection handling in FileTransferManager</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-348'>SMACK-348</a>] - Documentation error - broken link</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-349'>SMACK-349</a>] - Smack's IBB sends too much data in a packet</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-350'>SMACK-350</a>] - Bytestream is not working in Spark 2.6.3 from XP to W7</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-353'>SMACK-353</a>] - Thread leak in the FaultTolerantNegotiator</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-362'>SMACK-362</a>] - smack throw NoSuchElementException if the muc#roominfo_subject has no values</li>
</ul>
<h3>Improvements</h3>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-343'>SMACK-343</a>] - Make Smack jar an OSGi bundle.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-354'>SMACK-354</a>] - Provide milliseconds in timestamp colum debugwindow</li>
</ul>
<h2>3.2.1 -- <span style="font-weight: normal;">July 4, 2011</span></h2>
<h3>Bug Fixes</h3>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-129'>SMACK-129</a>] - MultiUserChat will Store Messages in its PacketCollector irregardless of whether or not they are being read</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-230'>SMACK-230</a>] - Disconnect Can Cause Null Pointer Exception</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-273'>SMACK-273</a>] - Bug in RoomListenerMultiplexor.java</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-329'>SMACK-329</a>] - XHTMLText uses improper format for br tag</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-338'>SMACK-338</a>] - IBB filetransfer doesn't work as expected</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-324'>SMACK-324</a>] - Investigate SASL issue with jabberd2 servers</li>
</ul>
<h2>3.2.0 -- <span style="font-weight: normal;">May 3, 2011</span></h2>
<h3>New Features</h3>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-272'>SMACK-272</a>] - Add support for pubsub (XEP-0060)</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-296'>SMACK-296</a>] - Add support for XEP-0224: Attention</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-319'>SMACK-319</a>] - Add common interfaces for SOCKS5 Bytestreams and In-Band Bytestreams</li>
</ul>
<h3>Improvements</h3>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-137'>SMACK-137</a>] - File Transfer Settings</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-156'>SMACK-156</a>] - Add the ability to register for roster events before logging in</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-261'>SMACK-261</a>] - Minor Jingle cleanup to better support Jingle in Spark</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-277'>SMACK-277</a>] - Update XMLUnit to the latest version</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-282'>SMACK-282</a>] - Support SASL-related error conditions.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-283'>SMACK-283</a>] - Investigate why Jingle is connecting to stun.xten.net</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-285'>SMACK-285</a>] - Add support for Nicks</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-289'>SMACK-289</a>] - There is no way of retrieving items from a pubsub node when the user has multiple subscriptions.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-294'>SMACK-294</a>] - Handle empty roster groups and no goups in the same way</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-295'>SMACK-295</a>] - Fire reconnectionSuccessful event when session is established</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-297'>SMACK-297</a>] - add configuration for local Socks5 proxy</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-298'>SMACK-298</a>] - Respond to all incoming Socks5 bytestream requests</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-299'>SMACK-299</a>] - Improve accepting of Socks5 bytestream requests</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-300'>SMACK-300</a>] - improve local Socks5 proxy implemetation</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-301'>SMACK-301</a>] - support for bytestream packets to query Socks5 proxy for network address</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-302'>SMACK-302</a>] - Improve establishing of Socks5 bytestreams</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-303'>SMACK-303</a>] - integrate of the extracted Socks5 bytestream API in file transfer API</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-304'>SMACK-304</a>] - Extend the IQ API to create empty IQ results and IQ error response packets</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-307'>SMACK-307</a>] - Improve Message Parser Robustness and Message Body I18N</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-309'>SMACK-309</a>] - Fully implement XEP-0047 In-Band Bytestreams</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-310'>SMACK-310</a>] - Add Support for Localized Message Subjects</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-163'>SMACK-163</a>] - Fix NPE in RoomInfo when subject has not value</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-207'>SMACK-207</a>] - Parsing of messages may disconnect Smack/Spark</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-225'>SMACK-225</a>] - Improper handeling of DNS SRV records</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-232'>SMACK-232</a>] - Better handling of Roster error</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-243'>SMACK-243</a>] - Packet with wrong date format makes Smack to disconnect</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-264'>SMACK-264</a>] - fix for NPE in SASLMechanism.java</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-269'>SMACK-269</a>] - Smack 3.1.0 creates a new chat for every incoming message</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-271'>SMACK-271</a>] - Deadlock in XMPPConnection while login and parsing stream features</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-275'>SMACK-275</a>] - Patch: Fix for broken SASL DIGEST-MD5 implementation</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-280'>SMACK-280</a>] - The authentification should use the XMPPConnection#sendPacket method and work transparent with packets and packet listeners.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-288'>SMACK-288</a>] - The parsing of the result for a LeafNode.getItems() call is incorrect. It creates a DefaultPacketExtension instead of an Item for every other item in the result.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-290'>SMACK-290</a>] - Deadlock while getting Roster before it's initialized</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-291'>SMACK-291</a>] - RosterGroup modifications should depend on roster push</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-293'>SMACK-293</a>] - Support optional roster subscription attribute</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-305'>SMACK-305</a>] - RosterEntry#getGroups causing a roster reload</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-308'>SMACK-308</a>] - Multiple errors in pubsub GetItemsRequest</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-312'>SMACK-312</a>] - Only fire RosterListener#entriesUpdated for RosterEntries that changed</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-327'>SMACK-327</a>] - getFeatures() method on DiscoverInfo is improperly set to be package protected instead of public</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-328'>SMACK-328</a>] - Number format exception while parsing dates.</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-332'>SMACK-332</a>] - Smack 3.2.0b2 shows wrong version in Smack Dubugger Window</li>
<li>[<a href='http:https://issues.igniterealtime.org/browse/SMACK-334'>SMACK-334</a>] - Error in form for FileTransferNegotiator</li>
</ul>
<h2>3.1.0 -- <span style="font-weight: normal;">November 20, 2008</span></h2>
<h3>New Features</h3>
<ul>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-142'>SMACK-142</a>] - Added support for Kerberos/NTLM. <b>(6 votes)</b></li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-210'>SMACK-210</a>] - Added support for MD5 SASL. <b>(1 vote)</b></li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-256'>SMACK-256</a>] - Added support for new sophisticated TLS mechanisms including SmartCard and Apple's KeychainStore.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-242'>SMACK-242</a>] - Added support for JEP-50: Ad-hoc commands.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-251'>SMACK-251</a>] - Added support for XEP-0163: Personal Eventing Protocol. <b>(1 vote)</b></li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-226'>SMACK-226</a>] - XMLConnection can now be used with an http/socks proxy. <b>(2 votes)</b></li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-254'>SMACK-254</a>] - Loading the Roster during login is now optional.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-255'>SMACK-255</a>] - Added ability to set mime type for avatar.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-235'>SMACK-235</a>] - Improved performance of Roster class.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-241'>SMACK-241</a>] - Updated Base64 implementation to match Openfire's.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-240'>SMACK-240</a>] - Updated Jingle implementation to newest version.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-246'>SMACK-246</a>] - Improve Jingle logging using commons-logging</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-244'>SMACK-244</a>] - Updated JSTUN to 0.7.2.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-259'>SMACK-259</a>] - Updated XPP library to latest version.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-231'>SMACK-231</a>] - IBB Outputstream was not being flushed before it was closed.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-236'>SMACK-236</a>] - Renamed stanza error "unexpected-condition" to "unexpected-request".</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-258'>SMACK-258</a>] - Fixed disconnection issue when parsing SASL success that contained a payload.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-175'>SMACK-175</a>] - Fixed typo in RosterPacket.ItemStatus constant.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-260'>SMACK-260</a>] - Added handling of error presence packets</li>
</ul>
<h2>3.0.3 -- <span style="font-weight: normal;">May 31, 2007</span></h2>
<h3>New Features</h3>
<ul>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-99'>SMACK-99</a>] - Added support for multiple message bodies and message body languages.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-218'>SMACK-218</a>] - Implemented GSSAPI for single-sign on.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-219'>SMACK-219</a>] - The getPresence method was not working correctly with offline presence.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-224'>SMACK-224</a>] - SASL authenticion was using the XMPP domain instead of the FQDN.</li>
</ul>
<h2>3.0.2 -- <span style="font-weight: normal;">May 3, 2007</span></h2>
<h3>Bug Fixes</h3>
<ul>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-212'>SMACK-212</a>] - Jingle can't establish session if only one side has a relay service</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-213'>SMACK-213</a>] - RTP Bridge Resolver get wrong localhost address in certain situations</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-214'>SMACK-214</a>] - Presences with a negative priority of -1 are not sending the priority to the server</li>
</ul>
<h2>3.0.1 -- <span style="font-weight: normal;">April 12, 2007</span></h2>
<h3>Bug Fixes</h3>
<ul>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-211'>SMACK-211</a>] - Jingle ICE with relay sometimes closed sessions.</li>
<li>Upgraded bundled version of JSTUN.</li>
</ul>
<h2>3.0.0 -- <span style="font-weight: normal;">March 31, 2007</span></h2>
<h3>Important Changes</h3>
<ul>
<li>Java 5 is now required.</li>
<li>Several API changes are not backwards compatible. In particular, connection handling has
been significantly updated, the GroupChat class has been dropped in favor of the standardized
MultiUserChat, and the Chat class has an updated API.</li>
</ul>
<h3>New Features</h3>
<ul>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-74'>SMACK-74</a>] - Added support for unavailable presences with status text. <b>(4 votes)</b></li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-191'>SMACK-191</a>] - RosterListener API improvements.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-194'>SMACK-194</a>] - Roster.getPresence(String) now considers mode after priority to determine the presence value to return.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-195'>SMACK-195</a>] - Added the ability to disconnect with a custom presence value (for offline status).</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-200'>SMACK-200</a>] - Added convenience methods to Presence class.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-31'>SMACK-31</a>] - Added support for privacy lists. <b>(4 votes)</b></li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-94'>SMACK-94</a>] - Added support for last activity of online users. <b>(1 vote)</b></li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-121'>SMACK-121</a>] - Added support for stream errors.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-136'>SMACK-136</a>] - Added support for XEP-0048: bookmark storage.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-144'>SMACK-144</a>] - Added bookmark manager for central bookmark management.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-150'>SMACK-150</a>] - Added support for handling node features in disco.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-167'>SMACK-167</a>] - Added support for XEP-0106: JID Escaping</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-171'>SMACK-171</a>] - The presence of available contacts is now changed to offline when the connection is closed.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-172'>SMACK-172</a>] - Added support for re-connection when the connection is abruptly closed.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-182'>SMACK-182</a>] - ProviderManager is now pluggable (for Eclipse ECF).</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-185'>SMACK-185</a>] - Added the workgroup API to Smack.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-206'>SMACK-206</a>] - Added the option to specify the username to use for the automated test cases.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-208'>SMACK-208</a>] - Added a max queue size for outgoing packets to prevent memory issues during extreme load.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-209'>SMACK-209</a>] - Initial Jingle support implemented.</li>
</ul>
<h3>Bug Fixes</h3>
<ul>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-6'>SMACK-6</a>] - Don't force use of collectors in Chat class.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-10'>SMACK-10</a>] - Flush pending packets before closing the connection. <b>(4 votes)</b></li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-51'>SMACK-51</a>] - Use unique Thread names among connections.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-54'>SMACK-54</a>] - Add #equals and #hashCode to Occupant.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-86'>SMACK-86</a>] - Made presence checks case in-sensitive.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-93'>SMACK-93</a>] - XHTML provider wasn't handling some tags correctly.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-138'>SMACK-138</a>] - Added caching to file transfer negotiation operations.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-143'>SMACK-143</a>] - Updated XMPPError to be compliant with RFC3920.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-145'>SMACK-145</a>] - XHTML parsing could fail in some cases.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-146'>SMACK-146</a>] - DNS lookups were failing with some DNS servers.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-147'>SMACK-147</a>] - Removed invisibility presence mode.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-148'>SMACK-148</a>] - Socks 5 listening thread was not cleaning up correctly. <b>(2 votes)</b></li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-149'>SMACK-149</a>] - Fixed possible memory leaking in PacketReader.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-151'>SMACK-151</a>] - Now use getBytes("UTF-8") instead of getBytes().</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-152'>SMACK-152</a>] - The FN field is duplicated when loading vCards from the server.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-153'>SMACK-153</a>] - Optimized performance by replacing StringBuffer with StringBuilder.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-154'>SMACK-154</a>] - Fixed roster test cases that were sometimes failing.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-155'>SMACK-155</a>] - Optimized MUC performance by reducing number of packet collectors and listeners.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-158'>SMACK-158</a>] - FileTransfer isDone() method was returning true even when the transfer was refused.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-159'>SMACK-159</a>] - Filenames were not escaped for file transfers.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-160'>SMACK-160</a>] - Now use stream:feature to discover registration support.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-161'>SMACK-161</a>] - Improved connection speed.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-162'>SMACK-162</a>] - Fixed NPE in SmackConfiguration.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-163'>SMACK-163</a>] - Fixed NPE in RoomInfo when subject was null.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-164'>SMACK-164</a>] - Contact name was not being escaped.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-165'>SMACK-165</a>] - Listeners were not being removed from PacketReader.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-166'>SMACK-166</a>] - Packet reader thread was freezing when parsing an error text with no description.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-168'>SMACK-168</a>] - Fixed possible delay in PacketReader when negotiating TLS.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-173'>SMACK-173</a>] - Renamed ConnectionEstablishedListener to ConnectionCreationListener.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-176'>SMACK-176</a>] - Fixed incorrect property initialization.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-177'>SMACK-177</a>] - Removed synchronization from Roster.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-178'>SMACK-178</a>] - Added NodeInformation#getNodeIdentities() to return identities of hosted nodes</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-181'>SMACK-181</a>] - Improved parsing of certificates to get signed domains.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-183'>SMACK-183</a>] - Documentation fixes.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-184'>SMACK-184</a>] - Simplified XMPPConnection constructors.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-203'>SMACK-203</a>] - NULL thread IDs would cause an error inside of the Chat Manager.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-205'>SMACK-205</a>] - Fixed PacketReader concurrency problems.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-188'>SMACK-188</a>] - Resources are now closed after reading the keystore.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-189'>SMACK-189</a>] - The listener was remaining blocked forever in some cases.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-190'>SMACK-190</a>] - Exceptions while notifying packet reader listeners was stopping the notification thread.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-192'>SMACK-192</a>] - Roster.getPresence(String) now forces use of the bare JID.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-193'>SMACK-193</a>] - New presence packets now default to a null presence mode.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-196'>SMACK-196</a>] - Now set closed to true at the start of the connection shutdown method and not the end.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-197'>SMACK-197</a>] - The source build was failing.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-198'>SMACK-198</a>] - File transfer streams were not being closed properly in some cases.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-199'>SMACK-199</a>] - MultiUserChat invitation listeners are no longer removed on disconnects.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-201'>SMACK-201</a>] - Roster no longer exposes that it implements ConnectionListener.</li>
</ul>
<h2>2.2.1 -- <span style="font-weight: normal;">June 12, 2006</span></h2>
<ul>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-141'>SMACK-141</a>] - Fixed SSL exception while creating new XMPPConnections. <b>(1 vote)</b></li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-127'>SMACK-127</a>] - Fixed incorrect file transfer progress.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-130'>SMACK-130</a>] - Fixed VCard escaping problem that was crashing connections.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-134'>SMACK-134</a>] - VCards were not being saved when avatar was the only element.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-131'>SMACK-131</a>] - Illegal XML characters are now properly escaped in the presence status.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-133'>SMACK-133</a>] - Illegal XML characters are now properly escaped in groups names.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-132'>SMACK-132</a>] - Fixed IBB problem triggered when buffersize was increased.</li>
<li>[<a href='http:https://www.igniterealtime.org/issues/browse/SMACK-135'>SMACK-135</a>] - Moved to new Base64 implementation to fix line break issue in old implementation.</li>
</ul>