[ 
https://issues.apache.org/jira/browse/FOP-2725?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eo Manis updated FOP-2725:
--------------------------
    Description: 
The Apache FOP print preview panel now and then throws an ArithmeticException 
due to a division by zero.

The affected application has a print preview where the user can navigate 
through a list of printouts, and it lazily creates and keeps PreviewPanels for 
them, as rendering is expensive.
As the user navigates to a different printout, the current printout's 
PreviewPanel instance is removed from the Swing container layout and the next 
printout's PreviewPanel instance is put onto the layout. At this step, 
sometimes the ArithmeticException occurs, wreaking all kinds of havoc with the 
application.

It may be the case that sometimes the PageNumberListener is fired from a 
PreviewPanel instance that is not contained in any layout, and in that case the 
scroll bar / Adjustable reports bad values for getMinimum() and getMaximum(). 
Possibly the PageNumberListener should guard against that and perhaps just do 
nothing then.

{code:java}
    private class PageNumberListener implements AdjustmentListener {
        public void adjustmentValueChanged(AdjustmentEvent e) {
            if (displayMode == PreviewPanel.CONTINUOUS || displayMode == 
PreviewPanel.CONT_FACING) {
                Adjustable a = e.getAdjustable();
                int value = +e.getValue();
                int min = a.getMinimum();
                int max = a.getMaximum();
*                int page = ((renderer.getNumberOfPages() * value) / (max - 
min));*
                if (page != currentPage) {
                    int oldPage = currentPage;
                    currentPage = page;
                    firePageChange(oldPage, currentPage);
                }
            }
        }
    }
{code}
max == 0
min == 0

{noformat}
java.lang.ArithmeticException: / by zero
        at 
org.apache.fop.render.awt.viewer.PreviewPanel$PageNumberListener.adjustmentValueChanged(PreviewPanel.java:403)
        at 
javax.swing.JScrollBar.fireAdjustmentValueChanged(JScrollBar.java:705)
        at javax.swing.JScrollBar.access$100(JScrollBar.java:81)
        at 
javax.swing.JScrollBar$ModelListener.stateChanged(JScrollBar.java:727)
        at 
javax.swing.DefaultBoundedRangeModel.fireStateChanged(DefaultBoundedRangeModel.java:364)
        at 
javax.swing.DefaultBoundedRangeModel.setRangeProperties(DefaultBoundedRangeModel.java:302)
        at javax.swing.JScrollBar.setValues(JScrollBar.java:623)
        at 
javax.swing.plaf.basic.BasicScrollPaneUI.syncScrollPaneWithViewport(BasicScrollPaneUI.java:285)
        at 
javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(BasicScrollPaneUI.java:1034)
        at javax.swing.JViewport.fireStateChanged(JViewport.java:1369)
        at javax.swing.JViewport.reshape(JViewport.java:839)
        at java.awt.Component.setBounds(Component.java:2261)
        at java.awt.Component.setBounds(Component.java:2405)
        at 
javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:890)
        at java.awt.Container.layout(Container.java:1510)
        at java.awt.Container.doLayout(Container.java:1499)
        at java.awt.Container.validateTree(Container.java:1695)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validate(Container.java:1630)
        at 
javax.swing.plaf.basic.BasicTabbedPaneUI.ensureCurrentLayout(BasicTabbedPaneUI.java:1447)
        at 
javax.swing.plaf.basic.BasicTabbedPaneUI.getTabBounds(BasicTabbedPaneUI.java:1467)
        at 
com.sun.java.swing.plaf.windows.WindowsTabbedPaneUI.setRolloverTab(WindowsTabbedPaneUI.java:104)
        at 
javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.layoutContainer(BasicTabbedPaneUI.java:2400)
        at java.awt.Container.layout(Container.java:1510)
        at java.awt.Container.doLayout(Container.java:1499)
        at java.awt.Container.validateTree(Container.java:1695)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validate(Container.java:1630)
        at javax.swing.RepaintManager$3.run(RepaintManager.java:711)
        at javax.swing.RepaintManager$3.run(RepaintManager.java:709)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at 
javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:708)
        at 
javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1731)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
        at 
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at 
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at 
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
        at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
        at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
        at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
        at java.awt.Dialog.show(Dialog.java:1084)
        at java.awt.Component.show(Component.java:1671)
        at java.awt.Component.setVisible(Component.java:1623)
        at java.awt.Window.setVisible(Window.java:1014)
        at java.awt.Dialog.setVisible(Dialog.java:1005)
        at 
com.guetermann.printout.ui.PrintoutsDisplayDialog.setVisible(PrintoutsDisplayDialog.java:80)
        at 
com.guetermann.printout.ui.PrintoutPrintPanel.showPrintouts(PrintoutPrintPanel.java:908)
        at 
com.guetermann.printout.ui.PrintoutPrintPanel.access$6(PrintoutPrintPanel.java:888)
        at 
com.guetermann.printout.ui.PrintoutPrintPanel$15.actionPerformed(PrintoutPrintPanel.java:681)
        at 
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
        at 
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
        at 
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
        at 
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
        at 
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
        at java.awt.Component.processMouseEvent(Component.java:6533)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
        at java.awt.Component.processEvent(Component.java:6298)
        at java.awt.Container.processEvent(Container.java:2236)
        at java.awt.Component.dispatchEventImpl(Component.java:4889)
        at java.awt.Container.dispatchEventImpl(Container.java:2294)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at 
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
        at java.awt.Container.dispatchEventImpl(Container.java:2280)
        at java.awt.Window.dispatchEventImpl(Window.java:2746)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at 
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
        at java.awt.EventQueue$4.run(EventQueue.java:731)
        at java.awt.EventQueue$4.run(EventQueue.java:729)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
        at 
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at 
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at 
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
{noformat}


  was:
The Apache FOP print preview panel now and then throws an ArithmeticException 
due to a division by zero.

The affected application has a print preview where the user can navigate 
through a list of printouts, and it lazily creates and keeps PreviewPanels for 
them, as rendering is expensive.
As the user navigates to a different printout, the current printout's 
PreviewPanel instance is removed from the Swing container layout and the next 
printout's PreviewPanel instance is put onto the layout. At this step, 
sometimes the ArithmeticException occurs, wreaking all kinds of havoc with the 
application.

It may be the case that sometimes the PageNumberListener is fired from a 
PreviewPanel instance that is not contained in any layout, and in that case the 
scroll bar / Adjustable reports bad values for getMinimum() and getMaximum(). 
Possibly the PageNumberListener should guard against that and perhaps just do 
nothing then.

{code:java}
    private class PageNumberListener implements AdjustmentListener {
        public void adjustmentValueChanged(AdjustmentEvent e) {
            if (displayMode == PreviewPanel.CONTINUOUS || displayMode == 
PreviewPanel.CONT_FACING) {
                Adjustable a = e.getAdjustable();
                int value = +e.getValue();
                int min = a.getMinimum();
                int max = a.getMaximum();
                int page = ((renderer.getNumberOfPages() * value) / (max - 
min));
                if (page != currentPage) {
                    int oldPage = currentPage;
                    currentPage = page;
                    firePageChange(oldPage, currentPage);
                }
            }
        }
    }
{code}
max == 0
min == 0

{noformat}
java.lang.ArithmeticException: / by zero
        at 
org.apache.fop.render.awt.viewer.PreviewPanel$PageNumberListener.adjustmentValueChanged(PreviewPanel.java:403)
        at 
javax.swing.JScrollBar.fireAdjustmentValueChanged(JScrollBar.java:705)
        at javax.swing.JScrollBar.access$100(JScrollBar.java:81)
        at 
javax.swing.JScrollBar$ModelListener.stateChanged(JScrollBar.java:727)
        at 
javax.swing.DefaultBoundedRangeModel.fireStateChanged(DefaultBoundedRangeModel.java:364)
        at 
javax.swing.DefaultBoundedRangeModel.setRangeProperties(DefaultBoundedRangeModel.java:302)
        at javax.swing.JScrollBar.setValues(JScrollBar.java:623)
        at 
