Based on what you have indicated here, the problem is that:
public class TortoiseShellViewer<T extends TortoiseShell> extends ShellViewer
Doesn't define ShellViewer (which is shared) correctly. It should be:
public class TortoiseShellViewer<T extends TortoiseShell> extends ShellViewer<T>
source share