1. Home
  2. Troubleshooting
  3. Single Digit Year file name matching fails in 2020

Single Digit Year file name matching fails in 2020

Problem:

When a source file name filter uses a <DATE> parameter, and the date format includes "<YY>" to represent a two-digit year, and the date range is set to "Today", files that should be matching for year 2020 fail.  The error log will indicate "Filename not within date range"

Affects:

  • Diplomat Standard Edition, all versions prior to v8.2 released Jan 02, 2020
  • Diplomat Enterprise Edition, all versions prior to v8.2 released Jan 02, 2020

Discussion:

We have identified the root cause for this issue – buried deep within some old, seldom touched code is the logic for parsing 2-digit years and it has had a century cutoff of "1920" for a very long time.  Thus, any two-digit year that is 20-99 is interpreted as 1920-1999, while anything 00-19 is interpreted as 2000 – 2019.

Workaround:

When specifying the "today" date match for file names, you can explicitly specify the "20" and use date variables for the month and day only.  For example, if your source file naming is:
   Source File:  File_<DATE>.csv
   Source Date Format:  <YY><MM><DD>
   Source Date Range:  Today

Then you can change to this until you update your Diplomat MFT version:
   Source File:  File_20<DATE>.csv
   Source Date Format:  <MM><DD>
   Source Date Range:  Today
 

Resolution:

 We have changed the 2-digit year matching to be consistent with how Microsoft Windows and SQL Server operate by default, which is a 2-digit year interpretation range of "1950-2049".  At some future date, we will make this a configurable option within our software.

For products under support, per the Coviant Product End of Life Policy, the preferred deployment method to correct this problem, if it affects to, is to use the Support Portal to re-download the installer for the version of Diplomat MFT that you are running, and run it in "Repair" mode.  
Alternatively, you can apply a patch file, below.

For those that wish to address only this one bug, without reinstalling the entire software, a patch/hotfix is available for versions 8.2, 8.1, 8.0, and 7.3 in these locations.  You must download the patch file that matches the exact version of Diplomat MFT that you are running.  In the Diplomat Client, choose "Help > About" to determine the exact version you are running.

 
Diplomat Version URL
8.2 http://downloads.coviantsoftware.com/hotfix/2DigitYear/8.2/diplomatServer.jar
8.1.1 http://downloads.coviantsoftware.com/hotfix/2DigitYear/8.1.1/diplomatServer.jar
8.1 http://downloads.coviantsoftware.com/hotfix/2DigitYear/8.1/diplomatServer.jar
8.0.2 http://downloads.coviantsoftware.com/hotfix/2DigitYear/8.0.2/diplomatServer.jar
7.3.1 http://downloads.coviantsoftware.com/hotfix/2DigitYear/7.3.1/diplomatServer.jar
7.3 http://downloads.coviantsoftware.com/hotfix/2DigitYear/7.3/diplomatServer.jar
   
Instructions to install hotfix:
  1. Download the above hotfix JAR file to a location you can access via the Diplomat MFT Server machine
  2. Make a backup of your current server configuration (File > Backup)
  3. We will update the "diplomatServer.jar" file, which is found in the folder "C:\Program Files\Coviant Software\Diplomat-j\tomcatWebserver\webapps\diplomat\WEB-INF\lib"
    1. Make a copy of the current diplomatServer.jar file in case you need to roll-back.  Copy "diplomatServer.jar" to a separate location like Desktop, or simply up one level in the folder tree.
    2. Stop the Diplomat MFT 64 Service.  Disconnect any Diplomat Clients or Diplomat Job Monitors first to ensure a clean shutdown.
    3. Copy the hotfix jar file that you downloaded in step #1 into this folder.
    4. Start the Diplomat MFT 64 Service
    5. Connect with Diplomat Client and confirm that things are working as expected.  You can use the "Run Now" on a job that previously failed on a "Today" date filter to ensure that it works
    6. In the event of a roll-back, simply stop the service and copy the backup of the current diplomatServer.jar file (the one you copied in step #3.1, above) and then restart the service.
Updated on March 11, 2020

Was this article helpful?

Related Articles