diff --git a/net/http/inc/TRootSnifferStore.h b/net/http/inc/TRootSnifferStore.h
index 7582d2f3c4a08f04becb7b1b0eba919598f5aec1..36f9f166f12e32ec9367dc542538af9a36c1be48 100644
--- a/net/http/inc/TRootSnifferStore.h
+++ b/net/http/inc/TRootSnifferStore.h
@@ -23,14 +23,13 @@ class TFolder;
 
 class TRootSnifferStore : public TObject {
 protected:
-   void *fResPtr;           ///<! pointer on found item
-   TClass *fResClass;       ///<! class of found item
-   TDataMember *fResMember; ///<! datamember pointer of found item
-   Int_t fResNumChilds;     ///<! count of found childs, -1 by default
-   Int_t fResRestrict;      ///<! restriction for result, 0-default, 1-readonly, 2-full
+   void *fResPtr{nullptr};           ///<! pointer on found item
+   TClass *fResClass{nullptr};       ///<! class of found item
+   TDataMember *fResMember{nullptr}; ///<! datamember pointer of found item
+   Int_t fResNumChilds{-1};          ///<! count of found childs, -1 by default
+   Int_t fResRestrict{0};            ///<! restriction for result, 0-default, 1-readonly, 2-full
 public:
-   TRootSnifferStore();
-   virtual ~TRootSnifferStore();
+   virtual ~TRootSnifferStore() = default;
 
    virtual void CreateNode(Int_t, const char *) {}
    virtual void SetField(Int_t, const char *, const char *, Bool_t) {}
@@ -55,24 +54,22 @@ public:
 
 class TRootSnifferStoreXml : public TRootSnifferStore {
 protected:
-   TString *fBuf;   ///<! output buffer
-   Bool_t fCompact; ///<! produce compact xml code
+   TString &fBuf;           ///<! output buffer
+   Bool_t fCompact{kFALSE}; ///<! produce compact xml code
 
 public:
-   TRootSnifferStoreXml(TString &_buf, Bool_t _compact = kFALSE) : TRootSnifferStore(), fBuf(&_buf), fCompact(_compact)
+   explicit TRootSnifferStoreXml(TString &_buf, Bool_t _compact = kFALSE) : TRootSnifferStore(), fBuf(_buf), fCompact(_compact)
    {
    }
 
-   virtual ~TRootSnifferStoreXml() {}
+   void CreateNode(Int_t lvl, const char *nodename) final;
+   void SetField(Int_t lvl, const char *field, const char *value, Bool_t) final;
+   void BeforeNextChild(Int_t lvl, Int_t nchld, Int_t) final;
+   void CloseNode(Int_t lvl, Int_t numchilds) final;
 
-   virtual void CreateNode(Int_t lvl, const char *nodename);
-   virtual void SetField(Int_t lvl, const char *field, const char *value, Bool_t);
-   virtual void BeforeNextChild(Int_t lvl, Int_t nchld, Int_t);
-   virtual void CloseNode(Int_t lvl, Int_t numchilds);
+   Bool_t IsXml() const final { return kTRUE; }
 
-   virtual Bool_t IsXml() const { return kTRUE; }
-
-   ClassDef(TRootSnifferStoreXml, 0) // xml results store of objects sniffer
+   ClassDefOverride(TRootSnifferStoreXml, 0) // xml results store of objects sniffer
 };
 
 // ========================================================================
@@ -81,20 +78,19 @@ public:
 
 class TRootSnifferStoreJson : public TRootSnifferStore {
 protected:
-   TString *fBuf;   ///<! output buffer
-   Bool_t fCompact; ///<! produce compact json code
+   TString &fBuf;           ///<! output buffer
+   Bool_t fCompact{kFALSE}; ///<! produce compact json code
 public:
-   TRootSnifferStoreJson(TString &_buf, Bool_t _compact = kFALSE) : TRootSnifferStore(), fBuf(&_buf), fCompact(_compact)
+   explicit TRootSnifferStoreJson(TString &_buf, Bool_t _compact = kFALSE) : TRootSnifferStore(), fBuf(_buf), fCompact(_compact)
    {
    }
-   virtual ~TRootSnifferStoreJson() {}
 
-   virtual void CreateNode(Int_t lvl, const char *nodename);
-   virtual void SetField(Int_t lvl, const char *field, const char *value, Bool_t with_quotes);
-   virtual void BeforeNextChild(Int_t lvl, Int_t nchld, Int_t nfld);
-   virtual void CloseNode(Int_t lvl, Int_t numchilds);
+   void CreateNode(Int_t lvl, const char *nodename) final;
+   void SetField(Int_t lvl, const char *field, const char *value, Bool_t with_quotes) final;
+   void BeforeNextChild(Int_t lvl, Int_t nchld, Int_t nfld) final;
+   void CloseNode(Int_t lvl, Int_t numchilds) final;
 
-   ClassDef(TRootSnifferStoreJson, 0) // json results store of objects sniffer
+   ClassDefOverride(TRootSnifferStoreJson, 0) // json results store of objects sniffer
 };
 
 #endif
diff --git a/net/http/src/TRootSnifferStore.cxx b/net/http/src/TRootSnifferStore.cxx
index 9d7a6485a7156ba627dce948926a87710b3859d7..ebc5562c89cca90e1dc7c8f4dbf4775397286f48 100644
--- a/net/http/src/TRootSnifferStore.cxx
+++ b/net/http/src/TRootSnifferStore.cxx
@@ -21,21 +21,6 @@
 
 ClassImp(TRootSnifferStore);
 
-   ////////////////////////////////////////////////////////////////////////////////
-   /// normal constructor
-
-   TRootSnifferStore::TRootSnifferStore()
-   : TObject(), fResPtr(0), fResClass(0), fResMember(0), fResNumChilds(-1), fResRestrict(0)
-{
-}
-
-////////////////////////////////////////////////////////////////////////////////
-/// destructor
-
-TRootSnifferStore::~TRootSnifferStore()
-{
-}
-
 ////////////////////////////////////////////////////////////////////////////////
 /// set pointer on found element, class and number of childs
 
@@ -60,12 +45,12 @@ void TRootSnifferStore::SetResult(void *_res, TClass *_rescl, TDataMember *_resm
 
 ClassImp(TRootSnifferStoreXml);
 
-   ////////////////////////////////////////////////////////////////////////////////
-   /// starts new xml node, will be closed by CloseNode
+////////////////////////////////////////////////////////////////////////////////
+/// starts new xml node, will be closed by CloseNode
 
    void TRootSnifferStoreXml::CreateNode(Int_t lvl, const char *nodename)
 {
-   fBuf->Append(TString::Format("%*s<item _name=\"%s\"", fCompact ? 0 : (lvl + 1) * 2, "", nodename));
+   fBuf.Append(TString::Format("%*s<item _name=\"%s\"", fCompact ? 0 : (lvl + 1) * 2, "", nodename));
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -74,23 +59,23 @@ ClassImp(TRootSnifferStoreXml);
 void TRootSnifferStoreXml::SetField(Int_t, const char *field, const char *value, Bool_t)
 {
    if (strpbrk(value, "<>&\'\"") == 0) {
-      fBuf->Append(TString::Format(" %s=\"%s\"", field, value));
+      fBuf.Append(TString::Format(" %s=\"%s\"", field, value));
    } else {
-      fBuf->Append(TString::Format(" %s=\"", field));
+      fBuf.Append(TString::Format(" %s=\"", field));
       const char *v = value;
       while (*v != 0) {
          switch (*v) {
-         case '<': fBuf->Append("&lt;"); break;
-         case '>': fBuf->Append("&gt;"); break;
-         case '&': fBuf->Append("&amp;"); break;
-         case '\'': fBuf->Append("&apos;"); break;
-         case '\"': fBuf->Append("&quot;"); break;
-         default: fBuf->Append(*v); break;
+         case '<': fBuf.Append("&lt;"); break;
+         case '>': fBuf.Append("&gt;"); break;
+         case '&': fBuf.Append("&amp;"); break;
+         case '\'': fBuf.Append("&apos;"); break;
+         case '\"': fBuf.Append("&quot;"); break;
+         default: fBuf.Append(*v); break;
          }
          v++;
       }
 
-      fBuf->Append("\"");
+      fBuf.Append("\"");
    }
 }
 
@@ -99,7 +84,7 @@ void TRootSnifferStoreXml::SetField(Int_t, const char *field, const char *value,
 
 void TRootSnifferStoreXml::BeforeNextChild(Int_t, Int_t nchld, Int_t)
 {
-   if (nchld == 0) fBuf->Append(TString::Format(">%s", (fCompact ? "" : "\n")));
+   if (nchld == 0) fBuf.Append(TString::Format(">%s", (fCompact ? "" : "\n")));
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -109,9 +94,9 @@ void TRootSnifferStoreXml::BeforeNextChild(Int_t, Int_t nchld, Int_t)
 void TRootSnifferStoreXml::CloseNode(Int_t lvl, Int_t numchilds)
 {
    if (numchilds > 0)
-      fBuf->Append(TString::Format("%*s</item>%s", fCompact ? 0 : (lvl + 1) * 2, "", (fCompact ? "" : "\n")));
+      fBuf.Append(TString::Format("%*s</item>%s", fCompact ? 0 : (lvl + 1) * 2, "", (fCompact ? "" : "\n")));
    else
-      fBuf->Append(TString::Format("/>%s", (fCompact ? "" : "\n")));
+      fBuf.Append(TString::Format("/>%s", (fCompact ? "" : "\n")));
 }
 
 // ============================================================================
@@ -126,14 +111,14 @@ void TRootSnifferStoreXml::CloseNode(Int_t lvl, Int_t numchilds)
 
 ClassImp(TRootSnifferStoreJson);
 
-   ////////////////////////////////////////////////////////////////////////////////
-   /// starts new json object, will be closed by CloseNode
+////////////////////////////////////////////////////////////////////////////////
+/// starts new json object, will be closed by CloseNode
 
-   void TRootSnifferStoreJson::CreateNode(Int_t lvl, const char *nodename)
+void TRootSnifferStoreJson::CreateNode(Int_t lvl, const char *nodename)
 {
-   fBuf->Append(TString::Format("%*s{", fCompact ? 0 : lvl * 4, ""));
-   if (!fCompact) fBuf->Append("\n");
-   fBuf->Append(
+   fBuf.Append(TString::Format("%*s{", fCompact ? 0 : lvl * 4, ""));
+   if (!fCompact) fBuf.Append("\n");
+   fBuf.Append(
       TString::Format("%*s\"_name\"%s\"%s\"", fCompact ? 0 : lvl * 4 + 2, "", (fCompact ? ":" : " : "), nodename));
 }
 
@@ -142,29 +127,29 @@ ClassImp(TRootSnifferStoreJson);
 
 void TRootSnifferStoreJson::SetField(Int_t lvl, const char *field, const char *value, Bool_t with_quotes)
 {
-   fBuf->Append(",");
-   if (!fCompact) fBuf->Append("\n");
-   fBuf->Append(TString::Format("%*s\"%s\"%s", fCompact ? 0 : lvl * 4 + 2, "", field, (fCompact ? ":" : " : ")));
+   fBuf.Append(",");
+   if (!fCompact) fBuf.Append("\n");
+   fBuf.Append(TString::Format("%*s\"%s\"%s", fCompact ? 0 : lvl * 4 + 2, "", field, (fCompact ? ":" : " : ")));
    if (!with_quotes) {
-      fBuf->Append(value);
+      fBuf.Append(value);
    } else {
-      fBuf->Append("\"");
+      fBuf.Append("\"");
       for (const char *v = value; *v != 0; v++) switch (*v) {
-         case '\n': fBuf->Append("\\n"); break;
-         case '\t': fBuf->Append("\\t"); break;
-         case '\"': fBuf->Append("\\\""); break;
-         case '\\': fBuf->Append("\\\\"); break;
-         case '\b': fBuf->Append("\\b"); break;
-         case '\f': fBuf->Append("\\f"); break;
-         case '\r': fBuf->Append("\\r"); break;
-         case '/': fBuf->Append("\\/"); break;
+         case '\n': fBuf.Append("\\n"); break;
+         case '\t': fBuf.Append("\\t"); break;
+         case '\"': fBuf.Append("\\\""); break;
+         case '\\': fBuf.Append("\\\\"); break;
+         case '\b': fBuf.Append("\\b"); break;
+         case '\f': fBuf.Append("\\f"); break;
+         case '\r': fBuf.Append("\\r"); break;
+         case '/': fBuf.Append("\\/"); break;
          default:
             if ((*v > 31) && (*v < 127))
-               fBuf->Append(*v);
+               fBuf.Append(*v);
             else
-               fBuf->Append(TString::Format("\\u%04x", (unsigned)*v));
+               fBuf.Append(TString::Format("\\u%04x", (unsigned)*v));
          }
-      fBuf->Append("\"");
+      fBuf.Append("\"");
    }
 }
 
@@ -173,10 +158,10 @@ void TRootSnifferStoreJson::SetField(Int_t lvl, const char *field, const char *v
 
 void TRootSnifferStoreJson::BeforeNextChild(Int_t lvl, Int_t nchld, Int_t)
 {
-   fBuf->Append(",");
-   if (!fCompact) fBuf->Append("\n");
+   fBuf.Append(",");
+   if (!fCompact) fBuf.Append("\n");
    if (nchld == 0)
-      fBuf->Append(TString::Format("%*s\"_childs\"%s", (fCompact ? 0 : lvl * 4 + 2), "", (fCompact ? ":[" : " : [\n")));
+      fBuf.Append(TString::Format("%*s\"_childs\"%s", (fCompact ? 0 : lvl * 4 + 2), "", (fCompact ? ":[" : " : [\n")));
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -185,6 +170,7 @@ void TRootSnifferStoreJson::BeforeNextChild(Int_t lvl, Int_t nchld, Int_t)
 
 void TRootSnifferStoreJson::CloseNode(Int_t lvl, Int_t numchilds)
 {
-   if (numchilds > 0) fBuf->Append(TString::Format("%s%*s]", (fCompact ? "" : "\n"), fCompact ? 0 : lvl * 4 + 2, ""));
-   fBuf->Append(TString::Format("%s%*s}", (fCompact ? "" : "\n"), fCompact ? 0 : lvl * 4, ""));
+   if (numchilds > 0)
+      fBuf.Append(TString::Format("%s%*s]", (fCompact ? "" : "\n"), fCompact ? 0 : lvl * 4 + 2, ""));
+   fBuf.Append(TString::Format("%s%*s}", (fCompact ? "" : "\n"), fCompact ? 0 : lvl * 4, ""));
 }