From 113ac3304d9515afcf5207c2a1eb0cc8b6e588c1 Mon Sep 17 00:00:00 2001 From: Vladimir Ralev Date: Tue, 22 Jan 2019 23:53:01 +0200 Subject: [PATCH] Fix for https://github.com/usnistgov/jsip/issues/46 debug counter not thread safe and counting in non-debug mode --- src/gov/nist/core/ParserCore.java | 2 +- src/gov/nist/javax/sip/parser/AddressParametersParser.java | 6 ++++-- src/gov/nist/javax/sip/parser/AuthorizationParser.java | 6 ++++-- src/gov/nist/javax/sip/parser/HeaderParser.java | 6 ++++-- src/gov/nist/javax/sip/parser/ims/AddressHeaderParser.java | 6 ++++-- src/gov/nist/javax/sip/parser/ims/SecurityClientParser.java | 6 ++++-- src/gov/nist/javax/sip/parser/ims/SecurityServerParser.java | 6 ++++-- src/gov/nist/javax/sip/parser/ims/SecurityVerifyParser.java | 6 ++++-- 8 files changed, 29 insertions(+), 15 deletions(-) diff --git a/src/gov/nist/core/ParserCore.java b/src/gov/nist/core/ParserCore.java index 1d2a298fd..76a702471 100755 --- a/src/gov/nist/core/ParserCore.java +++ b/src/gov/nist/core/ParserCore.java @@ -40,7 +40,7 @@ public abstract class ParserCore { public static final boolean debug = Debug.parserDebug; - static int nesting_level; + static volatile int nesting_level; protected LexerCore lexer; diff --git a/src/gov/nist/javax/sip/parser/AddressParametersParser.java b/src/gov/nist/javax/sip/parser/AddressParametersParser.java index f9b8f0ffb..7e7bc0d44 100755 --- a/src/gov/nist/javax/sip/parser/AddressParametersParser.java +++ b/src/gov/nist/javax/sip/parser/AddressParametersParser.java @@ -49,7 +49,8 @@ protected AddressParametersParser(String buffer) { protected void parse(AddressParametersHeader addressParametersHeader) throws ParseException { - dbg_enter("AddressParametersParser.parse"); + if (debug) + dbg_enter("AddressParametersParser.parse"); try { AddressParser addressParser = new AddressParser(this.getLexer()); AddressImpl addr = addressParser.address(false); @@ -69,7 +70,8 @@ protected void parse(AddressParametersHeader addressParametersHeader) } catch (ParseException ex) { throw ex; } finally { - dbg_leave("AddressParametersParser.parse"); + if (debug) + dbg_leave("AddressParametersParser.parse"); } } } diff --git a/src/gov/nist/javax/sip/parser/AuthorizationParser.java b/src/gov/nist/javax/sip/parser/AuthorizationParser.java index eaf780ae0..ae2cb3358 100755 --- a/src/gov/nist/javax/sip/parser/AuthorizationParser.java +++ b/src/gov/nist/javax/sip/parser/AuthorizationParser.java @@ -62,14 +62,16 @@ protected AuthorizationParser(Lexer lexer) { * @throws SIPParseException if the message does not respect the spec. */ public SIPHeader parse() throws ParseException { - dbg_enter("parse"); + if (debug) + dbg_enter("parse"); try { headerName(TokenTypes.AUTHORIZATION); Authorization auth = new Authorization(); super.parse(auth); return auth; } finally { - dbg_leave("parse"); + if (debug) + dbg_leave("parse"); } } diff --git a/src/gov/nist/javax/sip/parser/HeaderParser.java b/src/gov/nist/javax/sip/parser/HeaderParser.java index 6b7d6c146..d2435cd7e 100755 --- a/src/gov/nist/javax/sip/parser/HeaderParser.java +++ b/src/gov/nist/javax/sip/parser/HeaderParser.java @@ -47,7 +47,8 @@ public class HeaderParser extends Parser { * @return an integer with the calendar content for wkday. */ protected int wkday() throws ParseException { - dbg_enter("wkday"); + if (debug) + dbg_enter("wkday"); try { String tok = lexer.ttoken(); String id = tok.toLowerCase(); @@ -69,7 +70,8 @@ else if (TokenNames.SUN.equalsIgnoreCase(id)) else throw createParseException("bad wkday"); } finally { - dbg_leave("wkday"); + if (debug) + dbg_leave("wkday"); } } diff --git a/src/gov/nist/javax/sip/parser/ims/AddressHeaderParser.java b/src/gov/nist/javax/sip/parser/ims/AddressHeaderParser.java index 3a589e6c2..ea8574859 100644 --- a/src/gov/nist/javax/sip/parser/ims/AddressHeaderParser.java +++ b/src/gov/nist/javax/sip/parser/ims/AddressHeaderParser.java @@ -55,7 +55,8 @@ protected AddressHeaderParser(String buffer) { protected void parse(AddressHeaderIms addressHeader) throws ParseException { - dbg_enter("AddressHeaderParser.parse"); + if (debug) + dbg_enter("AddressHeaderParser.parse"); try { AddressParser addressParser = new AddressParser(this.getLexer()); AddressImpl addr = addressParser.address(true); @@ -65,7 +66,8 @@ protected void parse(AddressHeaderIms addressHeader) } catch (ParseException ex) { throw ex; } finally { - dbg_leave("AddressParametersParser.parse"); + if (debug) + dbg_leave("AddressParametersParser.parse"); } } diff --git a/src/gov/nist/javax/sip/parser/ims/SecurityClientParser.java b/src/gov/nist/javax/sip/parser/ims/SecurityClientParser.java index bdafcceae..55b80950d 100644 --- a/src/gov/nist/javax/sip/parser/ims/SecurityClientParser.java +++ b/src/gov/nist/javax/sip/parser/ims/SecurityClientParser.java @@ -62,7 +62,8 @@ protected SecurityClientParser(Lexer lexer) public SIPHeader parse() throws ParseException { - dbg_enter("SecuriryClient parse"); + if (debug) + dbg_enter("SecuriryClient parse"); try { headerName(TokenTypes.SECURITY_CLIENT); @@ -73,7 +74,8 @@ public SIPHeader parse() throws ParseException } finally { - dbg_leave("SecuriryClient parse"); + if (debug) + dbg_leave("SecuriryClient parse"); } } diff --git a/src/gov/nist/javax/sip/parser/ims/SecurityServerParser.java b/src/gov/nist/javax/sip/parser/ims/SecurityServerParser.java index 9e2c1d809..2af60d9ff 100644 --- a/src/gov/nist/javax/sip/parser/ims/SecurityServerParser.java +++ b/src/gov/nist/javax/sip/parser/ims/SecurityServerParser.java @@ -62,7 +62,8 @@ protected SecurityServerParser(Lexer lexer) public SIPHeader parse() throws ParseException { - dbg_enter("SecuriryServer parse"); + if (debug) + dbg_enter("SecuriryServer parse"); try { headerName(TokenTypes.SECURITY_SERVER); @@ -72,7 +73,8 @@ public SIPHeader parse() throws ParseException return secServerList; } finally { - dbg_leave("SecuriryServer parse"); + if (debug) + dbg_leave("SecuriryServer parse"); } } diff --git a/src/gov/nist/javax/sip/parser/ims/SecurityVerifyParser.java b/src/gov/nist/javax/sip/parser/ims/SecurityVerifyParser.java index 3d65fa117..97ba07400 100644 --- a/src/gov/nist/javax/sip/parser/ims/SecurityVerifyParser.java +++ b/src/gov/nist/javax/sip/parser/ims/SecurityVerifyParser.java @@ -61,7 +61,8 @@ protected SecurityVerifyParser(Lexer lexer) public SIPHeader parse() throws ParseException { - dbg_enter("SecuriryVerify parse"); + if (debug) + dbg_enter("SecuriryVerify parse"); try { headerName(TokenTypes.SECURITY_VERIFY); @@ -71,7 +72,8 @@ public SIPHeader parse() throws ParseException return secVerifyList; } finally { - dbg_leave("SecuriryVerify parse"); + if (debug) + dbg_leave("SecuriryVerify parse"); } }