[CONTROLLER-720] Clustering : Remove actorFor (deprecated) call from TransactionProxy.java Created: 23/Aug/14 Updated: 17/Oct/14 Resolved: 17/Oct/14 |
|
| Status: | Resolved |
| Project: | controller |
| Component/s: | mdsal |
| Affects Version/s: | Helium |
| Fix Version/s: | None |
| Type: | Bug | ||
| Reporter: | Abhishek Kumar | Assignee: | Kamal Rameshan |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: Mac OS |
||
| External issue ID: | 1607 |
| Description |
|
Its used on line#401 in method public Future<ActorPath> readyTransaction(). actorFor is deprecated. ActorSelection can be used instead. Also, on line#395, there is no need to convert the ActorPath got from reply.getCohortPath(). This can directly be used if line#401 is changed to use actor selection. |
| Comments |
| Comment by Moiz Raja [ 09/Oct/14 ] |
|
Please note as part of this bug fix you may want to do the following, 1. In ShardTransaction when creating the ReadyTransactionReply instead of using cohortActor.path() use Serialization.serializedActorPath(). The difference between these two calls is that cohortActor.path() returns the local path of the actor as an ActorPath whereas Serialization.serializedActorPath() returns the remote path of the actor as a String. Once you do this you do not need to use ActorContext.resolvePath. 2. Eliminate the ActorContext.resolvePath method as it is deprecated as well. 3. Eliminate all actorSystem.actorFor calls. This needs to be done both in TransactionProxy and ReadyTransactionReply#fromSerializable. 4. Change the readyTransaction to return either Future<String> or Future<ActorSelection> - this is probably the more extensive change |