Renderers are generally static instances even when you delete a JGraph these renderer stop the JGraph from being garbage collected. This only happens for one JGraph instance and is more of a static memory footprint than a memory leak. We've removed the references in the port and vertex in this release and will do the edge renderer shortly. If you were relying on having the graph instance available the idea is to create extra variables in the renderer and set the specific variables in getRendererComponent. So if you were using the graph reference to get the color, for example, in paint(), instead create a variable to hold the color in the renderer and set it in getRendererComponent using the graph instance available there. In paint then use that local color variable instead.