Clover icon

Coverage Report

  1. Project Clover database Wed Nov 13 2024 16:21:17 GMT
  2. Package jalview.gui

File OOMWarning.java

 

Coverage histogram

../../img/srcFileCovDistChart0.png
59% of files have more coverage

Code metrics

4
11
3
1
81
40
5
0.45
3.67
3
1.67

Classes

Class Line # Actions
OOMWarning 28 11 5
0.00%
 

Contributing tests

No tests hitting this source file were found.

Source view

1    /*
2    * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3    * Copyright (C) $$Year-Rel$$ The Jalview Authors
4    *
5    * This file is part of Jalview.
6    *
7    * Jalview is free software: you can redistribute it and/or
8    * modify it under the terms of the GNU General Public License
9    * as published by the Free Software Foundation, either version 3
10    * of the License, or (at your option) any later version.
11    *
12    * Jalview is distributed in the hope that it will be useful, but
13    * WITHOUT ANY WARRANTY; without even the implied warranty
14    * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15    * PURPOSE. See the GNU General Public License for more details.
16    *
17    * You should have received a copy of the GNU General Public License
18    * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19    * The Jalview Authors are detailed in the 'AUTHORS' file.
20    */
21    package jalview.gui;
22   
23    import jalview.bin.Console;
24    import jalview.util.MessageManager;
25   
26    import java.awt.Component;
27   
 
28    public class OOMWarning implements Runnable
29    {
30    String action = null;
31   
32    String instructions = "";
33   
34    public static boolean oomInprogress = false;
35   
36    Component desktop = null;
37   
38    /**
39    * Raise an out of memory error.
40    *
41    * @param action
42    * - what was going on when OutOfMemory exception occured.
43    * @param instance
44    * - Window where the dialog will appear
45    * @param oomex
46    * - the actual exception - to be written to stderr or debugger.
47    */
 
48  0 toggle OOMWarning(final String action, final OutOfMemoryError oomex,
49    final Component instance)
50    {
51  0 if (!oomInprogress)
52    {
53  0 oomInprogress = true;
54  0 this.action = action;
55  0 desktop = instance;
56  0 if (oomex != null)
57    {
58  0 Console.error("Out of Memory when " + action, oomex);
59    }
60  0 javax.swing.SwingUtilities.invokeLater(this);
61  0 System.gc();
62    }
63    }
64   
 
65  0 toggle public OOMWarning(String string, OutOfMemoryError oomerror)
66    {
67  0 this(string, oomerror, Desktop.desktop);
68    }
69   
 
70  0 toggle @Override
71    public void run()
72    {
73  0 oomInprogress = false;
74  0 JvOptionPane.showInternalMessageDialog(desktop, MessageManager
75    .formatMessage("warn.out_of_memory_when_action", new String[]
76    { action }), MessageManager.getString("label.out_of_memory"),
77    JvOptionPane.WARNING_MESSAGE);
78    // hope that there's enough memory left that no more appear.
79    }
80   
81    }