A recent bug, 4485461, attempted to address a problem where JButtons and JTabbedPanes generate a disabled icon once and fail to regenerate them on every call to setIcon(At).
There is a problem witht the fix to JTabbedPane. While correctly nulling the disabled icon field on every call to setIconAt, the fix failed to consider when they would be regenerated. The only place in JTabbedPane where this is done is in insertTab. Therefore, calling setIconAt after inserting a tab, effectively clears the disabledIcon, without regenerating it.
To see this, compile and run the attached code:
Click on "enable/disable". The icon on the tab turns grey.
Click on "enable/disable". The icon on the tab is colorful again.
Click on "Set Icon". The icon changes.
Click on "enable/disable". The icon dissapears (it should be a new grey icon).