Listener memory leaks

Just noticed these warnings in my Tomcat log files.
Not sure if they are cause for concern or if they indicate some mis-configuration on my side. Maybe some from the Oracle APEX team can take a look at it. Thanks.
01-Dec-2014 17:38:25.924 WARNING [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [apex] appears to have started a thread named [UCP-worker-thread-24] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:745)
01-Dec-2014 17:38:25.928 SEVERE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [apex] created a ThreadLocal with key of type [org.apache.xmlbeans.impl.store.CharUtil$1] (value [org.apache.xmlbeans.impl.store.CharUtil$1@7de8083f]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@4f4bdbe7]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
01-Dec-2014 17:38:25.928 SEVERE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [apex] created a ThreadLocal with key of type [org.apache.xmlbeans.XmlBeans$1] (value [org.apache.xmlbeans.XmlBeans$1@11a5e205]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@3faf4a40]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
01-Dec-2014 17:38:25.929 SEVERE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [apex] created a ThreadLocal with key of type [org.apache.xmlbeans.impl.schema.SchemaTypeLoaderImpl$1] (value [org.apache.xmlbeans.impl.schema.SchemaTypeLoaderImpl$1@23b147a]) and a value of type [java.util.ArrayList] (value [[java.lang.ref.SoftReference@133e6339]]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.
01-Dec-2014 17:38:25.929 SEVERE [ContainerBackgroundProcessor[StandardEngine[Catalina]]] org.apache.catalina.loader.WebappClassLoaderBase.checkThreadLocalMapForLeaks The web application [apex] created a ThreadLocal with key of type [org.apache.xmlbeans.impl.store.Locale$1] (value [org.apache.xmlbeans.impl.store.Locale$1@2db50e91]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@680dac2d]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.

There was another time that I dabbled in this idea.
But it always comes back to objects cleaning up
after themselves. Now if its not your code and you
cant ensure good behavior, then perhaps there is
cause. But I'd keep an assert and report the issue
if I saw it trigger.What would fire the assert? The Listener will never be garbage collected while it is listening to something. I assume that you are talking about when the listener is a Swing Object like a JFrame. I don't really like to use gui components as listeners.
If you have to write a clean up method, it kind of defeats the value of having automatic garbage collection to a degree. I like to be able to let my Objects just fall out of scope or just become unreachable when they are no longer needed without having to actively manage their deallocation.

Similar Messages

  • Listener memory leak.

    Hi,
    We'are using oracle database 8.1.7.4 OPS cluster on 2 nodes. Recentaly our listener in the node#1 has started leaking. How to findout the reason for this leak. And how to prevent this error?
    Thanks.
    Regards,
    Shabbir Hussain.

    You are in the wrong forum. If you have problem with the listener you can try to activate the trace. If you think it is something weird you can even open a TAR by Oracle.
    Bye, Aron

  • PGA memory Leak issue along with TNS: listener could not hand off client connection

    Hi,
    We have two Oracle Database instances in a 32 bit Standard Edition Windows OS machine with 3 GB RAM : 1) 1525 MB (SGA+PGA) 2) 515 MB (SGA+PGA)
    Recently we upgraded the RAM from 3 GB to 4 GB. Subsequently we upgraded the SGA + PGA of the 2nd instance to 771 MB.
    This has resulted into PGA memory leak issue reported in the alert log file and trace file.
    Reverting back the SGA+PGA size to 515 MB solved the issue.
    Is this issue related to Address Windowing Extension (AWE)?
    Is the reason related to Total memory for all the cumulative Oracle instance should be < 2GB.
    How to solve this?
    Mon Jul 15 08:21:25 2013
    ORACLE V10.2.0.4.0 - Production vsnsta=0
    vsnsql=14 vsnxtr=3
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    Windows Server 2003 Version V5.2 Service Pack 2
    CPU                 : 4 - type 586, 4 Physical Cores
    Process Affinity    : 0x00000000
    Memory (Avail/Total): Ph:1068M/4023M, Ph+PgF:4985M/7933M, VA:18M/2047M
    Instance name: dp3
    Redo thread mounted by this instance: 0 <none>
    Oracle process number: 0
    Windows thread id: 4484, image: ORACLE.EXE (SHAD)
    *** 2013-07-15 08:21:25.133
    *** ACTION NAME:() 2013-07-15 08:21:25.133
    *** MODULE NAME:() 2013-07-15 08:21:25.133
    *** SERVICE NAME:() 2013-07-15 08:21:25.133
    *** SESSION ID:(90.829) 2013-07-15 08:21:25.133
    ******** ERROR: PGA memory leak detected 6302928 > 30176 ********
    HEAP DUMP heap name="pga heap"  desc=6C98A800
    extent sz=0x206c alt=92 het=32767 rec=0 flg=3 opc=3
    parent=00000000 owner=00000000 nex=00000000 xsz=0x0
    EXTENT 0 addr=7FC10008
      Chunk 7fc10010 sz=    64996    free      "               "
      Chunk 7fc1fdf4 sz=  2097676    freeable  "krfrbAllocate: "
    Dump of memory from 0x7FC1FDF4 to 0x7FE20000
    7FC1FDF0          1020020D 7FC10010 03871E90      [.. .........]
    7FC1FE00 00000000 00000000 00000000 00000000  [................]
      Repeat 131103 times
    EXTENT 1 addr=7FA00008
      Chunk 7fa00010 sz=    64996    free      "               "
      Chunk 7fa0fdf4 sz=  2097676    freeable  "krfrbAllocate: "
    Dump of memory from 0x7FA0FDF4 to 0x7FC10000
    7FA0FDF0          1020020D 7FA00010 03871E90      [.. .........]
    7FA0FE00 00000000 00000000 00000000 00000000  [................]
      Repeat 131103 times
    EXTENT 2 addr=7F7F0008
      Chunk 7f7f0010 sz=    64996    free      "               "
      Chunk 7f7ffdf4 sz=  2097676    freeable  "krfrbAllocate: "
    Dump of memory from 0x7F7FFDF4 to 0x7FA00000
    7F7FFDF0          1020020D 7F7F0010 03871E90      [.. .........]
    7F7FFE00 00000000 00000000 00000000 00000000  [................]
      Repeat 131103 times
    EXTENT 3 addr=70A50008

    There may be something fixed in the patch that gives the error rather than mysterious hangs.  I would prefer that, myself.  There may be something in the patch that changes how Oracle allocates user, system and program areas.
    At some point you spend more trying to limp things along in a growing environment than simply upgrading.  32 bit environments these days is an indicator that management is figuring some false economies.  But that's their prerogative.
    The PGA can be affected by many things, not least of which is how the application uses it.  Much has been written about it, my own experience has been more is used than most people say.  But that is probably just my app.  Note there are different ways to set it, and a parameter with "target" in it might not be a hard limit.  Different execution plans for the same code may use different amounts of memory - there can even be situations where forcing some code to use a sort area instead, or even forcing more operations to disk, can free up more pga for everyone else.  It depends.  But that's why I look at multi-pass operations in dbconsole.

  • Memory leak in JSpinner implementation (maybe others?)

    Hi,
    I am developing an application using Java and Swing, and have run into some problems with memory leaks. After examining the source code and making an example program (provided below), I can only come to the conclusion that there is a bug in the implementation of JSpinner in Sun Java 1.6.0_03.
    If one uses a custom model with the JSpinner, it attaches itself as a listener to the model. However, it never removes the listening connection, even if the model is changed. This causes the JSpinner to be kept in memory as long as the model exists, even if all other references to the component have been removed.
    An example program is available at http://eddie.dy.fi/~sampo/ModelTest.java . It is a simple swing program that has the JSpinner and two buttons, the first of which writes to stdout the listeners of the original model and the second changes the spinner model to a newly-created model. A sample output is below:
    Running on 1.6.0_03 from Sun Microsystems Inc.
    Listeners before connecting to JSpinner:
      Model value is 0, 0 listeners connected:
    Listeners after connecting to JSpinner:
      Model value is 0, 2 listeners connected:
      1: interface javax.swing.event.ChangeListener
      2: javax.swing.JSpinner$ModelListener@9971ad
    Listeners now:
      Model value is 8, 2 listeners connected:
      1: interface javax.swing.event.ChangeListener
      2: javax.swing.JSpinner$ModelListener@9971ad
    Changing spinner model.
    Listeners now:
      Model value is 8, 2 listeners connected:
      1: interface javax.swing.event.ChangeListener
      2: javax.swing.JSpinner$ModelListener@9971adThis shows that even though the model of the JSpinner has been changed, it still listens to the original model. I haven't looked at other components whether they retain connections to the old models as well.
    In my case, I have an adaptor-model which provides a SpinnerModel interface to the actual data. The adaptor is implemented so that it listens to the underlying model only when it itself is being listened to. If the JComponents using the model were to remove the listening connections, it, too, would be automatically garbage-collected. However, since JSpinner does not remove the connections, the adaptor also continues to listen to the underlying model, and neither can be garbage-collected.
    All in all, the listener-connections seem to be a very easy place to make memory leaks in Java and especially in Swing. However, as I see it, it would be a simple matter to make everything work automatically with one simple rule: Listen to the models only when necessary.
    If a component is hidden (or alternatively has no contact to a parent JFrame or equivalent), it does not need to listen to the model and should remove the connections. When the component is again set visible (or connected to a frame) it can re-add the connections and re-read the current model values just as it does when initializing the component. Similarly, any adaptor-models should listen to the underlying model only when it itself is being listened to.
    If the components were implemented in this way, one could simply remove a component from the frame and throw it away, and automatically any listener-connections will be removed and it can be garbage-collected. Similarly any adaptor-models are collected when they are no longer in use.
    Changing the API implementation in this way would not require any changes to applications, as the only thing that changes are the listener-connections. Currently used separate connection-removing methods should still work, though they would be unnecessary any more. The API would look exactly the same from the view of an application programmer, only that she would not need to care about remnant listening connections. (As far as I can tell, the current API specification would allow the API to be implemented as described above, but it should of course require it to be implemented in such a way.)
    Am I missing something, or is there some valid reason why the API is not implemented like this?
    PS. I'm new to these forums, so if there is a better place to post these reports, please tell me. Thanks.

    Another cognition: It's the following code, that causes the memory to be accumulated:
    obj = m_orb.resolve_initial_references("NameService");
    ctx = NamingContextExtHelper.narrow(obj);For the first 4 calls to this code the memory usage of the nameservice is unchanged. From the 5th to the 8th call, it's increased by approx. 10KB per call. And thenceforward (beginning with the 9th call) it's increasing by approx. 10MB.
    What's going wrong here?

  • ITunes 6.0.4(3) memory leak

    I know this topic has popped up on the Windows forum, but I'd like to officially document the same problem in iTunes for OSX.
    Using the iStat Nano widget, I've been monitoring my memory usage when running iTunes. When I first start the program, memory usage jumps to 600 MB. The longer iTunes is open, the more and more memory disappears, whether I'm actively using the program or not (i.e. listening to music). Eventually, this causes a hard crash. By hard crash I mean that I must use the on/off button to reboot the machine. I have had this problem since getting my computer (in mid-March), so there has been at least one iTunes update since then that has not fixed this issue. (I have a previous post on this topic called "iTunes freezing" that was made before I realized that it was caused by a memory leak.)
    I am very, very pleased with my MacBook Pro and I realize that this is not a hardware issue. Has anyone else encountered this problem? Are there any plans to fix it in a future update?
    Thanks in advance for any comments, suggestions, or solutions!
    2.16GHz 15.4" MacBook Pro, 2GB RAM   Mac OS X (10.4.6)   4G 40GB Photo iPod, 5G 2GB nano

    I posted a question this evening on what sounds like the same issue: the link is here:
    http://discussions.apple.com/thread.jspa?threadID=548752
    I think your original post makes clear that this issue is about iTunes itself, it's not about any devices or iPods, not is it to do with the Intel or non-Intel processors... I will try looking at the Memory stats too.
    What baffles me is that I had been using iTunes 6 for quite a long time (and only updating it manually, not automatically) before I ever experienced this.
    My hunch (but what do I know?) is that my initial freeze might have happened for some other reason (too many applications working hard at once, as sometimes happens -- though I have had this happen reasonably often on the PowerBook it is extremely rare on the G5) -- and then in the course of that freeze / crash something in iTunes got corrupted (perhaps the database file that allows iTunes to navigate the iTunes library?)
    By the way, what is the technical name for the total freeze thing (i.e. no beachballs, just complete loss of the mouse and keyboard response, clock stops, no shortcuts working, only PowerButton allows you to shut down).
    Has anyone with this issue tried uninstalling iTunes (by Trashing the App) and reinstalling from a newly-downloaded copy? (I might try that ...)
    PowerMac G5 Dual 1.8GHz, PowerBook G4 12" 1.33GHz   Mac OS X (10.4.5)  
    PowerMac G5 Dual 1.8GHz, PowerBook G4 12" 1.33GHz   Mac OS X (10.4.5)  
    PowerMac G5 Dual 1.8GHz, PowerBook G4 12" 1.33GHz   Mac OS X (10.4.5)  
    PowerMac G5 Dual 1.8GHz, PowerBook G4 12" 1.33GHz   Mac OS X (10.4.5)  
    PowerMac G5 Dual 1.8GHz, PowerBook G4 12" 1.33GHz   Mac OS X (10.4.5)  

  • Memory leak in GUI ??

    hey all...
    i have developed my java app.
    if i leave ir running overnight and come back to it, it size is around 100,000k !
    if i minimise the main window for my app (into the taskbar) and then click the taskbar to send it back onto the screen, it returns to the normal 10,000k....
    why is this..?
    is their some sort of memory leak in my gui?
    do i need to code in some sort of refresh() for the gui ?
    ive gone through all my code and checked for other causes of a memory leak and im fairly sure its the gui..
    thanks...

    Thanks for a good addition. I started to take care on these things when I wanted to make my classes reusable by me and by other people - like creating a library. There are situations you can't be sure your observable object will get out of scope. And - sometimes maintaining code for removing a listener takes less effort then maintaining that observable object will be garbage collected! Sometimes an opposite however.
    Denis Krukovsky
    http://dotuseful.sourceforge.net/

  • How to deal with Memory Leaks, that are caused by Binding

    Hi, I recently noticed (huge?) memory leaks in my application and suspect bindings to be the cause of all the evil.
    I made a little test case, which confirms my suspicion:
    import javafx.application.Application;
    import javafx.beans.property.SimpleStringProperty;
    import javafx.beans.property.StringProperty;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.layout.VBox;
    import javafx.stage.Stage;
    public class TestAppMemoryLeak extends Application {
        public static void main(String[] args) {
            launch(args);
        @Override
        public void start(Stage stage) throws Exception {
            VBox root = new VBox();
            Button button = null;
            for (int i = 0; i < 100000; i++) {
                button = new Button();
                button.textProperty().bind(text);
                button.textProperty().unbind(); // if you don't call this, you can notice the increased memory of the java process.
            root.getChildren().add(button);
            Scene scene = new Scene(root);
            stage.setScene(scene);
            stage.show();
        private StringProperty text = new SimpleStringProperty("test");
    }Now the problem is, HOW can I know, when a variable is no longer needed or overwritten by a new instance.
    Just an example:
    I have a ListView with a Cell Factory. In the updateItem method, I add a ContextMenu. The textProperty of each MenuItem is bound to a kind of global property, like in the example above. I have to do it in the updateItem method, since the ContextMenu differs depending on the item.
    So every time the updateItem method is called a new ContextMenu is created, which binds some properties, but the old context menus remain in memory.
    I guess there could be many more example.
    How can I deal with it?

    I've dealt with this situation and created a Jira issue for it, but I also have a work-around that is a bit unwieldy but works. I'll share it with you.
    The bug that deals with this (in part atleast): http://javafx-jira.kenai.com/browse/RT-20616
    The solution is to use weak invalidation listeners, however they are a bit of a pain to use as you cannot do it with something simplistic as "bindWeakly"... and you need to keep a reference around to the wrapped listener otherwise it will just get garbage collected immediately (as it is only weakly referenced). Some very odd bugs can surface if weak listeners disappear randomly because you forgot to reference them :)
    Anyway, see this code below, it shows you some code that is called from a TreeCell's updateItem method (I've wrapped it in some more layers in my program, but it is essentially the same as an updateItem method):
    public class EpisodeCell extends DuoLineCell implements MediaNodeCell {
      private final WeakBinder binder = new WeakBinder();
      @Override
      public void configureCell(MediaNode mediaNode) {
        MediaItem item = mediaNode.getMediaItem();
        StringBinding episodeRange = MapBindings.selectString(mediaNode.dataMapProperty(), Episode.class, "episodeRange");
        binder.unbindAll();
        binder.bind(titleProperty(), MapBindings.selectString(mediaNode.dataMapProperty(), Media.class, "title"));
        binder.bind(ratingProperty(), MapBindings.selectDouble(mediaNode.dataMapProperty(), Media.class, "rating").divide(10));
        binder.bind(extraInfoProperty(), Bindings.when(episodeRange.isNull()).then(new SimpleStringProperty("Special")).otherwise(episodeRange));
        binder.bind(viewedProperty(), item.viewedProperty());
        subtitleProperty().set("");
    }This code makes use of a class called WeakBinder -- it is a helper class that can make Weak bindings and can keep track of them. When you call unbindAll() on it, all of the bindings it created before are released immediately (although they will also disappear when the Cell itself is garbage collected, which is possible because it only makes weak references).
    I've tested this extensively and it solves the problem of Cells keeping references to objects with much longer life cycles (in my case, the MediaNode passed in has a longer lifecycle than the cells and so it is important to bind weakly to it). Before this would create huge memory leaks (crashing my program within a minute if you kept refreshing the Tree)... now it survives hours atleast and the Heap usage stays in a fixed range which means it is correctly able to collect all garbage).
    The code for WeakBinder is below (you can consider it public domain, so use it as you see fit, or write your own):
    package hs.mediasystem.util;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import javafx.beans.InvalidationListener;
    import javafx.beans.Observable;
    import javafx.beans.WeakInvalidationListener;
    import javafx.beans.property.Property;
    import javafx.beans.value.ObservableValue;
    public class WeakBinder {
      private final List<Object> hardRefs = new ArrayList<>();
      private final Map<ObservableValue<?>, WeakInvalidationListener> listeners = new HashMap<>();
      public void unbindAll() {
        for(ObservableValue<?> observableValue : listeners.keySet()) {
          observableValue.removeListener(listeners.get(observableValue));
        hardRefs.clear();
        listeners.clear();
      public <T> void bind(final Property<T> property, final ObservableValue<? extends T> dest) {
        InvalidationListener invalidationListener = new InvalidationListener() {
          @Override
          public void invalidated(Observable observable) {
            property.setValue(dest.getValue());
        WeakInvalidationListener weakInvalidationListener = new WeakInvalidationListener(invalidationListener);
        listeners.put(dest, weakInvalidationListener);
        dest.addListener(weakInvalidationListener);
        property.setValue(dest.getValue());
        hardRefs.add(dest);
        hardRefs.add(invalidationListener);
    }Let me know if this solves your problem.

  • Memory Leak with JPopupMenu

    It seems there is a memory leak with JPopupMenu. The following program demonstrates this leak. If you run the program, click on show form, and then close the form, the used memory will be GCd appropriately. If you click on show form, then right click on the table to show the popup (even if you dont do anything else with the popup) then close the form, it never GCs the form. I've tried all kinds of crazy things, but I cant seem to find what is keeping the memory from being GCd.
    Peter
    import java.awt.BorderLayout;
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;
    import java.beans.PropertyChangeListener;
    import java.text.DecimalFormat;
    import java.util.Timer;
    import java.util.TimerTask;
    import java.util.Vector;
    import javax.swing.AbstractAction;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    import javax.swing.JPopupMenu;
    import javax.swing.JRadioButtonMenuItem;
    import javax.swing.JScrollPane;
    import javax.swing.JTabbedPane;
    import javax.swing.JTable;
    import javax.swing.SwingUtilities;
    import javax.swing.table.AbstractTableModel;
    @SuppressWarnings("serial")
    public class TriState extends JPanel {
         private static final long               K               = 1024;
         private static final long               M               = K * K;
         private static final long               G               = M * K;
         private static final long               T               = G * K;
         protected static int ctr = 1;
         private JButton                              btnShow          = new JButton("Show Form");
         private JLabel                              lblMem          = new JLabel();
         private static final DecimalFormat     df               = new DecimalFormat("#,##0.#");
         protected Timer                              updateTimer     = new Timer();
         public TriState() {
              this.setLayout(new GridLayout());
              add(btnShow);
              add(lblMem);
              updateTimer.scheduleAtFixedRate(new UpdateTimerTask(), 1000, 1000);
              btnShow.addActionListener(new ActionListener() {
                   @Override
                   public void actionPerformed(ActionEvent e) {
                        FrmReferrals fr = new FrmReferrals();
                        fr.setVisible(true);
         class UpdateTimerTask extends TimerTask {
              public void run() {
                   SwingUtilities.invokeLater(new Runnable() {
                        @Override
                        public void run() {
                             dumpMemoryUsage();
         protected void dumpMemoryUsage() {
              System.gc();
              Long t = Runtime.getRuntime().totalMemory();
              long f = Runtime.getRuntime().freeMemory();
              String st = convertToStringRepresentation(t);
              String sf = convertToStringRepresentation(f);
              String su = convertToStringRepresentation(t - f);
              System.out.println("Total:" + st + "(" + t + ") Free:" + sf + "(" + f + ") Used:" + su + "(" + (t - f) + ")");
              lblMem.setText(su + "/" + st);
         public static String convertToStringRepresentation(final long value) {
              final long[] dividers = new long[]{T, G, M, K, 1};
              final String[] units = new String[]{"TB", "GB", "MB", "KB", "B"};
              if (value < 1)
                   throw new IllegalArgumentException("Invalid file size: " + value);
              String result = null;
              for (int i = 0; i < dividers.length; i++) {
                   final long divider = dividers;
                   if (value >= divider) {
                        final double dr = divider > 1 ? (double) value / (double) divider : (double) value;
                        result = df.format(dr) + units[i];
                        break;
              return result;
         private static void createAndShowGUI() {
              JFrame frame = new JFrame("SimpleTableDemo");
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              // Create and set up the content pane.
              TriState newContentPane = new TriState();
              newContentPane.setOpaque(true); // content panes must be opaque
              frame.setContentPane(newContentPane);
              // Display the window.
              frame.pack();
              frame.setVisible(true);
         public static void main(String[] args) {
              javax.swing.SwingUtilities.invokeLater(new Runnable() {
                   public void run() {
                        createAndShowGUI();
         protected class PopupMenu extends JPopupMenu {
              public PopupMenu() {
                   JRadioButtonMenuItem item1 = new JRadioButtonMenuItem(new AbstractAction("Insert Item") {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                             System.out.println(e.getActionCommand());
                   item1.setActionCommand("Insert");
                   add(item1);
                   JRadioButtonMenuItem item2 = new JRadioButtonMenuItem(new AbstractAction("Delete Item") {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                             System.out.println(e.getActionCommand());
                   item2.setActionCommand("Delete");
                   add(item2);
         public class FrmReferrals extends JFrame {
              public FrmReferrals() {
                   super();
                   init();
              protected void init() {
                   jbInit();
              protected void closeIt() {
                   uninit();
              // variables here
              protected Dimension          dimPreferred     = new Dimension(1270, 995);
              protected JTabbedPane     tabbedPane          = new JTabbedPane();
              protected JTable          tblReferrals     = null;
              protected PopupMenu          popMenu           = new PopupMenu();
              protected void jbInit() {
                   setPreferredSize(dimPreferred);
                   setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                   setTitle("Referrals");
                   JPanel pnl = new JPanel();
                   pnl.setOpaque(false);
                   pnl.setLayout(new BorderLayout());
                   pnl.add(tabbedPane, BorderLayout.CENTER);
                   // put it all in the frame
                   add(pnl);
                   pack();
                   setLocationRelativeTo(null);
                   // init the table and model
                   ReferralsTableModel ctm = new ReferralsTableModel(buildDummyVector());
                   tblReferrals = new JTable(ctm);
                   tblReferrals.setComponentPopupMenu(popMenu);
                   tblReferrals.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
                   tabbedPane.add(new JScrollPane(tblReferrals, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED));
                   addWindowListener(new WindowListener() {
                        @Override
                        public void windowActivated(WindowEvent e) {}
                        @Override
                        public void windowClosed(WindowEvent e) {}
                        @Override
                        public void windowClosing(WindowEvent e) {
                             closeIt();
                        @Override
                        public void windowDeactivated(WindowEvent e) {}
                        @Override
                        public void windowDeiconified(WindowEvent e) {}
                        @Override
                        public void windowIconified(WindowEvent e) {}
                        @Override
                        public void windowOpened(WindowEvent e) {}
              protected Vector<DBO_Referrals> buildDummyVector() {
                   Vector<DBO_Referrals> vr = new Vector<DBO_Referrals>();
                   for (int x = 0; x < 5000; x++) {
                        DBO_Referrals r = new DBO_Referrals(x+(5000*ctr));
                        vr.add(r);
                   return vr;
              protected void uninit() {
                   tblReferrals.setComponentPopupMenu(null);
                   for (Component c : popMenu.getComponents()) {
                        PropertyChangeListener[] pl = c.getPropertyChangeListeners();
                        for (PropertyChangeListener l : pl)
                             c.removePropertyChangeListener(l);
                        if (c instanceof JMenuItem) {
                             ActionListener [] al = ((JMenuItem)c).getActionListeners();
                             for (ActionListener l : al) {
                                  ((JMenuItem)c).removeActionListener(l);
                   popMenu = null;
              protected class DBO_Referrals {
                   protected long          id;
                   protected String     Employee;
                   protected String     Rep;
                   protected String     Asst;
                   protected String     Client;
                   protected String     Dates;
                   protected String     Status;
                   protected String     Home;
                   public DBO_Referrals(long id) {
                        this.id = id;
                        Employee = "Employee" + id;
                        Rep = "Rep" + id;
                        Asst = "Asst" + id;
                        Client = "Client" + id;
                        Dates = "Dates" + id;
                        Status = "Status" + id;
                        Home = "Home" + id;
                   public long getId() {
                        return id;
                   public String getEmployee() {
                        return Employee;
                   public String getRep() {
                        return Rep;
                   public String getAsst() {
                        return Asst;
                   public String getClient() {
                        return Client;
                   public String getDates() {
                        return Dates;
                   public String getStatus() {
                        return Status;
                   public String getHome() {
                        return Home;
              public class ReferralsTableModel extends AbstractTableModel {
                   protected Vector<DBO_Referrals>          data          = new Vector<DBO_Referrals>();
                   protected String[]                         sColumns     = {"id", "Employee", "Rep", "Assistant", "Client", "Date", "Status", "Home", "R"};
                   public ReferralsTableModel() {
                        super();
                   public ReferralsTableModel(Vector<DBO_Referrals> data) {
                        this();
                        this.data = data;
                   @SuppressWarnings("unchecked")
                   @Override
                   public Class getColumnClass(int col) {
                        switch (col) {
                             case 0 :
                                  return Long.class;
                             default :
                                  return String.class;
                   @Override
                   public int getColumnCount() {
                        return sColumns.length;
                   @Override
                   public int getRowCount() {
                        return data.size();
                   @Override
                   public Object getValueAt(int row, int col) {
                        if (row > data.size())
                             return null;
                        DBO_Referrals a = data.get(row);
                        switch (col) {
                             case 0 :
                                  return a.getId();
                             case 1 :
                                  return a.getEmployee();
                             case 2 :
                                  return a.getRep();
                             case 3 :
                                  return a.getAsst();
                             case 4 :
                                  return a.getClient();
                             case 5 :
                                  return a.getDates();
                             case 6 :
                                  return a.getStatus();
                             case 7 :
                                  return a.getHome();
                             case 8 :
                                  return "+";
                             default :
                                  return null;

    BTW instead of continually printing out the memory use a profiler (jvisualvm in the jdk/bin directory -> heapdump -> search on your class -> view in instances -> find nearest GC root).
    Looks like BasicPopupMenuUI doesn't remove a reference to the JRootPane immediately. As far as I can see it will be removed when another menu shows.
    As a hackish workaround you can try this in you FrmReferrals#uninit():
                for(ChangeListener listener : MenuSelectionManager.defaultManager().getChangeListeners()) {
                    if (listener.getClass().getName().contains("MenuKeyboardHelper")) {
                        try {
                            Field field = listener.getClass().getDeclaredField("menuInputMap");
                            field.setAccessible(true);
                            field.set(listener, null);
                        } catch (Exception e) {
                            // ignored
                        break;
                }Funnily enough though it isn't there when I reduce your code to a SSCCE:
    import java.awt.*;
    import javax.swing.*;
    public class TestBasicPopupMenuUILeak extends JFrame {
        public TestBasicPopupMenuUILeak() {
            super("Not collected right away");
        public static void main(String[] args) {
            EventQueue.invokeLater(new Runnable() {
                public void run() {
                    JFrame frame = new JFrame("Test");
                    frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                    frame.getContentPane().add(
                            new JButton(new AbstractAction("Show frame") {
                                @Override
                                public void actionPerformed(ActionEvent e) {
                                    EventQueue.invokeLater(new Runnable() {
                                        public void run() {
                                            JLabel label = new JLabel(
    "Right click to show popup, then close this frame."
    + "The frame with not be GCed until another (popup) menu is shown.");
                                            JPopupMenu popup = new JPopupMenu(
                                                    "Popup");
                                            popup.add("Item");
                                            label.setComponentPopupMenu(popup);
                                            // named differently so you can find it
                                            // easily in your favorite profiler
                                            JFrame frame = new TestBasicPopupMenuUILeak();
                                            frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
                                            frame.getContentPane().add(label);
                                            frame.pack();
                                            frame.setLocationRelativeTo(null);
                                            frame.setVisible(true);
                    frame.pack();
                    frame.setLocationRelativeTo(null);
                    frame.setVisible(true);
    }

  • Kernel Panic due to memory leak?

    Hello All
    I have recently been noticing an issue where while playing music through iTunes my computer freezes and the music begins to skip forcing me to power down by holding in the power button. I have read most topics on this, however none address a memory leak in the 'iChat Agent.'
    My machine has 4GB of memory (dual 1.8GHz G5, PPC) and have never had this issue before. I am not sure if it is caused by iTunes or if it is just happens to be when listening to music. I have begun to look around and I have noticed that my memory shoots up after 1-2 days of the computer being on. This is due to the iChat Agent... it takes up about 2GB of RAM. Is this normal?
    It has happened 3 times now in the past 2 weeks. Any suggestions?

    well... the first time i got the kernel panic. it was text overlay on my screensaver that was running. The second time the computer just froze. I wonder though if the kernel panic would have eventually happened.
    i keep noticing now that this iChat Agent slowly creeps up during the day to about 2GB Real Memory and 2.4 Virtual Memory. is this normal or causing the freeze??

  • LIBTUX_CAT:541 + Memory Leaks

    Hi
    Tuxedo 11g (11.1.1.2.0) / Windows 2008 R2
    We have a number of third party supplied tuxedo servers which when the BBL kills and restarts them the following is noted in the ULOG.
    BBL.1168.8884.0: LIBTUX_CAT:541: WARN: Server ThirdParty_Grp/630 terminated
    I understand that this warning is given when the code exited a process without calling any Tuxedo exit routines.
    The memory on these same tuxedo servers grow quite large throughout the day and I was wondering if the poor practice of not calling Tuxedo exit routines are the root cause of the memory leaks.
    If so, what evidence/proof/test is there that we can use to ask the third party to correct the code?
    Thanks
    Edited by: cool.br33ze on 20-Mar-2013 04:43

    Hi,
    you can definitely search for one specific ATMI call, see
    http://docs.oracle.com/cd/E18050_01/tuxedo/docs11gr1/rf5/rf5.html#wp1529614
    for details regarding TMTRACE where there's an example of logging all calls to tpacall().
    As I'm not The Universal Master Of All RegExps I don't really know whether you can catch several different calls in the search expression.
    On another note, I'd try looking into the processing time of your services. I'd say it's more probable that you have a performance problem in general rather than a major bug in the services (if they never call tpreturn() not much work will be done at all...).
    What is the value for SVCTIMEOUT (that is trespassed every now and then)?
    If you can add a "-r" in CLOPT you'll get statistics from all services executed in that particular server written to the stderr file (that might be specified with the -e option).
    Using txrpt you can then get insight into the execution times for the services in question. If they are constantly near the SVCTIMEOUT you may need to adjust the SVCTIMEOUT. If they are varying very much you may need to check for locks in the database or other reasons for "spiky" behaviour.
    See
    http://docs.oracle.com/cd/E18050_01/tuxedo/docs11gr1/rf5/rf5.html#wp1003290
    for more info on what can be done in CLOPT in the ubbconfig (look for -r and -e options), and also
    http://docs.oracle.com/cd/E18050_01/tuxedo/docs11gr1/rfcm/rfcmd.html#wp1002357
    for more info on how to interpret the statistics that -r creates.
    It is fairly common to create own-written utilities for interpreting the stderr file, it's not really rocket science if you want to get for instance min and max values out of it, which, by the way, would make a nice enhancement to txrpt in the first place. Product Management: are you listening? :-)
    Hope this helps,
    /Per

  • JMF memory leak

    Hello,
    I made player with playlist and when it runs it is using more an more memory. I think there is some memory leak. I am using java 6.
    This is my code:
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.Rectangle;
    import java.io.IOException;
    import java.util.Vector;
    import javax.media.CachingControl;
    import javax.media.CachingControlEvent;
    import javax.media.Controller;
    import javax.media.ControllerClosedEvent;
    import javax.media.ControllerErrorEvent;
    import javax.media.ControllerEvent;
    import javax.media.ControllerListener;
    import javax.media.EndOfMediaEvent;
    import javax.media.Manager;
    import javax.media.MediaLocator;
    import javax.media.NoPlayerException;
    import javax.media.Player;
    import javax.media.RealizeCompleteEvent;
    import javax.swing.JPanel;
    public class EMGPlayer {
         private static Player player;
         private static int st = 0;
         private static Vector<String> v_filePaths = new Vector<String>();
         public EMGPlayer(JPanel p, Rectangle rec, Vector<String> v_filePaths, boolean autoStart) {
              this.v_filePaths = v_filePaths;
              init(p, rec, autoStart);
         public EMGPlayer(JPanel p, Rectangle rec, String  filePath, boolean autoStart) {     
              this.v_filePaths.addElement(filePath);
              init(p, rec, autoStart);
         public void setVisible(boolean visible) {
              if (player.getState() > player.Realized) {
                   if (player.getVisualComponent() != null) {
                        player.getVisualComponent().setVisible(visible);
         public static void init(JPanel p, Rectangle rec, boolean autoStart) {
              try {
                   if (st == v_filePaths.size()) {
                        st = 0;
                   MediaLocator mrl = new MediaLocator(v_filePaths.elementAt(st));
                   st++;
                   player = Manager.createPlayer(mrl);
                   //********gc call*************
                   System.gc();
                   System.gc();
                   System.gc();
                   player.addControllerListener(new Listener(player, p, rec));
                   player.realize();
                   if (autoStart) {
                        player.start();
              } catch (NoPlayerException e) {
                   e.printStackTrace();
              } catch (IOException e) {
                   e.printStackTrace();
         public static void stop() {
              player.stop();
         public static void start() {
              player.start();
    class Listener implements ControllerListener {
         private static Player player;
         private static JPanel panel;
         private Component visualComponent = null;
         private Component controlComponent = null;
         private int controlPanelHeight = 0;
         private int videoWidth = 0;
         private int videoHeight = 0;
         private static Rectangle rectangle;
         public Listener(Player player, JPanel panel, Rectangle rectangle) {
              this.player = player;
              this.panel = panel;
              this.rectangle = rectangle;
         public synchronized void controllerUpdate(ControllerEvent event) {
              if (player == null)
                   return;
              if (event instanceof RealizeCompleteEvent) {
                   int width = 320;
                   int height = 0;
                   if (controlComponent == null)
                        if ((controlComponent = player.getControlPanelComponent()) != null) {
                             controlPanelHeight = controlComponent.getPreferredSize().height;
                             // panel.add(controlComponent);
                             height += controlPanelHeight;
                   if (visualComponent == null)
                        if ((visualComponent = player.getVisualComponent()) != null) {
                             panel.add(visualComponent);
                             Dimension videoSize = visualComponent.getPreferredSize();
                             videoWidth = videoSize.width;
                             videoHeight = videoSize.height;
                             width = videoWidth;
                             height += videoHeight;
                             visualComponent.setBounds(rectangle);
                   if (controlComponent != null) {
                        controlComponent.setBounds(0, videoHeight, width, controlPanelHeight);
                        controlComponent.invalidate();
              } else if (event instanceof CachingControlEvent) {
                   if (player.getState() > Controller.Realizing)
                        return;
                   CachingControlEvent e = (CachingControlEvent) event;
                   CachingControl cc = e.getCachingControl();
              } else if (event instanceof EndOfMediaEvent) {
                   EMGPlayer.init(panel, rectangle, true);
              } else if (event instanceof ControllerErrorEvent) {
                   player = null;
                   Fatal(((ControllerErrorEvent) event).getMessage());
              } else if (event instanceof ControllerClosedEvent) {
                   panel.removeAll();
         void Fatal(String s) {
              System.err.println("FATAL ERROR: " + s);          
              throw new Error(s);
    }

    I found bug. This code works OK.
    import java.awt.Component;
    import java.awt.Dimension;
    import java.awt.Rectangle;
    import java.io.IOException;
    import java.util.Vector;
    import javax.media.CachingControl;
    import javax.media.CachingControlEvent;
    import javax.media.CannotRealizeException;
    import javax.media.Controller;
    import javax.media.ControllerClosedEvent;
    import javax.media.ControllerErrorEvent;
    import javax.media.ControllerEvent;
    import javax.media.ControllerListener;
    import javax.media.EndOfMediaEvent;
    import javax.media.Manager;
    import javax.media.MediaLocator;
    import javax.media.NoPlayerException;
    import javax.media.Player;
    import javax.media.RealizeCompleteEvent;
    import javax.swing.JPanel;
    public class EMGPlayer {
         private static Player player;
         private static int st = 0;
         private static Vector<String> v_filePaths = new Vector<String>();
         public EMGPlayer(JPanel p, Rectangle rec, Vector<String> v_filePaths, boolean autoStart) {
              this.v_filePaths = v_filePaths;
              init(p, rec, autoStart);
         public EMGPlayer(JPanel p, Rectangle rec, String  filePath, boolean autoStart) {     
              this.v_filePaths.addElement(filePath);
              init(p, rec, autoStart);
         public void setVisible(boolean visible) {
              if (player.getState() > player.Realized) {
                   if (player.getVisualComponent() != null) {
                        player.getVisualComponent().setVisible(visible);
         public static void init(JPanel p, Rectangle rec, boolean autoStart) {
              try {
                   if (st == v_filePaths.size()) {
                        st = 0;
                   MediaLocator mrl = new MediaLocator(v_filePaths.elementAt(st));
                   st++;
                   try {
                        player = Manager.createRealizedPlayer(mrl);
                   } catch (CannotRealizeException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                   //********gc call*************
                   System.gc();
                   System.gc();
                   System.gc();
                   player.addControllerListener(new Listener(player, p, rec));
                   player.realize();
                   if (autoStart) {
                        player.start();
              } catch (NoPlayerException e) {
                   e.printStackTrace();
              } catch (IOException e) {
                   e.printStackTrace();
         public static void stop() {
              player.stop();
         public static void start() {
              player.start();
    class Listener implements ControllerListener {
         private static Player player;
         private static JPanel panel;
         private Component visualComponent = null;
         private Component controlComponent = null;
         private int controlPanelHeight = 0;
         private int videoWidth = 0;
         private int videoHeight = 0;
         private static Rectangle rectangle;
         public Listener(Player player, JPanel panel, Rectangle rectangle) {
              this.player = player;
              this.panel = panel;
              this.rectangle = rectangle;
         public synchronized void controllerUpdate(ControllerEvent event) {
              if (player == null)
                   return;
              if (event instanceof RealizeCompleteEvent) {
                   int width = 320;
                   int height = 0;
                   if (controlComponent == null)
                        if ((controlComponent = player.getControlPanelComponent()) != null) {
                             controlPanelHeight = controlComponent.getPreferredSize().height;
                             // panel.add(controlComponent);
                             height += controlPanelHeight;
                   if (visualComponent == null)
                        if ((visualComponent = player.getVisualComponent()) != null) {
                             panel.add(visualComponent);
                             Dimension videoSize = visualComponent.getPreferredSize();
                             videoWidth = videoSize.width;
                             videoHeight = videoSize.height;
                             width = videoWidth;
                             height += videoHeight;
                             visualComponent.setBounds(rectangle);
                   if (controlComponent != null) {
                        controlComponent.setBounds(0, videoHeight, width, controlPanelHeight);
                        controlComponent.invalidate();
              } else if (event instanceof CachingControlEvent) {
                   if (player.getState() > Controller.Realizing)
                        return;
                   CachingControlEvent e = (CachingControlEvent) event;
                   CachingControl cc = e.getCachingControl();
              } else if (event instanceof EndOfMediaEvent) {
                   player.stop();
                   player.close();
                   player = null;
                   EMGPlayer.init(panel, rectangle, true);
              } else if (event instanceof ControllerErrorEvent) {
                   player.stop();
                   player.close();
                   player = null;
                   Fatal(((ControllerErrorEvent) event).getMessage());
              } else if (event instanceof ControllerClosedEvent) {
                   panel.removeAll();
         void Fatal(String s) {
              System.err.println("FATAL ERROR: " + s);          
              throw new Error(s);
    }

  • TCP Memory Leak?

    I have a relatively simple TCP server (attached).  When connected from a localhost client, the server runs without expanding memory, however, when connected from a network client the memory usage of the server expands rapidly.
    Two instances of this server VI are opened dynamically and run from the main VI of the application, each with a separate listening port as the input.
    This VI has been built using LabVIEW 8.2.1.  No memory issues arise if no client is connected.
    What am I missing?
    Solved!
    Go to Solution.
    Attachments:
    OperatorDataServer.vi ‏51 KB

    The easiest way to fix a TCP memory leak is to use wire nuts on the ends of the reference and error cluster, see the image below.  Make sure to use the correct gauge or you may not fully resolve the leak.
    Message Edited by jmcbee on 04-01-2009 11:34 AM
    Message Edited by jmcbee on 04-01-2009 11:44 AM
    CLA, CLED, CTD,CPI, LabVIEW Champion
    Platinum Alliance Partner
    Senior Engineer
    Using LV 2013, 2012
    Don't forget Kudos for Good Answers, and Mark a solution if your problem is solved.
    Attachments:
    TCP Memory Leak.PNG ‏2 KB

  • How to determine memory leaks?

    I tried in XCODE, the RUN/ Start with Performance TOol / and tried out the various options. I was running my app and looking to see if it would report increasing memory use but it seemed to be looking at my total system (i was running under the simulator). In general what is the recommended procedure for determining memory leaks, which tool to use, and what tracing can i use?
    How does one look at the retain count of an object? are there system routines that have knonw leaks?

    You took the right path. Once instruments comes up select the Leaks tool. Turn off automatic leak detection. In your app, start off at some known state, do something, and come back to the known state and check for leaks. For instance start off in a view, do something that brings up another view then come back to the original view and check for leaks. Leaks will show you if you leaked. Since you took a very deterministic path then checked it should be straight forward to go to the code and find / fix the leaks. Leaks shows you where the code where the leak was generated.

  • Memory Leaks   Unresponsive Mouse

    2009 8 core Mac Pro w/ 24 GB of RAM, ATI Radeon 4870, and a SeriTek PCIe eSATA card (card only has drives connected when running a manual drive clone).  When running Toast 10 or Parallels 9, my RAM will fill up (I use a program called Menu Meters to monitor stuff).  This machine worked just fine under OS 10.9 and earlier - no issues like this at all.  ClamXAV will also completely fill the RAM up (the meter will be full green, instead of part green, then mostly grey when Toast or Parallels fills it up).  I have to use Terminal to purge it so that the machine is usable.
    The other thing that happens is that sometimes when the computer wakes up or I am in the middle of doing something, the mouse will still move, but the dock will not pop open and the left button the mouse doesn't respond.  The right button will open the right click menu, but will not respond normally at all.  I have tried a different Magic Mouse, but the problem is the same.
    I thought that it may be a problem with the factory RAM and the Kingston RAM not playing nicely together.  So I ran it with just the factory 8 GB and then ran it with the Kingston 16 GB - the problem persists no matter which RAM is installed.  All of the RAM also passes the memory tests in Rember and TechTool.
    So, I need to find out if someone thinks that maybe the bluetooth module may be going bad causing the mouse issues.  I also need to find out what is causing the memory leaks.  I followed the steps that someone gave on this site to boot into safe mode, repair permissions, reset PRAM, then reset SMC (or the other way around - I did it like they said to).  It did nothing to fix the problem.
    I need some guidance here.  As I stated early on, the machine worked perfectly with OS 10.9.  I have WAY too much software that I use, so doing a completely fresh install is out of the question - I don't have time to reload everything.  This problem is annoying and I know that I am not the only one having these issues.  Any input will be greatly appreciated.  Thanks in advance.

    Here is the EtreCheck report:
    Problem description:
    Memory leaks when using Toast 10 or Parallels 9.  Mouse also become unresponsive (it will move, but left button does not work and dock will not pop open - mouse problem happens independent of the RAM being filled up - different mouse was tried with same result).
    EtreCheck version: 2.1.5 (108)
    Report generated January 9, 2015 at 9:20:59 PM MST
    Click the [Support] links for help with non-Apple products.
    Click the [Details] links for more information about that line.
    Click the [Adware] links for help removing adware.
    Hardware Information: ℹ️
        Mac Pro (Early 2009) (Verified)
        Mac Pro - model: MacPro4,1
        2 2.26 GHz Quad-Core Intel Xeon CPU: 8-core
        24 GB RAM Upgradeable
            DIMM 1
                4 GB DDR3 ECC 1066 MHz ok
            DIMM 2
                4 GB DDR3 ECC 1066 MHz ok
            DIMM 3
                2 GB DDR3 ECC 1066 MHz ok
            DIMM 4
                2 GB DDR3 ECC 1066 MHz ok
            DIMM 5
                4 GB DDR3 ECC 1066 MHz ok
            DIMM 6
                4 GB DDR3 ECC 1066 MHz ok
            DIMM 7
                2 GB DDR3 ECC 1066 MHz ok
            DIMM 8
                2 GB DDR3 ECC 1066 MHz ok
        Bluetooth: Old - Handoff/Airdrop2 not supported
        Wireless:  en2: 802.11 a/b/g/n
    Video Information: ℹ️
        ATI Radeon HD 4870 - VRAM: 512 MB
            AL2216W 1680 x 1050 @ 60 Hz
    System Software: ℹ️
        OS X 10.10.1 (14B25) - Uptime: 2:4:35
    Disk Information: ℹ️
        HL-DT-ST BD-RE  WH12LS39 
        HL-DT-ST DVDRAM GH24NS90 
        SAMSUNG HD103SJ disk1 : (1 TB)
            EFI (disk1s1) <not mounted> : 210 MB
            OS 10.10.1 (disk1s2) / : 999.35 GB (410.30 GB free)
            Recovery HD (disk1s3) <not mounted>  [Recovery]: 650 MB
        SAMSUNG HD103SJ disk2 : (1 TB)
            EFI (disk2s1) <not mounted> : 210 MB
            Extra Storage (disk2s2) /Volumes/Extra Storage : 999.86 GB (554.20 GB free)
        SAMSUNG HD103SJ disk3 : (1 TB)
            EFI (disk3s1) <not mounted> : 210 MB
            Extra Storage 2 - Scratch (disk3s2) /Volumes/Extra Storage 2 - Scratch : 999.86 GB (39.54 GB free)
        WDC WD5001AALS-00LWTA0 disk0 : (500.11 GB)
            EFI (disk0s1) <not mounted> : 210 MB
            BOOTCAMP (disk0s2) /Volumes/BOOTCAMP : 499.90 GB (275.71 GB free)
    USB Information: ℹ️
        Shuttle Technology Inc. E-USB Bridge
        Sony C6606
        Apple, Inc. Keyboard Hub
            Apple Inc. Apple Keyboard
        Apple Inc. BRCM2046 Hub
            Apple Inc. Bluetooth USB Host Controller
    Firewire Information: ℹ️
        Apple Computer, Inc. iSight 200mbit - 400mbit max
    Gatekeeper: ℹ️
        Anywhere
    Kernel Extensions: ℹ️
            /Applications/Hotspot Shield.app
        [not loaded]    com.anchorfree.tun (1.0) [Support]
            /Applications/Parallels Desktop.app
        [not loaded]    com.parallels.kext.hidhook (9.0 24251.1052177) [Support]
        [not loaded]    com.parallels.kext.hypervisor (9.0 24251.1052177) [Support]
        [not loaded]    com.parallels.kext.netbridge (9.0 24251.1052177) [Support]
        [not loaded]    com.parallels.kext.usbconnect (9.0 24251.1052177) [Support]
        [not loaded]    com.parallels.kext.vnic (9.0 24251.1052177) [Support]
            /Applications/TechTool Deluxe.app
        [not loaded]    com.micromat.iokit.ttpatadriver (5.0.0) [Support]
        [not loaded]    com.micromat.iokit.ttpfwdriver (5.0.0) [Support]
            /Applications/TechTool Protogo/Protogo Applications/TechTool Pro 7.app
        [not loaded]    com.micromat.driver.spdKernel (1 - SDK 10.8) [Support]
        [not loaded]    com.micromat.driver.spdKernel-10-8 (1 - SDK 10.8) [Support]
            /Applications/Temperature Monitor 4.94/Temperature Monitor 4.94.app
        [not loaded]    com.bresink.driver.BRESINKx86Monitoring (8.0) [Support]
            /Applications/Toast 11 Titanium/Spin Doctor.app
        [not loaded]    com.hzsystems.terminus.driver (4) [Support]
            /Applications/Toast 7 Titanium/Toast Titanium.app
        [not loaded]    com.roxio.TDIXController (1.6) [Support]
            /Library/Extensions
        [loaded]    at.obdev.nke.LittleSnitch (4216 - SDK 10.8) [Support]
            /System/Library/Extensions
        [loaded]    com.SiliconImage.driver.Si3132 (1.2.5) [Support]
        [not loaded]    com.devguru.driver.SamsungComposite (1.2.63 - SDK 10.6) [Support]
        [not loaded]    com.microsoft.driver.MicrosoftMouse (8.2) [Support]
        [not loaded]    com.roxio.BluRaySupport (1.1.6) [Support]
            /System/Library/Extensions/MicrosoftMouse.kext/Contents/PlugIns
        [not loaded]    com.microsoft.driver.MicrosoftMouseBluetooth (8.2) [Support]
        [not loaded]    com.microsoft.driver.MicrosoftMouseUSB (8.2) [Support]
            /System/Library/Extensions/ssuddrv.kext/Contents/PlugIns
        [not loaded]    com.devguru.driver.SamsungACMControl (1.2.63 - SDK 10.6) [Support]
        [not loaded]    com.devguru.driver.SamsungACMData (1.2.63 - SDK 10.6) [Support]
        [not loaded]    com.devguru.driver.SamsungMTP (1.2.63 - SDK 10.5) [Support]
        [not loaded]    com.devguru.driver.SamsungSerial (1.2.63 - SDK 10.6) [Support]
    Startup Items: ℹ️
        HP IO: Path: /Library/StartupItems/HP IO
        SiCoreService: Path: /Library/StartupItems/SiCoreService
        Startup items are obsolete in OS X Yosemite
    Launch Agents: ℹ️
        [running]    at.obdev.LittleSnitchUIAgent.plist [Support]
        [loaded]    com.coupons.coupond.plist [Support]
        [running]    com.micromat.TechToolProAgent.plist [Support]
        [loaded]    com.oracle.java.Java-Updater.plist [Support]
        [invalid?]    com.parallels.mobile.prl_deskctl_agent.launchagent.plist [Support]
        [invalid?]    com.parallels.mobile.startgui.launchagent.plist [Support]
        [not loaded]    com.teamviewer.teamviewer.plist [Support]
        [not loaded]    com.teamviewer.teamviewer_desktop.plist [Support]
    Launch Daemons: ℹ️
        [running]    at.obdev.littlesnitchd.plist [Support]
        [loaded]    com.adobe.fpsaud.plist [Support]
        [loaded]    com.bombich.ccc.plist [Support]
        [loaded]    com.hp.lightscribe.plist [Support]
        [running]    com.micromat.TechToolProDaemon.plist [Support]
        [loaded]    com.microsoft.office.licensing.helper.plist [Support]
        [loaded]    com.oracle.java.Helper-Tool.plist [Support]
        [invalid?]    com.parallels.mobile.dispatcher.launchdaemon.plist [Support]
        [failed]    com.parallels.mobile.kextloader.launchdaemon.plist [Support] [Details]
        [not loaded]    com.teamviewer.teamviewer_service.plist [Support]
    User Launch Agents: ℹ️
        [loaded]    com.facebook.videochat.[redacted].plist [Support]
        [loaded]    com.google.keystone.agent.plist [Support]
        [running]    com.nchsoftware.expressinvoice.agent.plist [Support]
        [loaded]    uk.co.markallan.clamxav.clamscan.plist [Support]
        [loaded]    uk.co.markallan.clamxav.freshclam.plist [Support]
    User Login Items: ℹ️
        iTunesHelper    Application (/Applications/iTunes.app/Contents/MacOS/iTunesHelper.app)
        SMARTReporter    Application (/Applications/SMARTReporter/SMARTReporter.app)
        BetterSnapTool    Application (/Applications/BetterSnapTool.app)
        smcFanControl    Application (/Applications/smcfancontrol_2_2_2/smcFanControl.app)
        Android File Transfer Agent    Application (/Users/[redacted]/Library/Application Support/Google/Android File Transfer/Android File Transfer Agent.app)
    Internet Plug-ins: ℹ️
        JavaAppletPlugin: Version: Java 8 Update 25 Check version
        FlashPlayer-10.6: Version: 16.0.0.235 - SDK 10.6 [Support]
        Default Browser: Version: 600 - SDK 10.10
        AdobePDFViewerNPAPI: Version: 11.0.06 - SDK 10.6 [Support]
        CouponPrinter-FireFox_v2: Version: 5.0.3 - SDK 10.6 [Support]
        AdobePDFViewer: Version: 11.0.06 - SDK 10.6 [Support]
        Flash Player: Version: 16.0.0.235 - SDK 10.6 [Support]
        QuickTime Plugin: Version: 7.7.3
        SharePointBrowserPlugin: Version: 14.4.6 - SDK 10.6 [Support]
        iPhotoPhotocast: Version: 7.0 - SDK 10.8
    Safari Extensions: ℹ️
        AdBlock [Installed]
        F.B. Purity - Cleans Up Facebook [Installed]
        OpenIE [Installed]
    3rd Party Preference Panes: ℹ️
        Déjà Vu  [Support]
        Flash Player  [Support]
        FUSE for OS X (OSXFUSE)  [Support]
        Java  [Support]
        MacFUSE  [Support]
        MenuMeters  [Support]
        Microsoft Mouse  [Support]
        MouseLocator  [Support]
        NTFS-3G  [Support]
        TechTool Protection  [Support]
    Time Machine: ℹ️
        Time Machine not configured!
    Top Processes by CPU: ℹ️
            48%    plugin-container
            39%    fontd
             6%    firefox
             5%    WindowServer
             4%    bluetoothaudiod
    Top Processes by Memory: ℹ️
        928 MB    firefox
        412 MB    plugin-container
        258 MB    mds_stores
        180 MB    iTunes
        129 MB    Finder
    Virtual Memory Information: ℹ️
        19.38 GB    Free RAM
        3.11 GB    Active RAM
        1.88 GB    Inactive RAM
        1.38 GB    Wired RAM
        2.40 GB    Page-ins
        0 B    Page-outs
    Diagnostics Information: ℹ️
        Jan 9, 2015, 07:16:57 PM    Self test - passed
        Jan 8, 2015, 11:37:48 AM    /Library/Logs/DiagnosticReports/ClamXav_2015-01-08-113748_[redacted].cpu_resour ce.diag [Details]
        Jan 8, 2015, 11:21:46 AM    /Users/[redacted]/Library/Logs/DiagnosticReports/Preview_2015-01-08-112146_[red acted].crash

  • T61 with memory leak on XP for driver battc.sys

    Hi
    I have an issue with XP where the battc.sys module that is part of Windows XP and responsible for the kernel side of monitoring the battery status. This module continually leaks memory until I have no more kernel paged resources left and programs start to fail on my laptop.
    I raised a support case for this with Microsoft and after some investigation and upgrading to the latest T61 power drivers that were released a few days ago on the Lenovo site, MS support told me it is a fault of the T61 and that I would need to disable Microsoft APCI support to stop this memory leak from occuring and to take the issue up with Lenovo.
    I have used the verifier tool to confirm that it is the Windows XP SP3 battc.sys memory module leaking.
    I am running the latest T61 drivers and fully patch with MS drivers on SP3.
    As MS have told me it is the fault of the T61 I am posting this issue here.
    Thanks
    Stephen

    It is memory available to the kernelwhich itself does not show under a process in task manager as far as I am aware (unles it is taken account as part of the system process).
    The best way to measure the available kernel memory space available is by using sysinternals procexp.
    You need to download procexp and also install the windows debugging tools from Microsoft. Then in procexp set the "Options > Configure Symbols : Debughlp.dll path" to the new debughlp.dll installed with your debu tools and set the symbols path to srv*c:\Symbols*http://msdl.microsoft.com/download/symbols
    Then you can choose in procexp "View > System Information" and see the used and total paged and non-paged kernel memory space.
    poolmon helps monitor all the symbols that are taking up this memory and verifier lets you drill down to the exact module and the changes in memory for a module that is occuring.
    Here are two really good links on it
    http://blogs.msdn.com/ntdebugging/archive/2006/12/18/Understanding-Pool-Consumption-and-Event-ID_3A0...
    http://blogs.msdn.com/ntdebugging/archive/2008/05/08/tracking-down-mmst-paged-pool-usage.aspx
    In my poolmon i notice that Mmst and battc are taking alot of memory after my computer has been running for some time. Mmst being high is normal but battc should not continually be growing as it is which is why I raised the case to MS but they want verification it is not a Lenovo issue.

Maybe you are looking for

  • Java Stored Procedure calling HTTP Servlet in Weblogic

    I am currently working on an e-commerce application for a brick-n-mortar electronics store. The store currently has an Oracle database that contains all of the products the store sells. The e-commerce site will have a separate Oracle database. Both d

  • Adding video to iTunes but keeping it in a folder when iTunes organizes your folder automaticly

    Hi, I've recently added a video to my iTunes librariry (on Windows 7) so that I can view it through my AppleTV, I was able to add it to the library and change it's type from Movie to TV Show but when I look at the folder structure, it puts it to the

  • WM- Production order GRN issue

    Hi WM Gurus                 i done goods isuue (261 movement type) TR, TO .After production completed i want to GRN..                i want to move the goods from storage type from 100 storage type to 916 storage type.                process is GRN f

  • One time service's service order

    Dear All, One time service order's service is giving error msg that " enter all mandatory fields and asking for service code" Actually we have configured that in 1 time service's service order , SO wont ask for service code and it will work without m

  • Writing to a custom developer's trace file

    Is it possible to create a custom dev trace file and write to it from a custom abap program?  We've developed a custom ABAP program and we'd like to write errors to a custom dev trace file that can be monitored in ST11.  I know we can write to the SL