Clover icon

jalviewX

  1. Project Clover database Wed Oct 31 2018 15:13:58 GMT
  2. Package jalview.gui

File OOMWarning.java

 

Coverage histogram

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

Code metrics

6
14
3
1
89
48
6
0.43
4.67
3
2

Classes

Class Line # Actions
OOMWarning 27 14 6 23
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.util.MessageManager;
24   
25    import java.awt.Component;
26   
 
27    public class OOMWarning implements Runnable
28    {
29    String action = null;
30   
31    String instructions = "";
32   
33    public static boolean oomInprogress = false;
34   
35    Component desktop = null;
36   
37    /**
38    * Raise an out of memory error.
39    *
40    * @param action
41    * - what was going on when OutOfMemory exception occured.
42    * @param instance
43    * - Window where the dialog will appear
44    * @param oomex
45    * - the actual exception - to be written to stderr or debugger.
46    */
 
47  0 toggle OOMWarning(final String action, final OutOfMemoryError oomex,
48    final Component instance)
49    {
50  0 if (!oomInprogress)
51    {
52  0 oomInprogress = true;
53  0 this.action = action;
54  0 desktop = instance;
55  0 if (oomex != null)
56    {
57  0 if (jalview.bin.Cache.log != null)
58    {
59  0 jalview.bin.Cache.log.error("Out of Memory when " + action,
60    oomex);
61    }
62    else
63    {
64  0 System.err.println("Out of Memory when " + action);
65  0 oomex.printStackTrace();
66    }
67    }
68  0 javax.swing.SwingUtilities.invokeLater(this);
69  0 System.gc();
70    }
71    }
72   
 
73  0 toggle public OOMWarning(String string, OutOfMemoryError oomerror)
74    {
75  0 this(string, oomerror, Desktop.desktop);
76    }
77   
 
78  0 toggle @Override
79    public void run()
80    {
81  0 oomInprogress = false;
82  0 JvOptionPane.showInternalMessageDialog(desktop, MessageManager
83    .formatMessage("warn.out_of_memory_when_action", new String[]
84    { action }), MessageManager.getString("label.out_of_memory"),
85    JvOptionPane.WARNING_MESSAGE);
86    // hope that there's enough memory left that no more appear.
87    }
88   
89    }