only force close tagwriter before creating a new one
This commit is contained in:
		
							parent
							
								
									6b81ff70e5
								
							
						
					
					
						commit
						c8f97be68e
					
				| @ -1,10 +1,13 @@ | |||||||
| package eu.siacs.conversations.xml; | package eu.siacs.conversations.xml; | ||||||
| 
 | 
 | ||||||
|  | import android.util.Log; | ||||||
|  | 
 | ||||||
| import java.io.IOException; | import java.io.IOException; | ||||||
| import java.io.OutputStream; | import java.io.OutputStream; | ||||||
| import java.io.OutputStreamWriter; | import java.io.OutputStreamWriter; | ||||||
| import java.util.concurrent.LinkedBlockingQueue; | import java.util.concurrent.LinkedBlockingQueue; | ||||||
| 
 | 
 | ||||||
|  | import eu.siacs.conversations.Config; | ||||||
| import eu.siacs.conversations.xmpp.stanzas.AbstractStanza; | import eu.siacs.conversations.xmpp.stanzas.AbstractStanza; | ||||||
| 
 | 
 | ||||||
| public class TagWriter { | public class TagWriter { | ||||||
| @ -71,6 +74,7 @@ public class TagWriter { | |||||||
| 
 | 
 | ||||||
| 	public TagWriter writeStanzaAsync(AbstractStanza stanza) { | 	public TagWriter writeStanzaAsync(AbstractStanza stanza) { | ||||||
| 		if (finshed) { | 		if (finshed) { | ||||||
|  | 			Log.d(Config.LOGTAG,"attempting to write stanza to finished TagWriter"); | ||||||
| 			return this; | 			return this; | ||||||
| 		} else { | 		} else { | ||||||
| 			if (!asyncStanzaWriter.isAlive()) { | 			if (!asyncStanzaWriter.isAlive()) { | ||||||
|  | |||||||
| @ -211,7 +211,6 @@ public class XmppConnection implements Runnable { | |||||||
| 		this.account = account; | 		this.account = account; | ||||||
| 		this.wakeLock = service.getPowerManager().newWakeLock( | 		this.wakeLock = service.getPowerManager().newWakeLock( | ||||||
| 				PowerManager.PARTIAL_WAKE_LOCK, account.getJid().toBareJid().toString()); | 				PowerManager.PARTIAL_WAKE_LOCK, account.getJid().toBareJid().toString()); | ||||||
| 		tagWriter = new TagWriter(); |  | ||||||
| 		mXmppConnectionService = service; | 		mXmppConnectionService = service; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| @ -253,8 +252,6 @@ public class XmppConnection implements Runnable { | |||||||
| 		try { | 		try { | ||||||
| 			Socket localSocket; | 			Socket localSocket; | ||||||
| 			shouldAuthenticate = needsBinding = !account.isOptionSet(Account.OPTION_REGISTER); | 			shouldAuthenticate = needsBinding = !account.isOptionSet(Account.OPTION_REGISTER); | ||||||
| 			tagReader = new XmlReader(wakeLock); |  | ||||||
| 			tagWriter = new TagWriter(); |  | ||||||
| 			this.changeStatus(Account.State.CONNECTING); | 			this.changeStatus(Account.State.CONNECTING); | ||||||
| 			final boolean useTor = mXmppConnectionService.useTorToConnect() || account.isOnion(); | 			final boolean useTor = mXmppConnectionService.useTorToConnect() || account.isOnion(); | ||||||
| 			final boolean extended = mXmppConnectionService.showExtendedConnectionOptions(); | 			final boolean extended = mXmppConnectionService.showExtendedConnectionOptions(); | ||||||
| @ -451,6 +448,9 @@ public class XmppConnection implements Runnable { | |||||||
| 			throw new InterruptedException(); | 			throw new InterruptedException(); | ||||||
| 		} | 		} | ||||||
| 		this.socket = socket; | 		this.socket = socket; | ||||||
|  | 		tagReader = new XmlReader(wakeLock); | ||||||
|  | 		if (tagWriter != null) tagWriter.forceClose(); | ||||||
|  | 		tagWriter = new TagWriter(); | ||||||
| 		tagWriter.setOutputStream(socket.getOutputStream()); | 		tagWriter.setOutputStream(socket.getOutputStream()); | ||||||
| 		tagReader.setInputStream(socket.getInputStream()); | 		tagReader.setInputStream(socket.getInputStream()); | ||||||
| 		tagWriter.beginDocument(); | 		tagWriter.beginDocument(); | ||||||
| @ -1356,9 +1356,6 @@ public class XmppConnection implements Runnable { | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	private void forceCloseSocket() { | 	private void forceCloseSocket() { | ||||||
| 		if (tagWriter != null) { |  | ||||||
| 			tagWriter.forceClose(); |  | ||||||
| 		} |  | ||||||
| 		if (socket != null) { | 		if (socket != null) { | ||||||
| 			try { | 			try { | ||||||
| 				socket.close(); | 				socket.close(); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Daniel Gultsch
						Daniel Gultsch