Index: D:/Dev/SVN/rfid/RFIDMgr/trunk/DeviceAdaptor/LLRPToolKit/src/main/java/org/llrp/ltk/net/LLRPConnection.java
===================================================================
--- D:/Dev/SVN/rfid/RFIDMgr/trunk/DeviceAdaptor/LLRPToolKit/src/main/java/org/llrp/ltk/net/LLRPConnection.java	(.../LLRP/src/main/java/org/llrp/ltk/net/LLRPConnection.java)	(revision 10331)
+++ D:/Dev/SVN/rfid/RFIDMgr/trunk/DeviceAdaptor/LLRPToolKit/src/main/java/org/llrp/ltk/net/LLRPConnection.java	(.../LLRPToolKit/src/main/java/org/llrp/ltk/net/LLRPConnection.java)	(revision 10441)
@@ -135,7 +135,7 @@
 			endpoint.errorOccured("session is not yet established");
 			return null;
 		}
-		session.setAttribute(SYNC_MESSAGE_ANSWER, returnMessageType);
+		
 		LLRPMessage returnMessage = null;
 		if (!session.isConnected()){
 			if(!reconnect()){//reconnect failed
@@ -145,10 +145,14 @@
 			}
 		}
 
+		// move setAttribute here from above block to avoid the risk of overwriting session where SYNC_MESSAGE_ANSWER is already set
+		session.setAttribute(SYNC_MESSAGE_ANSWER, returnMessageType);
+		
 		WriteFuture writeFuture = session.write(message);
 		log.info(message.getName() + " transact ....");
 		writeFuture.join();
-
+		
+		
 		// Wait until a message is received.
 		try {
 			BlockingQueue<LLRPMessage> synMessageQueue = handler.getSynMessageQueue();
