--- old/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeTableViewSkin.java 2018-04-12 15:20:37.607998900 +0530 +++ new/modules/controls/src/main/java/com/sun/javafx/scene/control/skin/TreeTableViewSkin.java 2018-04-12 15:20:36.293736100 +0530 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012, 2014, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -351,11 +351,22 @@ // RT-23486 maxWidth += padding; - if(treeTableView.getColumnResizePolicy() == TreeTableView.CONSTRAINED_RESIZE_POLICY) { - maxWidth = Math.max(maxWidth, col.getWidth()); - } + if (treeTableView.getColumnResizePolicy() == TreeTableView.CONSTRAINED_RESIZE_POLICY && treeTableView.getWidth() > 0) { + + if (maxWidth > tc.getMaxWidth()) { + maxWidth = tc.getMaxWidth(); + } - col.impl_setWidth(maxWidth); + int size = tc.getColumns().size(); + if (size > 0) { + resizeColumnToFitContent(tc.getColumns().get(size - 1), maxRows); + return; + } + + resizeColumn(tc, Math.round(maxWidth - tc.getWidth())); + } else { + col.impl_setWidth(maxWidth); + } } /** {@inheritDoc} */