[Asterisk-java-cvs] CVS: asterisk-java/src/java/net/sf/asterisk/manager DefaultManagerConnection.jav
Brought to you by:
srt
From: Stefan R. <sr...@us...> - 2005-04-21 23:35:47
|
Update of /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22532/src/java/net/sf/asterisk/manager Modified Files: DefaultManagerConnection.java Util.java Log Message: Fixed a possible bug in action id generation when Object.hashCode() returned a negative int. Thanks to Chad Kitching. Index: DefaultManagerConnection.java =================================================================== RCS file: /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager/DefaultManagerConnection.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -p -r1.13 -r1.14 --- DefaultManagerConnection.java 31 Mar 2005 22:29:50 -0000 1.13 +++ DefaultManagerConnection.java 21 Apr 2005 23:34:39 -0000 1.14 @@ -444,15 +444,7 @@ public class DefaultManagerConnection im } internalActionId = createInternalActionId(); - - if (action.getActionId() == null) - { - action.setActionId(internalActionId + "-"); - } - else - { - action.setActionId(internalActionId + "-" + action.getActionId()); - } + action.setActionId(Util.addInternalActionId(action.getActionId(), internalActionId)); if (callbackHandler != null) { Index: Util.java =================================================================== RCS file: /cvsroot/asterisk-java/asterisk-java/src/java/net/sf/asterisk/manager/Util.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -p -r1.2 -r1.3 --- Util.java 23 Feb 2005 22:50:57 -0000 1.2 +++ Util.java 21 Apr 2005 23:34:40 -0000 1.3 @@ -24,6 +24,8 @@ package net.sf.asterisk.manager; */ public class Util { + public static char INTERNAL_ACTION_ID_DELIMITER = '#'; + /** * The hex digits used to build a hex string representation of a byte array. */ @@ -54,7 +56,7 @@ public class Util { int delimiterIndex; - delimiterIndex = actionId.indexOf('-'); + delimiterIndex = actionId.indexOf(INTERNAL_ACTION_ID_DELIMITER); if (delimiterIndex > 0) { return actionId.substring(0, delimiterIndex); @@ -69,7 +71,7 @@ public class Util { int delimiterIndex; - delimiterIndex = actionId.indexOf('-'); + delimiterIndex = actionId.indexOf(INTERNAL_ACTION_ID_DELIMITER); if (delimiterIndex > 0) { if (actionId.length() > delimiterIndex + 1) @@ -86,4 +88,16 @@ public class Util return null; } } + + public static String addInternalActionId(String actionId, String internalActionId) + { + if (actionId == null) + { + return internalActionId + INTERNAL_ACTION_ID_DELIMITER; + } + else + { + return internalActionId + INTERNAL_ACTION_ID_DELIMITER + actionId; + } + } } |