Build: #585 was successful
Job: Default Job was successful
Code commits
Smack (master)
-
Florian Schmaus <flo@geekplace.eu> a61913596013fa6ad87874aa7ea80cde9aa35ea6
MoodIntegrationTest: Ensure that listener is removed
-
Florian Schmaus <flo@geekplace.eu> 03fc5eb78565901adafc7cd85967ba8e14668085
Merge branch '4.3'
-
Florian Schmaus <flo@geekplace.eu> 9246ea5dcac4549fd855f64568241930f74b01cc
LowLevelRosterIntegrationTest: Use timeout value from superclass
-
Florian Schmaus <flo@geekplace.eu> 9c4e5d0330db28920e6583f817569655b89dd696
Add Roster.createItem() and Roster.createItemAndRequestSubscription()
and deprecate createEntry().
createEntry() would also send a subscription request which may is
suprising given that you can also create an roster item without having
to send a subscription request out.
This also fixes a bug in
LowLevelRosterIntegrationTest.testPresenceEventListenersOffline()
where createEntry() was used, which would also trigger a presence
subscription request which in turn made the test fail if the
SubscribeListener of ensureSubscribedTo() was not yet set
up. So the test would fail depending on the timing.- smack-im/src/main/java/org/jivesoftware/smack/roster/Roster.java (version 9c4e5d0330db28920e6583f817569655b89dd696) (diffs)
- smack-im/src/test/java/org/jivesoftware/smack/roster/RosterTest.java (version 9c4e5d0330db28920e6583f817569655b89dd696) (diffs)
- smack-integration-test/src/main/java/org/jivesoftware/smack/roster/LowLevelRosterIntegrationTest.java (version 9c4e5d0330db28920e6583f817569655b89dd696) (diffs)
- smack-integration-test/src/main/java/org/jivesoftware/smack/roster/RosterIntegrationTest.java (version 9c4e5d0330db28920e6583f817569655b89dd696) (diffs)
-
Florian Schmaus <flo@geekplace.eu> c31e93a00ffe647367e6bf12dbea77d15ce31645
Improve IntegrationTestRosterUtil.ensureSubscribedto()
Improve the names of the arguments and variables. And ensure that all
listeners are removed at the end. -
Florian Schmaus <flo@geekplace.eu> 7059b60672628d1427776a794d396fb09b2ed42b m
Wait for reader/writer thread termination at the end of shutdown()
This synchronizes the place with what the master branch currently
does. -
Florian Schmaus <flo@geekplace.eu> 8e52e80399495e40321c3fb5a3c9835c5e5db1c7
Synchronize later in notifyConnectionError(Exception)
especially *after* the sync points have been notified so that a
potential thread currently callin gconnect()/login() throws and leaves
the synchronized section.
This commit is more or less equivalent to
3ded023629e1d90365d95e2857230a8086d4e67a of the 4.3 branch. -
Florian Schmaus <flo@geekplace.eu> 3ded023629e1d90365d95e2857230a8086d4e67a m
Remove 'synchronized' from notifyConnectionError()
as it is not neccessary and causes stalls and deadlocks with a
concurrent connect()/login() (which could be resolved interrupting the
connect()/login() calling thread):
"Smack Reader (0)" daemon prio=5 tid=21 Blocked
| group="main" sCount=1 dsCount=0 obj=0x12c84670 self=0x7e072ca200
| sysTid=14965 nice=0 cgrp=default sched=0/0 handle=0x7e06155450
| state=S schedstat=( 63430626 3034269 21 ) utm=5 stm=0 core=2 HZ=100
| stack=0x7e06053000-0x7e06055000 stackSize=1037KB
| held mutexes=
at org.jivesoftware.smack.tcp.XMPPTCPConnection.notifyConnectionError(XMPPTCPConnection.java:-1)
- waiting to lock <0x0ec6e6bb> (a org.jivesoftware.smack.tcp.XMPPTCPConnection) held by thread 22
at org.jivesoftware.smack.tcp.XMPPTCPConnection.access$3900(XMPPTCPConnection.java:154)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.parsePackets(XMPPTCPConnection.java:1330)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader.access$900(XMPPTCPConnection.java:1064)
at org.jivesoftware.smack.tcp.XMPPTCPConnection$PacketReader$1.run(XMPPTCPConnection.java:1081)
at java.lang.Thread.run(Thread.java:761)
"connect" prio=5 tid=22 Waiting
| group="main" sCount=1 dsCount=0 obj=0x12c8e820 self=0x7e19bcd600
| sysTid=15047 nice=0 cgrp=default sched=0/0 handle=0x7e05ee4450
| state=S schedstat=( 14067083 7475835 14 ) utm=1 stm=0 core=0 HZ=100
| stack=0x7e05de2000-0x7e05de4000 stackSize=1037KB
| held mutexes=
at java.lang.Object.wait!(Native method)
- waiting on <0x0c058b14> (a java.lang.Object)
at java.lang.Thread.parkFor$(Thread.java:2127)
- locked <0x0c058b14> (a java.lang.Object)
at sun.misc.Unsafe.park(Unsafe.java:325)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:161)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:840)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
at java.util.concurrent.Semaphore.acquire(Semaphore.java:446)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.initConnection(XMPPTCPConnection.java:685)
at org.jivesoftware.smack.tcp.XMPPTCPConnection.connectInternal(XMPPTCPConnection.java:942)
at org.jivesoftware.smack.AbstractXMPPConnection.connect(AbstractXMPPConnection.java:417)
- locked <0x0ec6e6bb> (a org.jivesoftware.smack.tcp.XMPPTCPConnection)
at org.yaxim.androidclient.service.SmackableImp.connectAndLogin(SmackableImp.java:717)
- locked <0x0ec6e6bb> (a org.jivesoftware.smack.tcp.XMPPTCPConnection)
at org.yaxim.androidclient.service.SmackableImp.doConnect(SmackableImp.java:304)
at org.yaxim.androidclient.service.SmackableImp$5.run(SmackableImp.java:391) -
Florian Schmaus <flo@geekplace.eu> 29af92cbd1d691e76f5137fe2e4d7cfcf4545577 m
Smack 4.3.4-SNAPSHOT