Do you know what a "shader system" is?
If you're starting out I suggest you start doing simple games like platformers, tiled games, tetris, space shooters etc instead of jumping straight into making a "Game Engine". There're many reasons for this.
Firstly, it's not a great way to learn the basics of making a game. Secondly, any game engine you make in the beginning will be immediately outdated (read: crap). Thirdly, there already are good, up to date "Game Engines" out there. Fourthly, this is a huge time investment with little to no gain and will leave you with practically nothing to show for it.
Make ~5 simple games that take less than 20 hours to make each, learn a lot in the process, have 5 simple games to show for it and ready to move on to other things by the time you've done 5% of the "Game Engine", learned almost nothing, nobody will ever use it for anything not even yourself and be left empty handed.
my 2 cents.
If you're just getting started with programming games or you haven't worked on large projects before, you're right, you should avoid something like a game engine. The reason is because a game engine's code base grows very large (hopefully) very quickly - and it is then when your OO programming skills and code organization skills are put to the test. If you find yourself constantly rewriting implementations then you probably don't want to get started with writing a game engine because those implementations take a lot of work to write.
That said, I wouldn't argue that it is ever a waste of time to program a game engine. You learn lots of different things during the process.
There really aren't a lot of game engine out for Java - I mean you have a few that are hacked up dropped in a repository and forgotten about with zero proper documentation or support - and a few that are well supported but nothing compared to the C++\C\.Net market.
I.e, the reason I chose to write a Java isometric game engine is simply because there aren't any out there that are worth using over your own implementation (there are a few that look promising - but not much.) There is uIso - but that's far from a game engine, than there was another, jIso - which had a complete crap code base, than there was "Java Isometric Engine" last talked about in 2008 lacking some essential features like scripting, map editor, item or quest system etc...
There really aren't many purely java based game engines out there at all compared to other programming communities... I chose java to deploy something via an applet (I am actually much more adapt at C# .Net, C & C++ - but I do feel like I know my way a bit around Java) so I feel like using libraries with tons of native dependencies kind of defeats my entire purpose to it.