When you are using some third party open source sofware in your project, and you feel that it should do something that it actually doesn't, what you can do is:
- Inspect the code and realize the precise changes you have to accomplish in order to have things done.
- Do those changes and test if everything works.
- Do at least a little documentation (for example some sort of javadoc for every new function you write, or a comment for every new block of code you add).
- Tell the community responsible of that open source software of your changes.
For the last point, it depends on how that community works. For example, if they host their project in GitHub, you can fork their code and then tell them that the changes you made in your fork are worth a look, describing the improvements you made.
In some other projects the code is distributed in the form of a tarball. In that case you can tell the maintainers the files you modified, describing the changes you made and why...
Also you have to bear in mind that in some cases the functionality you needed so much in your project may be of no interest at all for the community that supports the open source project. There have been cases where such a situation was the founding point of a brand new project, with its own personality and goals.