javax.swing.plaf.basic.BasicScrollPaneUI.syncScrollPaneWithViewport(BasicScrollPaneUI.java:285)
        at 
javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(BasicScrollPaneUI.java:1034)
        at javax.swing.JViewport.fireStateChanged(JViewport.java:1369)
        at javax.swing.JViewport.reshape(JViewport.java:839)
        at java.awt.Component.setBounds(Component.java:2261)
        at java.awt.Component.setBounds(Component.java:2405)
        at 
javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:890)
        at java.awt.Container.layout(Container.java:1510)
        at java.awt.Container.doLayout(Container.java:1499)
        at java.awt.Container.validateTree(Container.java:1695)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validate(Container.java:1630)
        at 
javax.swing.plaf.basic.BasicTabbedPaneUI.ensureCurrentLayout(BasicTabbedPaneUI.java:1447)
        at 
javax.swing.plaf.basic.BasicTabbedPaneUI.getTabBounds(BasicTabbedPaneUI.java:1467)
        at 
com.sun.java.swing.plaf.windows.WindowsTabbedPaneUI.setRolloverTab(WindowsTabbedPaneUI.java:104)
        at 
javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.layoutContainer(BasicTabbedPaneUI.java:2400)
        at java.awt.Container.layout(Container.java:1510)
        at java.awt.Container.doLayout(Container.java:1499)
        at java.awt.Container.validateTree(Container.java:1695)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validateTree(Container.java:1704)
        at java.awt.Container.validate(Container.java:1630)
        at javax.swing.RepaintManager$3.run(RepaintManager.java:711)
        at javax.swing.RepaintManager$3.run(RepaintManager.java:709)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at 
javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:708)
        at 
javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1731)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
        at 
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at 
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at 
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
        at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
        at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
        at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
        at java.awt.Dialog.show(Dialog.java:1084)
        at java.awt.Component.show(Component.java:1671)
        at java.awt.Component.setVisible(Component.java:1623)
        at java.awt.Window.setVisible(Window.java:1014)
        at java.awt.Dialog.setVisible(Dialog.java:1005)
        at 
com.guetermann.printout.ui.PrintoutsDisplayDialog.setVisible(PrintoutsDisplayDialog.java:80)
        at 
com.guetermann.printout.ui.PrintoutPrintPanel.showPrintouts(PrintoutPrintPanel.java:908)
        at 
com.guetermann.printout.ui.PrintoutPrintPanel.access$6(PrintoutPrintPanel.java:888)
        at 
com.guetermann.printout.ui.PrintoutPrintPanel$15.actionPerformed(PrintoutPrintPanel.java:681)
        at 
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
        at 
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
        at 
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
        at 
javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
        at 
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
        at java.awt.Component.processMouseEvent(Component.java:6533)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
        at java.awt.Component.processEvent(Component.java:6298)
        at java.awt.Container.processEvent(Container.java:2236)
        at java.awt.Component.dispatchEventImpl(Component.java:4889)
        at java.awt.Container.dispatchEventImpl(Container.java:2294)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at 
java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
        at java.awt.Container.dispatchEventImpl(Container.java:2280)
        at java.awt.Window.dispatchEventImpl(Window.java:2746)
        at java.awt.Component.dispatchEvent(Component.java:4711)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
        at java.awt.EventQueue.access$500(EventQueue.java:97)
        at java.awt.EventQueue$3.run(EventQueue.java:709)
        at java.awt.EventQueue$3.run(EventQueue.java:703)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at 
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
        at java.awt.EventQueue$4.run(EventQueue.java:731)
        at java.awt.EventQueue$4.run(EventQueue.java:729)
        at java.security.AccessController.doPrivileged(Native Method)
        at 
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
        at 
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
        at 
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
        at 
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
{noformat}



