In recent years, the Indian government has been providing a Java utility which we can use to prepare and file our annual income tax forms.
This is a big improvement over the old days when the government used to provide only a Microsoft Excel utility for this purpose forcing Linux users like me to boot into Windows once a year to fill up the income tax forms. It upset me no end that the Indian government was forcing all of us to buy proprietary software (Windows and Office) only to file the income tax return.
Providing a Java utility (in addition to the Excel utility) makes life a lot easier for those of us who use Linux and other operating systems. It also eliminates the need to buy any proprietary software. But there are still a couple of problems:
It requires Oracle Java while I would expect software provided by the government to run under OpenJDK. I am dismayed to find that governments have a preference for proprietary software when there are decent open source alternatives available. The government’s idea of “free” is “free” as in “free beer” but not as in “free speech”
The Java utility seems to have a serious memory management bug. When you first start the utility, it consumes only a modest amount of memory, but after some time as one moves from tab to tab to fill in various data fields, the memory usage mounts rapidly. At one point, I found it impossible to use this utility on a machine with 4 GB RAM as the utility consumed all available memory and started using the swap space as well. I finished the work on a machine with 8 GB RAM. I checked with some other people and they also reported the same problem. To investigate the issue, I opened the utility and kept switching from tab to tab without changing any data – the memory usage kept rising. Since Java has automatic garbage collection, this kind of memory leak is puzzling.