--- old/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java 2017-10-31 17:18:45.479257200 +0530 +++ new/src/java.desktop/share/classes/javax/swing/plaf/basic/BasicMenuItemUI.java 2017-10-31 17:18:43.931527900 +0530 @@ -459,7 +459,11 @@ if (v != null) { d = getPreferredSize(c); d.width -= v.getPreferredSpan(View.X_AXIS) - v.getMinimumSpan(View.X_AXIS); + } else if (c.getParent() instanceof JMenuBar) { + //if the menu is a toplevel item, then return preferred size. + d = getPreferredSize(c); } + return d; }