> Division by zero in PreviewPanel.PageNumberListener
> ---------------------------------------------------
>
>                 Key: FOP-2725
>                 URL: https://issues.apache.org/jira/browse/FOP-2725
>             Project: FOP
>          Issue Type: Bug
>          Components: renderer/awt
>    Affects Versions: 2.1
>         Environment: Microsoft Windows 7 Professional x64, Oracle JRE 8u121 
> x64, also Red Hat OpenJDK for Windows 8u121
>            Reporter: Eo Manis
>
> The Apache FOP print preview panel now and then throws an ArithmeticException 
> due to a division by zero.
> The affected application has a print preview where the user can navigate 
> through a list of printouts, and it lazily creates and keeps PreviewPanels 
> for them, as rendering is expensive.
> As the user navigates to a different printout, the current printout's 
> PreviewPanel instance is removed from the Swing container layout and the next 
> printout's PreviewPanel instance is put onto the layout. At this step, 
> sometimes the ArithmeticException occurs, wreaking all kinds of havoc with 
> the application.
> It may be the case that sometimes the PageNumberListener is fired from a 
> PreviewPanel instance that is not contained in any layout, and in that case 
> the scroll bar / Adjustable reports bad values for getMinimum() and 
> getMaximum(). Possibly the PageNumberListener should guard against that and 
> perhaps just do nothing then.
> {code:java}
>     private class PageNumberListener implements AdjustmentListener {
>         public void adjustmentValueChanged(AdjustmentEvent e) {
>             if (displayMode == PreviewPanel.CONTINUOUS || displayMode == 
> PreviewPanel.CONT_FACING) {
>                 Adjustable a = e.getAdjustable();
>                 int value = +e.getValue();
>                 int min = a.getMinimum();
>                 int max = a.getMaximum();
> *                int page = ((renderer.getNumberOfPages() * value) / (max - 
> min));*
>                 if (page != currentPage) {
>                     int oldPage = currentPage;
>                     currentPage = page;
>                     firePageChange(oldPage, currentPage);
>                 }
>             }
>         }
>     }
> {code}
> max == 0
> min == 0
> {noformat}
> java.lang.ArithmeticException: / by zero
>         at 
> org.apache.fop.render.awt.viewer.PreviewPanel$PageNumberListener.adjustmentValueChanged(PreviewPanel.java:403)
>         at 
> javax.swing.JScrollBar.fireAdjustmentValueChanged(JScrollBar.java:705)
>         at javax.swing.JScrollBar.access$100(JScrollBar.java:81)
>         at 
> javax.swing.JScrollBar$ModelListener.stateChanged(JScrollBar.java:727)
>         at 
> javax.swing.DefaultBoundedRangeModel.fireStateChanged(DefaultBoundedRangeModel.java:364)
>         at 
> javax.swing.DefaultBoundedRangeModel.setRangeProperties(DefaultBoundedRangeModel.java:302)
>         at javax.swing.JScrollBar.setValues(JScrollBar.java:623)
>         at 
> javax.swing.plaf.basic.BasicScrollPaneUI.syncScrollPaneWithViewport(BasicScrollPaneUI.java:285)
>         at 
> javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(BasicScrollPaneUI.java:1034)
>         at javax.swing.JViewport.fireStateChanged(JViewport.java:1369)
>         at javax.swing.JViewport.reshape(JViewport.java:839)
>         at java.awt.Component.setBounds(Component.java:2261)
>         at java.awt.Component.setBounds(Component.java:2405)
>         at 
> javax.swing.ScrollPaneLayout.layoutContainer(ScrollPaneLayout.java:890)
>         at java.awt.Container.layout(Container.java:1510)
>         at java.awt.Container.doLayout(Container.java:1499)
>         at java.awt.Container.validateTree(Container.java:1695)
>         at java.awt.Container.validateTree(Container.java:1704)
>         at java.awt.Container.validateTree(Container.java:1704)
>         at java.awt.Container.validateTree(Container.java:1704)
>         at java.awt.Container.validate(Container.java:1630)
>         at 
> javax.swing.plaf.basic.BasicTabbedPaneUI.ensureCurrentLayout(BasicTabbedPaneUI.java:1447)
>         at 
> javax.swing.plaf.basic.BasicTabbedPaneUI.getTabBounds(BasicTabbedPaneUI.java:1467)
>         at 
> com.sun.java.swing.plaf.windows.WindowsTabbedPaneUI.setRolloverTab(WindowsTabbedPaneUI.java:104)
>         at 
> javax.swing.plaf.basic.BasicTabbedPaneUI$TabbedPaneLayout.layoutContainer(BasicTabbedPaneUI.java:2400)
>         at java.awt.Container.layout(Container.java:1510)
>         at java.awt.Container.doLayout(Container.java:1499)
>         at java.awt.Container.validateTree(Container.java:1695)
>         at java.awt.Container.validateTree(Container.java:1704)
>         at java.awt.Container.validateTree(Container.java:1704)
>         at java.awt.Container.validateTree(Container.java:1704)
>         at java.awt.Container.validateTree(Container.java:1704)
>         at java.awt.Container.validateTree(Container.java:1704)
>         at java.awt.Container.validateTree(Container.java:1704)
>         at java.awt.Container.validate(Container.java:1630)
>         at javax.swing.RepaintManager$3.run(RepaintManager.java:711)
>         at javax.swing.RepaintManager$3.run(RepaintManager.java:709)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at 
> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
>         at 
> javax.swing.RepaintManager.validateInvalidComponents(RepaintManager.java:708)
>         at 
> javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1731)
>         at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
>         at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)
>         at java.awt.EventQueue.access$500(EventQueue.java:97)
>         at java.awt.EventQueue$3.run(EventQueue.java:709)
>         at java.awt.EventQueue$3.run(EventQueue.java:703)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at 
> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
>         at java.awt.EventQueue.dispatchEvent(EventQueue.java:726)
>         at 
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
>         at 
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
>         at 
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:109)
>         at java.awt.WaitDispatchSupport$2.run(WaitDispatchSupport.java:184)
>         at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:229)
>         at java.awt.WaitDispatchSupport$4.run(WaitDispatchSupport.java:227)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.awt.WaitDispatchSupport.enter(WaitDispatchSupport.java:227)
>         at java.awt.Dialog.show(Dialog.java:1084)
>         at java.awt.Component.show(Component.java:1671)
>         at java.awt.Component.setVisible(Component.java:1623)
>         at java.awt.Window.setVisible(Window.java:1014)
>         at java.awt.Dialog.setVisible(Dialog.java:1005)
>         at 
> com.guetermann.printout.ui.PrintoutsDisplayDialog.setVisible(PrintoutsDisplayDialog.java:80)
>         at 
> com.guetermann.printout.ui.PrintoutPrintPanel.showPrintouts(PrintoutPrintPanel.java:908)
>         at 
> com.guetermann.printout.ui.PrintoutPrintPanel.access$6(PrintoutPrintPanel.java:888)
>         at 
> com.guetermann.printout.ui.PrintoutPrintPanel$15.actionPerformed(PrintoutPrintPanel.java:681)
>         at 
> javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
>         at 
> javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
>         at 
> javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
>         at 
> javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
>         at 
> javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
>         at java.awt.Component.processMouseEvent(Component.java:6533)
>         at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
>         at java.awt.Component.processEvent(Component.java:6298)
>         at java.awt.Container.processEvent(Container.java:2236)
>         at java.awt.Component.dispatchEventImpl(Component.java:4889)
>         at java.awt.Container.dispatchEventImpl(Container.java:2294)
>         at java.awt.Component.dispatchEvent(Component.java:4711)
>         at 
> java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
>         at 
> java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
>         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
>         at java.awt.Container.dispatchEventImpl(Container.java:2280)
>         at java.awt.Window.dispatchEventImpl(Window.java:2746)
>         at java.awt.Component.dispatchEvent(Component.java:4711)
>         at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
>         at java.awt.EventQueue.access$500(EventQueue.java:97)
>         at java.awt.EventQueue$3.run(EventQueue.java:709)
>         at java.awt.EventQueue$3.run(EventQueue.java:703)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at 
> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
>         at 
> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
>         at java.awt.EventQueue$4.run(EventQueue.java:731)
>         at java.awt.EventQueue$4.run(EventQueue.java:729)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at 
> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
>         at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
>         at 
> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
>         at 
> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
>         at 
> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
>         at 
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
>         at 
> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
>         at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to