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;
+ }
+ }
}
|