--- old/src/java.desktop/share/classes/sun/print/ServiceDialog.java 2016-07-05 14:24:20.574878000 +0530 +++ new/src/java.desktop/share/classes/sun/print/ServiceDialog.java 2016-07-05 14:24:20.086633999 +0530 @@ -971,6 +971,7 @@ private JFormattedTextField tfRangeFrom, tfRangeTo; private JLabel lblRangeTo; private boolean prSupported; + private boolean prPgRngSupported; public PrintRangePanel() { super(); @@ -1084,7 +1085,7 @@ public void focusGained(FocusEvent e) {} private void setupRangeWidgets() { - boolean rangeEnabled = (rbPages.isSelected() && prSupported); + boolean rangeEnabled = (rbPages.isSelected() && prPgRngSupported); tfRangeFrom.setEnabled(rangeEnabled); tfRangeTo.setEnabled(rangeEnabled); lblRangeTo.setEnabled(rangeEnabled); @@ -1126,10 +1127,17 @@ public void updateInfo() { Class prCategory = PageRanges.class; prSupported = false; + if (psCurrent.isAttributeCategorySupported(prCategory) || isAWT) { prSupported = true; + prPgRngSupported = true; + if (prAll != null && + !psCurrent.isAttributeValueSupported(prAll, docFlavor, + asCurrent)) { + prPgRngSupported = false; + } } SunPageSelection select = SunPageSelection.ALL; @@ -1143,7 +1151,7 @@ int[][] members = pr.getMembers(); if ((members.length > 0) && - (members[0].length > 1)) { + (members[0].length > 1)) { min = members[0][0]; max = members[0][1]; } @@ -1169,7 +1177,7 @@ tfRangeFrom.setValue(min); tfRangeTo.setValue(max); rbAll.setEnabled(prSupported); - rbPages.setEnabled(prSupported); + rbPages.setEnabled(prPgRngSupported); setupRangeWidgets(); } }