Revision: b6f101a6f13e
Author: Jean Deruelle <[email protected]>
Date: Tue Dec 11 03:54:35 2012
Log: Fix Regression and typo in SIPDialog
http://code.google.com/p/jain-sip/source/detail?r=b6f101a6f13e
Modified:
/src/gov/nist/javax/sip/DialogFilter.java
/src/gov/nist/javax/sip/stack/SIPDialog.java
/src/test/unit/gov/nist/javax/sip/stack/LooseDialogValidationTest.java
=======================================
--- /src/gov/nist/javax/sip/DialogFilter.java Thu Nov 29 12:46:08 2012
+++ /src/gov/nist/javax/sip/DialogFilter.java Tue Dec 11 03:54:35 2012
@@ -581,7 +581,7 @@
} else {
if (!dialog.handleAck(transaction)) {
- if (!dialog.isSequnceNumberValidation()) {
+ if (!dialog.isSequenceNumberValidation()) {
if
(logger.isLoggingEnabled(LogLevels.TRACE_DEBUG)) {
logger.logDebug(
"Dialog exists with loose dialog
validation "
@@ -947,7 +947,7 @@
&& sipRequest.getCSeq().getSeqNumber() >
lastTransaction.getCSeq()
&& lastTransaction instanceof SIPServerTransaction
&& sipProvider.isDialogErrorsAutomaticallyHandled()
- && dialog.isSequnceNumberValidation()
+ && dialog.isSequenceNumberValidation()
&& lastTransaction.isInviteTransaction()
&& lastTransaction.getInternalState() !=
TransactionState._COMPLETED
&& lastTransaction.getInternalState() !=
TransactionState._TERMINATED
=======================================
--- /src/gov/nist/javax/sip/stack/SIPDialog.java Sat Dec 8 21:03:45 2012
+++ /src/gov/nist/javax/sip/stack/SIPDialog.java Tue Dec 11 03:54:35 2012
@@ -1471,7 +1471,7 @@
throw new RuntimeException("Illegal method");
// For loose validation this function is delegated to the
application
- if (!this.isSequnceNumberValidation()) {
+ if (!this.isSequenceNumberValidation()) {
return true;
}
@@ -4143,7 +4143,7 @@
this.reInviteFlag = reInviteFlag;
}
- public boolean isSequnceNumberValidation() {
+ public boolean isSequenceNumberValidation() {
return this.sequenceNumberValidation;
}
=======================================
--- /src/test/unit/gov/nist/javax/sip/stack/LooseDialogValidationTest.java
Mon Mar 19 09:29:48 2012
+++ /src/test/unit/gov/nist/javax/sip/stack/LooseDialogValidationTest.java
Tue Dec 11 03:54:35 2012
@@ -185,6 +185,7 @@
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
+ return ;
}
try {
@@ -243,9 +244,9 @@
// Your code will limp at 32 but it is best for debugging.
properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "32");
properties.setProperty("gov.nist.javax.sip.DEBUG_LOG",
- "shootmedebug.txt");
+ "logs/shootmedebug.txt");
properties.setProperty("gov.nist.javax.sip.SERVER_LOG",
- "shootmelog.txt");
+ "logs/shootmelog.txt");
properties.setProperty("gov.nist.javax.sip.AUTOMATIC_DIALOG_ERROR_HANDLING", "false");
properties.setProperty("javax.sip.AUTOMATIC_DIALOG_SUPPORT", "off");
properties.setProperty("gov.nist.javax.sip.AGGRESSIVE_CLEANUP", "true");
@@ -372,11 +373,21 @@
Dialog d = responseReceivedEvent.getDialog();
try {
Request ack = d.createAck(1);
+ // Added Thread.sleep to avoid regression on the test
+ // as ACKs arriving at the same time may create race
condition
+ // where the ACK is removing from pending transactions
by loose dialog validation
+ // but re created by the next ACK coming in line and
thus the EventScanner
+ //
sipStack.findPendingTransaction(sipRequest.getTransactionId()) gives
transaction already exists
+ // and the ACK is not passed to TU
sipProvider.sendRequest(ack);
+ Thread.sleep(50);
sipProvider.sendRequest(ack);
- sipProvider.sendRequest(ack);
+ Thread.sleep(50);
sipProvider.sendRequest(ack);
+ Thread.sleep(50);
sipProvider.sendRequest(ack);
+ Thread.sleep(50);
+ sipProvider.sendRequest(ack);
} catch (Exception e) {
e.printStackTrace();
fail("Error sending ACK");
@@ -414,9 +425,9 @@
// You can set a max message size for tcp transport to
// guard against denial of service attack.
properties.setProperty("gov.nist.javax.sip.DEBUG_LOG",
- "shootistdebug.txt");
+ "logs/shootistdebug.txt");
properties.setProperty("gov.nist.javax.sip.SERVER_LOG",
- "shootistlog.txt");
+ "logs/shootistlog.txt");
// Drop the client connection after we are done with the
transaction.
properties.setProperty("gov.nist.javax.sip.CACHE_CLIENT_CONNECTIONS",
@@ -424,7 +435,7 @@
// Set to 0 (or NONE) in your production code for max speed.
// You need 16 (or TRACE) for logging traces. 32 (or DEBUG)
for debug + traces.
// Your code will limp at 32 but it is best for debugging.
-
properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "DEBUG");
+ properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "32");
properties.setProperty("javax.sip.AUTOMATIC_DIALOG_SUPPORT", "off");
properties.setProperty("gov.nist.javax.sip.AUTOMATIC_DIALOG_ERROR_HANDLING","false");