Rather than rendering two cylinders like this, it might be better just to translate the one:

glScale(0.5f * xScale, xScale / aspect, zScale);
glTranslate(0.0f, -0.5f, 0.0f);
Application::getInstance()->getGeometryCache()->renderHalfCylinder(25, 20);