summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2009-12-04 11:10:09 -0330
committerDwayne Boone <dwayne@zeroc.com>2009-12-04 11:10:09 -0330
commit009d41ef816a6c26b0436c2f45f9fffff5f21cda (patch)
tree3b098a1e77fc46164a6d9695cfe55a46698e70a0
parentFixed usage of icestormmigrate and upgradeicegrid.py (bug 3942) (diff)
downloadice-009d41ef816a6c26b0436c2f45f9fffff5f21cda.tar.bz2
ice-009d41ef816a6c26b0436c2f45f9fffff5f21cda.tar.xz
ice-009d41ef816a6c26b0436c2f45f9fffff5f21cda.zip
Bug 4336 - Add ability to set facility for syslog
-rw-r--r--CHANGES4
-rw-r--r--config/PropertyNames.xml1
-rw-r--r--cpp/src/Ice/Instance.cpp5
-rw-r--r--cpp/src/Ice/PropertyNames.cpp3
-rw-r--r--cpp/src/Ice/PropertyNames.h2
-rw-r--r--cpp/src/Ice/SysLoggerI.cpp98
-rw-r--r--cpp/src/Ice/SysLoggerI.h8
-rw-r--r--cs/src/Ice/Instance.cs3
-rw-r--r--cs/src/Ice/PropertyNames.cs3
-rw-r--r--cs/src/Ice/SysLoggerI.cs122
-rw-r--r--java/src/Ice/SysLoggerI.java127
-rw-r--r--java/src/IceInternal/Instance.java3
-rw-r--r--java/src/IceInternal/PropertyNames.java3
-rw-r--r--java/test/Freeze/fileLock/db/.gitignore0
14 files changed, 363 insertions, 19 deletions
diff --git a/CHANGES b/CHANGES
index c715b8a2605..5c3f21f16c8 100644
--- a/CHANGES
+++ b/CHANGES
@@ -33,6 +33,10 @@ General Changes
These entries apply to all relevant language mappings unless otherwise
noted.
+- When using the system logger (enabled when Ice.UseSyslog is set) it
+ is now possible to set the facility using the Ice.SyslogFacility
+ property. The default value is LOG_USER.
+
- It is now legal to pass an empty name to createObjectAdpaterWithRouter
and createObjectAdapterWithEndpoints. If so, a UUID will be generated
as the name.
diff --git a/config/PropertyNames.xml b/config/PropertyNames.xml
index 33bfd8313a7..d36ed2a1d59 100644
--- a/config/PropertyNames.xml
+++ b/config/PropertyNames.xml
@@ -347,6 +347,7 @@ generated from the section label.
<property name="ServerIdleTime" />
<property name="StdErr" />
<property name="StdOut" />
+ <property name="SyslogFacility" />
<property name="ThreadPool.Client" class="threadpool" />
<property name="ThreadPool.Server" class="threadpool" />
<property name="ThreadPriority"/>
diff --git a/cpp/src/Ice/Instance.cpp b/cpp/src/Ice/Instance.cpp
index 4b03230f149..7bb3fb1cdc6 100644
--- a/cpp/src/Ice/Instance.cpp
+++ b/cpp/src/Ice/Instance.cpp
@@ -906,7 +906,10 @@ IceInternal::Instance::Instance(const CommunicatorPtr& communicator, const Initi
{
throw InitializationException(__FILE__, __LINE__, "Both syslog and file logger cannot be enabled.");
}
- _initData.logger = new SysLoggerI(_initData.properties->getProperty("Ice.ProgramName"));
+
+ _initData.logger =
+ new SysLoggerI(_initData.properties->getProperty("Ice.ProgramName"),
+ _initData.properties->getPropertyWithDefault("Ice.SyslogFacility", "LOG_USER"));
}
else
#endif
diff --git a/cpp/src/Ice/PropertyNames.cpp b/cpp/src/Ice/PropertyNames.cpp
index dbbe65b68ba..f32df36e64c 100644
--- a/cpp/src/Ice/PropertyNames.cpp
+++ b/cpp/src/Ice/PropertyNames.cpp
@@ -8,7 +8,7 @@
// **********************************************************************
//
-// Generated by makeprops.py from file ../config/PropertyNames.xml, Fri Oct 16 11:27:10 2009
+// Generated by makeprops.py from file ../config/PropertyNames.xml, Fri Dec 4 10:31:05 2009
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
@@ -98,6 +98,7 @@ const IceInternal::Property IcePropsData[] =
IceInternal::Property("Ice.ServerIdleTime", false, 0),
IceInternal::Property("Ice.StdErr", false, 0),
IceInternal::Property("Ice.StdOut", false, 0),
+ IceInternal::Property("Ice.SyslogFacility", false, 0),
IceInternal::Property("Ice.ThreadPool.Client.Size", false, 0),
IceInternal::Property("Ice.ThreadPool.Client.SizeMax", false, 0),
IceInternal::Property("Ice.ThreadPool.Client.SizeWarn", false, 0),
diff --git a/cpp/src/Ice/PropertyNames.h b/cpp/src/Ice/PropertyNames.h
index 77655f9d748..7572229ee14 100644
--- a/cpp/src/Ice/PropertyNames.h
+++ b/cpp/src/Ice/PropertyNames.h
@@ -8,7 +8,7 @@
// **********************************************************************
//
-// Generated by makeprops.py from file ../config/PropertyNames.xml, Fri Oct 16 11:27:10 2009
+// Generated by makeprops.py from file ../config/PropertyNames.xml, Fri Dec 4 10:31:05 2009
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
diff --git a/cpp/src/Ice/SysLoggerI.cpp b/cpp/src/Ice/SysLoggerI.cpp
index 83feda8f981..0fcee5ee760 100644
--- a/cpp/src/Ice/SysLoggerI.cpp
+++ b/cpp/src/Ice/SysLoggerI.cpp
@@ -8,16 +8,108 @@
// **********************************************************************
#include <Ice/SysLoggerI.h>
+#include <Ice/LocalException.h>
#include <syslog.h>
using namespace std;
using namespace Ice;
using namespace IceInternal;
-Ice::SysLoggerI::SysLoggerI(const string& prefix)
+Ice::SysLoggerI::SysLoggerI(const string& prefix, const string& facilityString)
+{
+ if(facilityString == "LOG_KERN")
+ {
+ _facility = LOG_KERN;
+ }
+ else if(facilityString == "LOG_USER")
+ {
+ _facility = LOG_USER;
+ }
+ else if(facilityString == "LOG_MAIL")
+ {
+ _facility = LOG_MAIL;
+ }
+ else if(facilityString == "LOG_DAEMON")
+ {
+ _facility = LOG_DAEMON;
+ }
+ else if(facilityString == "LOG_AUTH")
+ {
+ _facility = LOG_AUTH;
+ }
+ else if(facilityString == "LOG_SYSLOG")
+ {
+ _facility = LOG_SYSLOG;
+ }
+ else if(facilityString == "LOG_LPR")
+ {
+ _facility = LOG_LPR;
+ }
+ else if(facilityString == "LOG_NEWS")
+ {
+ _facility = LOG_NEWS;
+ }
+ else if(facilityString == "LOG_UUCP")
+ {
+ _facility = LOG_UUCP;
+ }
+ else if(facilityString == "LOG_CRON")
+ {
+ _facility = LOG_CRON;
+ }
+ else if(facilityString == "LOG_AUTHPRIV")
+ {
+ _facility = LOG_AUTHPRIV;
+ }
+ else if(facilityString == "LOG_FTP")
+ {
+ _facility = LOG_FTP;
+ }
+ else if(facilityString == "LOG_LOCAL0")
+ {
+ _facility = LOG_LOCAL0;
+ }
+ else if(facilityString == "LOG_LOCAL1")
+ {
+ _facility = LOG_LOCAL1;
+ }
+ else if(facilityString == "LOG_LOCAL2")
+ {
+ _facility = LOG_LOCAL2;
+ }
+ else if(facilityString == "LOG_LOCAL3")
+ {
+ _facility = LOG_LOCAL3;
+ }
+ else if(facilityString == "LOG_LOCAL4")
+ {
+ _facility = LOG_LOCAL4;
+ }
+ else if(facilityString == "LOG_LOCAL5")
+ {
+ _facility = LOG_LOCAL5;
+ }
+ else if(facilityString == "LOG_LOCAL6")
+ {
+ _facility = LOG_LOCAL6;
+ }
+ else if(facilityString == "LOG_LOCAL7")
+ {
+ _facility = LOG_LOCAL7;
+ }
+ else
+ {
+ throw InitializationException(__FILE__, __LINE__, "Invalid value for Ice.SyslogFacility: " + facilityString);
+ }
+
+ int logopt = LOG_PID | LOG_CONS;
+ openlog(prefix.c_str(), logopt, _facility);
+}
+
+Ice::SysLoggerI::SysLoggerI(const string& prefix, int facility) :
+ _facility(facility)
{
int logopt = LOG_PID | LOG_CONS;
- int facility = LOG_USER;
openlog(prefix.c_str(), logopt, facility);
}
@@ -58,5 +150,5 @@ Ice::SysLoggerI::error(const string& message)
Ice::LoggerPtr
Ice::SysLoggerI::cloneWithPrefix(const string& prefix)
{
- return new SysLoggerI(prefix);
+ return new SysLoggerI(prefix, _facility);
}
diff --git a/cpp/src/Ice/SysLoggerI.h b/cpp/src/Ice/SysLoggerI.h
index e6d7bc36e93..1e24be68587 100644
--- a/cpp/src/Ice/SysLoggerI.h
+++ b/cpp/src/Ice/SysLoggerI.h
@@ -20,7 +20,7 @@ class SysLoggerI : public Logger, public ::IceUtil::Mutex
{
public:
- SysLoggerI(const std::string&);
+ SysLoggerI(const std::string&, const std::string&);
~SysLoggerI();
virtual void print(const std::string&);
@@ -28,6 +28,12 @@ public:
virtual void warning(const std::string&);
virtual void error(const std::string&);
virtual LoggerPtr cloneWithPrefix(const std::string&);
+
+private:
+
+ SysLoggerI(const std::string&, int);
+
+ int _facility;
};
}
diff --git a/cs/src/Ice/Instance.cs b/cs/src/Ice/Instance.cs
index 586979d9be4..492bdc1dc40 100644
--- a/cs/src/Ice/Instance.cs
+++ b/cs/src/Ice/Instance.cs
@@ -679,7 +679,8 @@ namespace IceInternal
{
throw new Ice.InitializationException("Ice.LogFile and Ice.UseSyslog cannot both be set.");
}
- _initData.logger = new Ice.SysLoggerI(_initData.properties.getProperty("Ice.ProgramName"));
+ _initData.logger = new Ice.SysLoggerI(_initData.properties.getProperty("Ice.ProgramName"),
+ _initData.properties.getPropertyWithDefault("Ice.SyslogFacility", "LOG_USER"));
}
else if(logfile.Length != 0 || Ice.Util.getProcessLogger() is Ice.LoggerI)
{
diff --git a/cs/src/Ice/PropertyNames.cs b/cs/src/Ice/PropertyNames.cs
index 3ffb7bf95be..ea07c858140 100644
--- a/cs/src/Ice/PropertyNames.cs
+++ b/cs/src/Ice/PropertyNames.cs
@@ -8,7 +8,7 @@
// **********************************************************************
//
-// Generated by makeprops.py from file ../config/PropertyNames.xml, Fri Oct 16 11:27:10 2009
+// Generated by makeprops.py from file ../config/PropertyNames.xml, Fri Dec 4 10:31:05 2009
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
@@ -100,6 +100,7 @@ namespace IceInternal
new Property(@"^Ice\.ServerIdleTime$", false, null),
new Property(@"^Ice\.StdErr$", false, null),
new Property(@"^Ice\.StdOut$", false, null),
+ new Property(@"^Ice\.SyslogFacility$", false, null),
new Property(@"^Ice\.ThreadPool\.Client\.Size$", false, null),
new Property(@"^Ice\.ThreadPool\.Client\.SizeMax$", false, null),
new Property(@"^Ice\.ThreadPool\.Client\.SizeWarn$", false, null),
diff --git a/cs/src/Ice/SysLoggerI.cs b/cs/src/Ice/SysLoggerI.cs
index 0dcf2274039..cf64f67be86 100644
--- a/cs/src/Ice/SysLoggerI.cs
+++ b/cs/src/Ice/SysLoggerI.cs
@@ -14,9 +14,105 @@ namespace Ice
public sealed class SysLoggerI : Logger
{
- public SysLoggerI(string ident)
+ public SysLoggerI(string ident, string facilityString)
+ {
+ int facility;
+ if(facilityString.Equals("LOG_KERN"))
+ {
+ facility = LOG_KERN;
+ }
+ else if(facilityString.Equals("LOG_USER"))
+ {
+ facility = LOG_USER;
+ }
+ else if(facilityString.Equals("LOG_MAIL"))
+ {
+ facility = LOG_MAIL;
+ }
+ else if(facilityString.Equals("LOG_DAEMON"))
+ {
+ facility = LOG_DAEMON;
+ }
+ else if(facilityString.Equals("LOG_AUTH"))
+ {
+ facility = LOG_AUTH;
+ }
+ else if(facilityString.Equals("LOG_SYSLOG"))
+ {
+ facility = LOG_SYSLOG;
+ }
+ else if(facilityString.Equals("LOG_LPR"))
+ {
+ facility = LOG_LPR;
+ }
+ else if(facilityString.Equals("LOG_NEWS"))
+ {
+ facility = LOG_NEWS;
+ }
+ else if(facilityString.Equals("LOG_UUCP"))
+ {
+ facility = LOG_UUCP;
+ }
+ else if(facilityString.Equals("LOG_CRON"))
+ {
+ facility = LOG_CRON;
+ }
+ else if(facilityString.Equals("LOG_AUTHPRIV"))
+ {
+ facility = LOG_AUTHPRIV;
+ }
+ else if(facilityString.Equals("LOG_FTP"))
+ {
+ facility = LOG_FTP;
+ }
+ else if(facilityString.Equals("LOG_LOCAL0"))
+ {
+ facility = LOG_LOCAL0;
+ }
+ else if(facilityString.Equals("LOG_LOCAL1"))
+ {
+ facility = LOG_LOCAL1;
+ }
+ else if(facilityString.Equals("LOG_LOCAL2"))
+ {
+ facility = LOG_LOCAL2;
+ }
+ else if(facilityString.Equals("LOG_LOCAL3"))
+ {
+ facility = LOG_LOCAL3;
+ }
+ else if(facilityString.Equals("LOG_LOCAL4"))
+ {
+ facility = LOG_LOCAL4;
+ }
+ else if(facilityString.Equals("LOG_LOCAL5"))
+ {
+ facility = LOG_LOCAL5;
+ }
+ else if(facilityString.Equals("LOG_LOCAL6"))
+ {
+ facility = LOG_LOCAL6;
+ }
+ else if(facilityString.Equals("LOG_LOCAL7"))
+ {
+ facility = LOG_LOCAL7;
+ }
+ else
+ {
+ throw new Ice.InitializationException("Invalid value for Ice.SyslogFacility: " + facilityString);
+ }
+ initialize(ident, facility);
+ }
+
+ private SysLoggerI(string ident, int facility)
+ {
+ initialize(ident, facility);
+ }
+
+ private void initialize(string ident, int facility)
{
_ident = ident;
+ _facility = facility;
//
// Open a datagram socket to communicate with the localhost
@@ -57,7 +153,7 @@ namespace Ice
public Logger cloneWithPrefix(string prefix)
{
- return new SysLoggerI(prefix);
+ return new SysLoggerI(prefix, _facility);
}
private void log(int severity, string message)
@@ -72,7 +168,7 @@ namespace Ice
// colon character and the message.
//
- int priority = (LOG_USER << 3) | severity;
+ int priority = (_facility << 3) | severity;
string msg = '<' + priority + '>' + _ident + ": " + message;
@@ -91,6 +187,7 @@ namespace Ice
}
private string _ident;
+ private int _facility;
private UdpClient _socket;
private System.Net.IPAddress _host;
private static int _port = 514;
@@ -98,7 +195,26 @@ namespace Ice
//
// Syslog facilities facilities (as defined in syslog.h)
//
+ private static readonly int LOG_KERN = 0;
private static readonly int LOG_USER = 1;
+ private static readonly int LOG_MAIL = 2;
+ private static readonly int LOG_DAEMON = 3;
+ private static readonly int LOG_AUTH = 4;
+ private static readonly int LOG_SYSLOG = 5;
+ private static readonly int LOG_LPR = 6;
+ private static readonly int LOG_NEWS = 7;
+ private static readonly int LOG_UUCP = 8;
+ private static readonly int LOG_CRON = 9;
+ private static readonly int LOG_AUTHPRIV = 10;
+ private static readonly int LOG_FTP = 11;
+ private static readonly int LOG_LOCAL0 = 16;
+ private static readonly int LOG_LOCAL1 = 17;
+ private static readonly int LOG_LOCAL2 = 18;
+ private static readonly int LOG_LOCAL3 = 19;
+ private static readonly int LOG_LOCAL4 = 20;
+ private static readonly int LOG_LOCAL5 = 21;
+ private static readonly int LOG_LOCAL6 = 22;
+ private static readonly int LOG_LOCAL7 = 23;
//
// Syslog priorities (as defined in syslog.h)
diff --git a/java/src/Ice/SysLoggerI.java b/java/src/Ice/SysLoggerI.java
index e782aa18f7f..ec580cf8c4b 100644
--- a/java/src/Ice/SysLoggerI.java
+++ b/java/src/Ice/SysLoggerI.java
@@ -17,9 +17,107 @@ import java.io.IOException;
public final class SysLoggerI implements Logger
{
public
- SysLoggerI(String ident)
+ SysLoggerI(String ident, String facilityString)
+ {
+ int facility;
+ if(facilityString.equals("LOG_KERN"))
+ {
+ facility = LOG_KERN;
+ }
+ else if(facilityString.equals("LOG_USER"))
+ {
+ facility = LOG_USER;
+ }
+ else if(facilityString.equals("LOG_MAIL"))
+ {
+ facility = LOG_MAIL;
+ }
+ else if(facilityString.equals("LOG_DAEMON"))
+ {
+ facility = LOG_DAEMON;
+ }
+ else if(facilityString.equals("LOG_AUTH"))
+ {
+ facility = LOG_AUTH;
+ }
+ else if(facilityString.equals("LOG_SYSLOG"))
+ {
+ facility = LOG_SYSLOG;
+ }
+ else if(facilityString.equals("LOG_LPR"))
+ {
+ facility = LOG_LPR;
+ }
+ else if(facilityString.equals("LOG_NEWS"))
+ {
+ facility = LOG_NEWS;
+ }
+ else if(facilityString.equals("LOG_UUCP"))
+ {
+ facility = LOG_UUCP;
+ }
+ else if(facilityString.equals("LOG_CRON"))
+ {
+ facility = LOG_CRON;
+ }
+ else if(facilityString.equals("LOG_AUTHPRIV"))
+ {
+ facility = LOG_AUTHPRIV;
+ }
+ else if(facilityString.equals("LOG_FTP"))
+ {
+ facility = LOG_FTP;
+ }
+ else if(facilityString.equals("LOG_LOCAL0"))
+ {
+ facility = LOG_LOCAL0;
+ }
+ else if(facilityString.equals("LOG_LOCAL1"))
+ {
+ facility = LOG_LOCAL1;
+ }
+ else if(facilityString.equals("LOG_LOCAL2"))
+ {
+ facility = LOG_LOCAL2;
+ }
+ else if(facilityString.equals("LOG_LOCAL3"))
+ {
+ facility = LOG_LOCAL3;
+ }
+ else if(facilityString.equals("LOG_LOCAL4"))
+ {
+ facility = LOG_LOCAL4;
+ }
+ else if(facilityString.equals("LOG_LOCAL5"))
+ {
+ facility = LOG_LOCAL5;
+ }
+ else if(facilityString.equals("LOG_LOCAL6"))
+ {
+ facility = LOG_LOCAL6;
+ }
+ else if(facilityString.equals("LOG_LOCAL7"))
+ {
+ facility = LOG_LOCAL7;
+ }
+ else
+ {
+ throw new Ice.InitializationException("Invalid value for Ice.SyslogFacility: " + facilityString);
+ }
+ initialize(ident, facility);
+ }
+
+ private
+ SysLoggerI(String ident, int facility)
+ {
+ initialize(ident, facility);
+ }
+
+ private void
+ initialize(String ident, int facility)
{
_ident = ident;
+ _facility = facility;
//
// Open a datagram socket to communicate with the localhost
@@ -66,7 +164,7 @@ public final class SysLoggerI implements Logger
public Logger
cloneWithPrefix(String prefix)
{
- return new SysLoggerI(prefix);
+ return new SysLoggerI(prefix, _facility);
}
private void
@@ -82,7 +180,7 @@ public final class SysLoggerI implements Logger
// colon character and the message.
//
- int priority = (LOG_USER << 3) | severity;
+ int priority = (_facility << 3) | severity;
String msg = '<' + Integer.toString(priority) + '>' + _ident + ": " + message;
@@ -99,14 +197,34 @@ public final class SysLoggerI implements Logger
}
private String _ident;
+ private int _facility;
private DatagramSocket _socket;
private InetAddress _host;
private static int _port = 514;
//
- // Syslog facilities facilities (as defined in syslog.h)
+ // Syslog facilities (as defined in syslog.h)
//
+ private final static int LOG_KERN = 0;
private final static int LOG_USER = 1;
+ private final static int LOG_MAIL = 2;
+ private final static int LOG_DAEMON = 3;
+ private final static int LOG_AUTH = 4;
+ private final static int LOG_SYSLOG = 5;
+ private final static int LOG_LPR = 6;
+ private final static int LOG_NEWS = 7;
+ private final static int LOG_UUCP = 8;
+ private final static int LOG_CRON = 9;
+ private final static int LOG_AUTHPRIV = 10;
+ private final static int LOG_FTP = 11;
+ private final static int LOG_LOCAL0 = 16;
+ private final static int LOG_LOCAL1 = 17;
+ private final static int LOG_LOCAL2 = 18;
+ private final static int LOG_LOCAL3 = 19;
+ private final static int LOG_LOCAL4 = 20;
+ private final static int LOG_LOCAL5 = 21;
+ private final static int LOG_LOCAL6 = 22;
+ private final static int LOG_LOCAL7 = 23;
//
// Syslog priorities (as defined in syslog.h)
@@ -115,4 +233,3 @@ public final class SysLoggerI implements Logger
private final static int LOG_WARNING = 4;
private final static int LOG_INFO = 6;
}
-
diff --git a/java/src/IceInternal/Instance.java b/java/src/IceInternal/Instance.java
index 151ea12a466..ede817a338c 100644
--- a/java/src/IceInternal/Instance.java
+++ b/java/src/IceInternal/Instance.java
@@ -634,7 +634,8 @@ public final class Instance
{
throw new Ice.InitializationException("Both syslog and file logger cannot be enabled.");
}
- _initData.logger = new Ice.SysLoggerI(_initData.properties.getProperty("Ice.ProgramName"));
+ _initData.logger = new Ice.SysLoggerI(_initData.properties.getProperty("Ice.ProgramName"),
+ _initData.properties.getPropertyWithDefault("Ice.SyslogFacility", "LOG_USER"));
}
else if(logfile.length() != 0)
{
diff --git a/java/src/IceInternal/PropertyNames.java b/java/src/IceInternal/PropertyNames.java
index 682d7a360d9..56084f023c1 100644
--- a/java/src/IceInternal/PropertyNames.java
+++ b/java/src/IceInternal/PropertyNames.java
@@ -8,7 +8,7 @@
// **********************************************************************
//
-// Generated by makeprops.py from file ../config/PropertyNames.xml, Fri Oct 16 11:27:10 2009
+// Generated by makeprops.py from file ../config/PropertyNames.xml, Fri Dec 4 10:31:05 2009
// IMPORTANT: Do not edit this file -- any edits made here will be lost!
@@ -100,6 +100,7 @@ public final class PropertyNames
new Property("Ice\\.ServerIdleTime", false, null),
new Property("Ice\\.StdErr", false, null),
new Property("Ice\\.StdOut", false, null),
+ new Property("Ice\\.SyslogFacility", false, null),
new Property("Ice\\.ThreadPool\\.Client\\.Size", false, null),
new Property("Ice\\.ThreadPool\\.Client\\.SizeMax", false, null),
new Property("Ice\\.ThreadPool\\.Client\\.SizeWarn", false, null),
diff --git a/java/test/Freeze/fileLock/db/.gitignore b/java/test/Freeze/fileLock/db/.gitignore
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/java/test/Freeze/fileLock/db/.gitignore