YourKit Java Profiler 6.0.16

Hi here is my problem, I am using the YourKit Java Profiler.
everytime time I am closing a JInternalFrame what I noticed in this YourKit Profiler is that Allocated Memory is not decreasing when I dispose() the JInternalFrame. What do I need to do so when I dispose() this JInternalFrame the Allocated Memory is free up.
Allocated Memory is only increasing.
Please I need big help on this one.
Wilfer

We have been running 1.6 update 12 without any problems.  We have only encountered problems when we recently updated to update 16. 
For security purposes we are unable to use 1.5 because of some security flaw.

Similar Messages

  • Help Urgent: Java Profiler

    Hi Frds,
    I am preparing a java profiler tool..i've seen a sample java profiler code..observed code with servlets and jsp..i'm new to J2EE..can you please tell me how to initiate it..i've observed few things to prepare own java profiler..
    Hook
    Java Agent
    ASM plugin
    plz..Can any one explain more about it..so that i can start writing code on it..
    thx in advance
    Rajesh.

    It is the project file(.jpx) and it has more than 1000 files in it..and it is completely applet application.. and it is not even showing what operation is unsupported..when i change to JDK1.4 ,it is working fine..the moment i shfted to jdk5.0 and try to rebuild it is giving "java.lang.UnsupportedOperationException" and it is not giving any other info.now..any one plz..help..

  • Java profiler

    Hi;
    I search a java profiler tool free like OPtimiZeit or Jprobe for testing my j2ee application ?
    Regards;

    There are free profilers, but I would suggest using an evaluation license of OptimizeIT and/or Jprofiler or JProbe.
    They will do a better jobs, possible so good, you will solve the problem before the license expires :)

  • Java profiler results.

    Greetings all ---
    I am trying to use the java profiler that comes with the jvm (jdk1.3). Searching the forums, I found the suggestion to run with -Xprof switch. I did that here are my results. Can someone please explain:
    I ran my program with this command
    java -Xprof findLinkThread
    Flat profile of 26.56 secs (2586 total ticks): Keep-Alive-Timer:localhost
    Thread-local ticks:
    100.0% 2586      Blocked (of total)
    Flat profile of 83.34 secs (8077 total ticks): Thread-1
    Thread-local ticks:
    100.0% 8077      Blocked (of total)
    Global summary of 84.84 seconds :
    100.0% 8262      Received ticks
    0.4% 35      Received GC ticks
    0.2% 13     Compilation
    0.0% 2 Other VM operations
    0.8% 66 Class loader
    0.0% 2 Unknown code
    what does this mean ? is it good or bad ?
    can I get the prepackaged profiler to tell me anything useful in terms of what is slowing things down etc /
    stev

    All that those results say to me is that garbage collection and class loading doesn't represent much of a hit for your application. I think you were after something a little more like...$ java -version
    java version "1.3.0"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.0-C)
    Java HotSpot(TM) Client VM (build 1.3.0-C, mixed mode)
    $java -Xrunhprof:help
    Hprof usage: -Xrunhprof[:help]|[<option>=<value>, ...]
    Option Name and Value   Description             Default
    heap=dump|sites|all     heap profiling          all
    cpu=samples|times|old   CPU usage               off
    monitor=y|n             monitor contention      n
    format=a|b              ascii or binary output  a
    file=<file>             write data to file      java.hprof(.txt for ascii)
    net=<host>:<port>       send data over a socket write to file
    depth=<size>            stack trace depth       4
    cutoff=<value>          output cutoff point     0.0001
    lineno=y|n              line number in traces?  y
    thread=y|n              thread in traces?       n
    doe=y|n                 dump on exit?           y
    Example: java -Xrunhprof:cpu=samples,file=log.txt,depth=3 FooClass
    $java -Xrunhprof:cpu=times,file=prof.txt,depth=10 Shuffle
    $cat prof.txt
    CPU TIME (ms) BEGIN (total = 180) Mon Nov 19 11:10:57 2001
    rank   self  accum   count trace method
       1 11.11% 11.11%       5    14 java.util.jar.Attributes.read
       2  5.56% 16.67%       3     9 java.io.PrintStream.write
       3  5.56% 22.22%       1    10 java.util.Properties.load
       4  5.56% 27.78%      30    17 java.io.PrintStream.write
       5  5.56% 33.33%       1     3 java.security.Security.loadProviders
       6  5.56% 38.89%       5    11 java.io.ByteArrayInputStream.<init>
       7  5.56% 44.44%     831     8 java.util.jar.Attributes$Name.isAlpha
       8  5.56% 50.00%       1     2 java.lang.ClassLoader$NativeLibrary.load
       9  5.56% 55.56%       5     7 sun.misc.URLClassPath$JarLoader.getClassPath
      10  5.56% 61.11%     105     5 java.io.BufferedReader.readLine
      11  5.56% 66.67%       1     6 java.io.Win32FileSystem.getBooleanAttributes
      12  5.56% 72.22%      44    12 java.lang.StringBuffer.expandCapacity
      13  5.56% 77.78%     185    16 java.lang.StringBuffer.append
      14  5.56% 83.33%       1    13 java.lang.ClassLoader.checkCerts
      15  5.56% 88.89%       1    18 java.io.FilePermission.<init>
      16  5.56% 94.44%      30     4 java.io.PrintStream.newLine
      17  5.56% 100.00%     210    15 java.io.Win32FileSystem.isSlashFor example, in the above profile, StringBuffer.expandCapacity takes 5% of the running time, so I might want to create my StringBuffers with higher initial capacity.
    BTW- this was running on Windows NT, the runhprof options may be different (or omitted) on other platforms.
    Hope this helps,
    -Troy

  • Java profiler for WLS6 on Solaris.

    Hi,
    Is there any profiler that supports the Sun JDK 1.3.0 on Solaris, as
    OptimizeIt doesn't even start and JProbe hangs when trying to profile
    the server.
    Thanks,
    Deyan
    [dejan_bektchiev.vcf]

    To make it work a little better (but 100 times slower ;-) turn off hotspot
    and jit!!!
    Peace,
    Cameron Purdy
    Tangosol, Inc.
    http://www.tangosol.com
    +1.617.623.5782
    WebLogic Consulting Available
    "Deyan D. Bektchiev" <[email protected]> wrote in message
    news:[email protected]..
    Yes,
    It is more stable than the others -- doesn't crash sometimes for 10minutes
    but it's not enough for me to collect performance data but I am still
    trying so eventually I might be able to gather some.
    I keep getting
    # HotSpot Virtual Machine Error, Unexpected Signal 11
    # Please report this error at
    # http://java.sun.com/cgi-bin/bugreport.cgi
    # Error ID: 4F533F534F4C415249530E435050079A 01
    # Problematic Thread: prio=5 tid=0x2a3328 nid=0x8 runnable
    but since without the profiler settings I do not get the problem I am
    unable to say what happens and the behaviour is not consistent --sometimes
    the JVM crashes at WLS startup sometimes later.
    Thanks,
    Deyan
    Cameron Purdy wrote:
    Have you tried the JDK's profiler?
    Cameron Purdy
    Tangosol, Inc.
    http://www.tangosol.com
    +1.617.623.5782
    WebLogic Consulting Available
    "Deyan D. Bektchiev" <[email protected]> wrote in message
    news:[email protected]..
    Hi,
    Is there any profiler that supports the Sun JDK 1.3.0 on Solaris, as
    OptimizeIt doesn't even start and JProbe hangs when trying to profile
    the server.
    Thanks,
    Deyan

  • Java Profiling

    Hi All,
    I was wondering if anybody knew how profiling works in Java apps. How is the time computed. Is it based on clock cycles per execution or real time consumed during the excution.
    Also should a profiler output be affected by other apps running .
    Thanks

    There are a lot of profilers for Java, and most of them in fact allow you to choose the way in which time is computed (exact or statistical). Other apps would of course interfere, and although a good tool would
    try to factor out some of the interference, it's NOT recommended to run other apps when you do profiling. You never know in what way (e.g. by effectively increasing your app's disk latency, etc.) they may affect your performance.

  • Java profiler for AMD64 on Eclipse

    Does anyone know of a profiler that would work with Eclipse for profiling a 64 bit application on an AMD64 Opteron system?
    Thanks,
    Harsha

    To make it work a little better (but 100 times slower ;-) turn off hotspot
    and jit!!!
    Peace,
    Cameron Purdy
    Tangosol, Inc.
    http://www.tangosol.com
    +1.617.623.5782
    WebLogic Consulting Available
    "Deyan D. Bektchiev" <[email protected]> wrote in message
    news:[email protected]..
    Yes,
    It is more stable than the others -- doesn't crash sometimes for 10minutes
    but it's not enough for me to collect performance data but I am still
    trying so eventually I might be able to gather some.
    I keep getting
    # HotSpot Virtual Machine Error, Unexpected Signal 11
    # Please report this error at
    # http://java.sun.com/cgi-bin/bugreport.cgi
    # Error ID: 4F533F534F4C415249530E435050079A 01
    # Problematic Thread: prio=5 tid=0x2a3328 nid=0x8 runnable
    but since without the profiler settings I do not get the problem I am
    unable to say what happens and the behaviour is not consistent --sometimes
    the JVM crashes at WLS startup sometimes later.
    Thanks,
    Deyan
    Cameron Purdy wrote:
    Have you tried the JDK's profiler?
    Cameron Purdy
    Tangosol, Inc.
    http://www.tangosol.com
    +1.617.623.5782
    WebLogic Consulting Available
    "Deyan D. Bektchiev" <[email protected]> wrote in message
    news:[email protected]..
    Hi,
    Is there any profiler that supports the Sun JDK 1.3.0 on Solaris, as
    OptimizeIt doesn't even start and JProbe hangs when trying to profile
    the server.
    Thanks,
    Deyan

  • Can't install the Java Profiler

    I download the netbeans profiler but for some reason it is not installing properly. It seems to install fine but I do not have profile in the toolbar like I should. I've tried uninstalling and reinstalling several times. Can somebody help me? Thanks

    i forgot to mention my system is XP home with service pack 3(i think) & my comp is a dell deminsion 2400.

  • Java Profiler for RMI Applications

    I am looking for a profiler to monitor the bottlenecks and the memory usage when running my RMI application.
    What would you recommend to use and a comprehensive tool

    Couple of thoughts on scaling:
    1. Change the mx setting to 1200m -- this is the most you can scale a single instance on 32-bit
    2. Use a 64-bit platform you can set memory settings really high (AIX/Solaris)
    3. Multiple servers with planning on it using a load balancer
    Regards,
    John A. Booth
    http://www.metavero.com

  • How to solve :  java.lang.OutOfMemoryError: Java heap space

    Dear all,
    Am using Jdeveloper 11.1.1.3 with weblogic10...
    I keep getting out of memory error while working on the application , here is the exact error message that i copied from the server log :
    ####<28/11/2010 GMT 09:17:58 ص> <Critical> <Health> <javaserver> <AdminServer> <weblogic.GCMonitor> <<anonymous>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-0000000000000012> <1290935878582> <BEA-310003> <Free memory in the server is 4,541,416 bytes. There is danger of OutOfMemoryError>
    ####<28/11/2010 GMT 09:24:51 ص> <Error> <Kernel> <javaserver> <AdminServer> <[ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-0000000000000029> <1290936291218> <BEA-000802> <ExecuteRequest failed
    java.lang.OutOfMemoryError: Java heap space.
    java.lang.OutOfMemoryError: Java heap space
    >
    ####<28/11/2010 GMT 09:25:04 ص> <Notice> <Diagnostics> <javaserver> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002c> <1290936304406> <BEA-320068> <Watch 'UncheckedException' with severity 'Notice' on server 'AdminServer' has triggered at 28/11/2010 GMT 09:24:56 ص. Notification details:
    WatchRuleType: Log
    WatchRule: (SEVERITY = 'Error') AND ((MSGID = 'BEA-101020') OR (MSGID = 'BEA-101017') OR (MSGID = 'BEA-000802'))
    WatchData: DATE = 28/11/2010 GMT 09:24:51 ص SERVER = AdminServer MESSAGE = ExecuteRequest failed
    java.lang.OutOfMemoryError: Java heap space.
    java.lang.OutOfMemoryError: Java heap space
    SUBSYSTEM = Kernel USERID = <WLS Kernel> SEVERITY = Error THREAD = [ACTIVE] ExecuteThread: '0' for queue: 'weblogic.kernel.Default (self-tuning)' MSGID = BEA-000802 MACHINE = javaserver TXID = CONTEXTID = 3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-0000000000000029 TIMESTAMP = 1290936291218
    WatchAlarmType: AutomaticReset
    WatchAlarmResetPeriod: 30000
    >
    ####<28/11/2010 GMT 09:25:36 ص> <Warning> <oracle.dfw.framework> <javaserver> <AdminServer> <[ACTIVE] ExecuteThread: '3' for queue: 'weblogic.kernel.Default (self-tuning)'> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002c> <1290936336549> <DFW-40121> <failure creating incident from WLDF notification
    java.lang.OutOfMemoryError: Java heap space
    >
    ####<28/11/2010 GMT 09:26:32 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936392224> <BEA-000388> <JVM called WLS shutdown hook. The server will force shutdown now>
    ####<28/11/2010 GMT 09:26:35 ص> <Alert> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936395303> <BEA-000396> <Server shutdown has been requested by <WLS Kernel>>
    ####<28/11/2010 GMT 09:26:35 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936395303> <BEA-000365> <Server state changed to FORCE_SUSPENDING>
    ####<28/11/2010 GMT 09:26:53 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936413632> <BEA-000365> <Server state changed to ADMIN>
    ####<28/11/2010 GMT 09:26:56 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-1> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936416757> <BEA-000365> <Server state changed to FORCE_SHUTTING_DOWN>
    ####<28/11/2010 GMT 09:26:59 ص> <Notice> <Server> <javaserver> <AdminServer> <DynamicListenThread[Default[1]]> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-0000000000000035> <1290936419289> <BEA-002607> <Channel "Default[1]" listening on 127.0.0.1:7001 was shutdown.>
    ####<28/11/2010 GMT 09:27:07 ص> <Notice> <WebLogicServer> <javaserver> <AdminServer> <Thread-41> <<WLS Kernel>> <> <3e9ac2aaa3059905:3bfb8868:12c91bef422:-8000-000000000000002f> <1290936427508> <BEA-000378> <Server failed to shutdown within the configured timeout of 30 seconds. The server process will exit now.>
    i searched the net and it seems that i should increase the java heap size , how can i do that... I have a server with 4G Ram ..
    Regards,
    Lama
    Edited by: Delta on Nov 28, 2010 1:36 AM

    My frien google tells me that you use
    >
    Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    This can have two reasons:
    * Your Java application has a memory leak. There are tools like YourKit Java Profiler that help you to identify such leaks.
    * Your Java application really needs a lot of memory (more than 128 MB by default!). In this case the Java heap size can be increased using the following runtime parameters:
    java -Xms<initial heap size> -Xmx<maximum heap size>
    >
    Timo

  • Performance Analysis: java classes run fast, but http response is delayed

    Hello,
    I´m analysing a performance issue on our application and I have the following symptons:
    - A profile analysis with YourKit Java Profiler 7.5 told us that our java classes are running "fast" ( mostly less than 10s ).
    - The access_log of the Oracle HTTP Server (httpd.conf LogFormat %T parameter) show us that the time taken to process the entire request is 130s
    - The users told us that the application runs fast for a while, but after some minutes, the entire application runs slowly. After some minutes again, the entire application runs fast again.
    - There are no overload of CPU, MEM, IO, Networking. All have been checked and are ok.
    - At the same time the application A runs slowly, the application B on the same server ( but another instance ) runs normally.
    - There is no database botleneck. All the application queries have been profiled and optimized for best run.
    - A huge number of application threads exists on the java virtual machine. The peak was 187 threads ( mostly sleeping. Just one or two were running ). The threads average in the vm is 150.
    - Our application has few EJB ( 4 ), few ejb-calls. All the EJB calls are cached with EhCache. The cache timeout is 2hours. When time-out occurs, the cache is invalidated, cleared and reloaded.
    - We have only 10 users.
    My hypothesis are:
    1. Application server thread blocking. Some threads take until 13 minutes to finish, even when the java processing took only 23 seconds.
    2. Some problem with the size of the AJP packages between HTTPServer and Application server.
    I´m really desperate for help. Any help will be widely appreciated.
    Oracle Application Server 9.0.3.3 running on
    Sun Solaris 5.9
    Sun Java Development Kit 1.4.1_05-b01
    Is there any way to configure the max number of threads in the application server? Where?
    Thanks in advance,
    Murilo

    You can tweak the application server threads as described here:
    http://download.oracle.com/docs/cd/B31017_01/web.1013/b28950/threadpool.htm#BHBDGJBI
    Oh just noticed you are on 9.0.3.3 -- that is a very, very, very* old release. I don't think we had a tunable thread-pool back then. The oldest doc I can find is for 10.1.2, which I think is where we first introduced the thread-pool manager:
    http://download.oracle.com/docs/cd/B15904_01/web.1012/b14011/advanced.htm#i1014357
    Is there any garbage collection occurring that could account for the slow-down in ART? I guess not if APP-B continues to run well over the same period.
    -steve-

  • Coherence objects not released when undeploying application?

    Hi
    Part of our continuous integration build is deploying our application to a Weblogic server and running some selenium test cases against it. We have usually about 15 builds running each day.
    Our problem is that we seem to be experiencing a memory leak in that process; each new build takes more and more memory until weblogic starts throwing out-of-memory errors (as a workaround we'r restarting weblogic every night).
    After spending some time using a profiler (we'r using YourKit Java Profiler) it appears that the calls to Coherence libraries cause references to our objects not being properly released and GC is not able to get rid of them properly. If the calls to the Coherence libraries are removed teh GC correctly releases all our application objects.
    To confirm this I have created this simle test scenario:
    1. Created an empty web application (war) that has only one class in it:
    package com.test;
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    import com.tangosol.net.CacheFactory;
    public class TestServletContextListener implements ServletContextListener {
         public void contextDestroyed(ServletContextEvent arg0) {
              CacheFactory.shutdown();          
         public void contextInitialized(ServletContextEvent arg0) {}
    2. Modified the web.xml to register the ContextListener:
    <listener>
    <listener-class>com.test.TestServletContextListener</listener-class>
    </listener>
    3. Created empty EAR that has only two libraries in it: coherence.jar & tangosol.jar (version 3.3.1)
    5. included the test web application in the EAR (no other classes, projects or libraries are included; no other configuration settings are adjusted from defaults)
    6. While using the profiler I was performing deployemnt and undeployment of teh EAR against the Weblogic server. With each new deployment a new set of com.tangosol* classes is created. Those classes are not released even when GC is forced from the profiler.
    I'm not able to attach a screenshot from the profiler to this post, but with each redeployment I can see the following objects created (ordered with number of objects created in a descending order):
    com.tangosol.util.Base$ComonMonitor: 1024 new objects
    com.tangosol.run.xml.XmlToken: 16 new Objects
    com.tangosol.util.ListMap: 11 new Objects
    com.tangosol.util.RecyclingLingedList$Node: 5 new Objects
    etc.
    Am I doing something wrong or is there really a problem with the object references not properly released in Coherence?
    thank you
    s.

    Hello Robert
    I have double checked that the two coherence libs don’t exist anywhere on the server class path. I have also tried calling shutdown from preStop instead of postStop but it made no difference.
    (Please note that I'm not really looking for the right place to shutdown Coherence; instead I'm trying to demonstrate that calls to Coherence libraries causes object references not to be released properly. I have chosen to use the shutdown method only because it's nicely visible when it's being invoked and also it is something that our application is calling during shutdowns).
    To make sure that I'm not overlooking something with the Weblogic setup I have tried it with Tomcat:
    1. Downloaded and installed Tomcat 6.0.14
    2. Create new WAR project and put coherence.jar & tangosol.jar in WEB-INF/lib
    3. Created one class:
    package com.test;
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    import com.tangosol.net.CacheFactory;
    public class TestServletContextListener implements ServletContextListener {
         public void contextDestroyed(ServletContextEvent arg0) {
              CacheFactory.shutdown();
         public void contextInitialized(ServletContextEvent arg0) {}
    4. modified web.xml:
    <listener>
         <listener-class>com.test.TestServletContextListener</listener-class>
    </listener>
    5. deployed the WAR to the tomcat server with profiler connected to it
    After that I have used Tomcat Web Application Manager (http://localhost:8088/manager/html/list) to Stop & Start the application repeatedly.
    The behavior is the same as on weblogic. Each stop of the application creates another set of tangosol objects that do not get released by GC.
    Am I correct when I say that there is some problem with the Coherence libraries causing memory leaks by not allowing GC to release old objects?
    Thank you
    s.

  • Running out of memory despite having set je.maxMemory to a moderate value

    I have set je.maxMemory to 20MB (je.maxMemory=20000000) and allowed a max heap size of 512MB (-Xms256M -Xmx512M).
    After two hours of running my web service, I'm running out of memory. After having profiled my service (using Yourkit Java Profiler 1.10.6), I can see the following:
    Name                                               Objects ShallowSize  RetainedSize
    byte[]                                               16711   124124880     124124880
    com.sleepycat.je.tree.BIN                              181       24616     116254200
    com.sleepycat.je.tree.Node[]                           187       98736     115743184
    com.sleepycat.je.tree.LN                              7092      226944     115253600
    java.util.concurrent.ConcurrentHashMap$HashEntry       554       17728      78328944
    java.util.concurrent.ConcurrentHashMap$HashEntry[]    1053       34728      77489632
    java.util.concurrent.ConcurrentHashMap                 117        5616      71812072
    java.util.concurrent.ConcurrentHashMap$Segment[]       118       10304      71807912
    java.util.concurrent.ConcurrentHashMap$Segment        1052       42080      71798808
    com.sleepycat.je.tree.IN                                 6         672      45592352
    java.lang.String                                    135888     4348416      14152664The memory profiler claims further, that com.sleepycat.je.tree.BIN is responsible for 71% of all heap memory.
    In any case, com.sleepycat.je.tree.BIN claims ~ 116MB of heap memory, which is by any goodwill, exceeded the limit of 20MB.
    How can this be?
    How is JE ensuring that the limit is not exceeded? Is there a timer (thread) running which once a while checks the memory used and then cleans up ; or is memory usage checked creating a com.sleepycat.je.tree.BIN object?
    My environment:
    BDB JE 4.0.92 - used as cache loader within Jboss Cache (3.2.7.GA), running on a JBOSS Application Server, Java 1.6 (IBM) on Linux. Further details are listed in the system properties below (except some deleted security items).
    System properties:
    (java.lang.String, int, java.lang.StringBuffer, int)=contains
    DestroyJavaVM helper thread=(java.lang.String, java.security.KeyStore$Entry, java.security.KeyStore$ProtectionParameter)
    base.collection.name=CD2JAVA
    bind.address=10.12.25.130
    catalina.base=/work/ocrgws_test/server0
    catalina.ext.dirs=/work/ocrgws_test/server0/lib
    catalina.home=/work/ocrgws_test/server0
    catalina.useNaming=false
    com.arjuna.ats.arjuna.objectstore.objectStoreDir=/work/ocrgws_test/server0/data/tx-object-store
    com.arjuna.ats.jta.lastResourceOptimisationInterface=org.jboss.tm.LastResource
    com.arjuna.ats.tsmx.agentimpl=com.arjuna.ats.internal.jbossatx.agent.LocalJBossAgentImpl
    com.arjuna.common.util.logger=log4j_releveler
    com.arjuna.common.util.logging.DebugLevel=0x00000000
    com.arjuna.common.util.logging.FacilityLevel=0xffffffff
    com.arjuna.common.util.logging.VisibilityLevel=0xffffffff
    com.ibm.cpu.endian=little
    com.ibm.jcl.checkClassPath=
    com.ibm.oti.configuration=scar
    com.ibm.oti.jcl.build=20100326_1904
    com.ibm.oti.shared.enabled=false
    com.ibm.oti.vm.bootstrap.library.path=/opt/ibm/java-x86_64-60/jre/lib/amd64/compressedrefs:/opt/ibm/java-x86_64-60/jre/lib/amd64
    com.ibm.oti.vm.library.version=24
    com.ibm.util.extralibs.properties=
    com.ibm.vm.bitmode=64
    common.loader=${catalina.home}/lib,${catalina.home}/lib/*.jar
    epo.jboss.deploymentscanner.extradirs=/work/ocrgws_test/app/
    external.cert.ldap.* = ***************
    file.encoding=UTF-8
    file.separator=/
    flipflop.activation.time=16:30
    hibernate.bytecode.provider=javassist
    ibm.signalhandling.rs=false
    ibm.signalhandling.sigchain=true
    ibm.signalhandling.sigint=true
    ibm.system.encoding=UTF-8
    jacorb.config.log.verbosity=0
    java.assistive=ON
    java.awt.fonts=
    java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
    java.awt.printerjob=sun.print.PSPrinterJob
    java.class.path=/work/ocrgws_test/config:/usr/local/jboss-eap-4.3-cp07/bin/run.jar:/opt/ibm/java-x86_64-60/lib/tools.jar
    java.class.version=50.0
    java.compiler=j9jit24
    java.endorsed.dirs=/usr/local/jboss-eap-4.3-cp07/lib/endorsed
    java.ext.dirs=/opt/ibm/java-x86_64-60/jre/lib/ext
    java.fullversion=JRE 1.6.0 IBM J9 2.4 Linux amd64-64 jvmxa6460sr8-20100401_55940 (JIT enabled, AOT enabled)
    J9VM - 20100401_055940
    JIT - r9_20100401_15339
    GC - 20100308_AA_CMPRSS
    java.home=/opt/ibm/java-x86_64-60/jre
    java.io.tmpdir=/tmp
    java.jcl.version=20100408_01
    java.library.path=/opt/ibm/java-x86_64-60/jre/lib/amd64/compressedrefs:/opt/ibm/java-x86_64-60/jre/lib/amd64:/usr/lib64/mpi/gcc/openmpi/lib64:/usr/lib
    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
    java.net.preferIPv4Stack=true
    java.protocol.handler.pkgs=org.jboss.net.protocol
    java.rmi.server.codebase=http://10.12.25.130:8083/
    java.rmi.server.hostname=10.12.25.130
    java.rmi.server.randomIDs=true
    java.runtime.name=Java(TM) SE Runtime Environment
    java.runtime.version=pxa6460sr8-20100409_01 (SR8)
    java.security.krb5.conf=/usr/local/jboss/etc/krb5.conf
    java.specification.name=Java Platform API Specification
    java.specification.vendor=Sun Microsystems Inc.
    java.specification.version=1.6
    java.util.prefs.PreferencesFactory=java.util.prefs.FileSystemPreferencesFactory
    java.vendor.url=http://www.ibm.com/
    java.vendor=IBM Corporation
    java.version=1.6.0
    java.vm.info=JRE 1.6.0 IBM J9 2.4 Linux amd64-64 jvmxa6460sr8-20100401_55940 (JIT enabled, AOT enabled)
    J9VM - 20100401_055940
    JIT - r9_20100401_15339
    GC - 20100308_AA_CMPRSS
    java.vm.name=IBM J9 VM
    java.vm.specification.name=Java Virtual Machine Specification
    java.vm.specification.vendor=Sun Microsystems Inc.
    java.vm.specification.version=1.0
    java.vm.vendor=IBM Corporation
    java.vm.version=2.4
    javax.management.builder.initial=org.jboss.mx.server.MBeanServerBuilderImpl
    javax.net.ssl.trustStore=/usr/local/jboss/etc/ldap.truststore
    javax.net.ssl.trustStorePassword=password
    jboss.bind.address=10.12.25.130
    jboss.home.dir=/usr/local/jboss-eap-4.3-cp07
    jboss.home.url=file:/usr/local/jboss-eap-4.3-cp07/
    jboss.identity=30df88bc0a52e350x6e2ff59cx136c17794d5x-8000757
    jboss.lib.url=file:/usr/local/jboss-eap-4.3-cp07/lib/
    jboss.messaging.controlchanneludpaddress=239.1.200.4
    jboss.messaging.datachanneludpaddress=239.1.200.4
    jboss.partition.name=ocrgws_test_Partition
    jboss.partition.udpGroup=239.1.200.4
    jboss.remoting.domain=JBOSS
    jboss.remoting.instanceid=30df88bc0a52e350x6e2ff59cx136c17794d5x-8000757
    jboss.remoting.jmxid=luu002t.internal.epo.org_1334685694459
    jboss.remoting.version=22
    jboss.security.disable.secdomain.option=true
    jboss.server.config.url=file:/work/ocrgws_test/server0/conf/
    jboss.server.data.dir=/work/ocrgws_test/server0/data
    jboss.server.home.dir=/work/ocrgws_test/server0
    jboss.server.home.url=file:/work/ocrgws_test/server0/
    jboss.server.lib.url=file:/work/ocrgws_test/server0/lib/
    jboss.server.log.dir=/work/ocrgws_test/server0/log
    jboss.server.name=luu002t_ocrgws_test_server0
    jboss.server.temp.dir=/work/ocrgws_test/server0/tmp
    jboss.tomcat.udpGroup=239.1.200.4
    jbossmx.loader.repository.class=org.jboss.mx.loading.UnifiedLoaderRepository3
    je.maxMemory=20000000
    jgroups.bind_addr=10.12.25.130
    jmx.console.bindcredential=3bpwdmpc
    jmx.console.binddn=cn=jbossauth-ro,ou=accounts,ou=auth,dc=epo,dc=org
    jmx.console.rolesctxdn=ou=roles-test,ou=jboss,ou=applications,ou=internal,dc=epo,dc=org
    jndi.datasource.name=java:MainframeDS
    jnp.disableDiscovery=true
    jxe.current.romimage.version=15
    jxe.lowest.romimage.version=15
    line.separator=
    mainframelogin.password=720652a1e842fc7f
    mainframelogin.username=test_t
    org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
    org.apache.tomcat.util.http.ServerCookie.VERSION_SWITCH=true
    org.epo.jboss.application.home=/work/ocrgws_test
    org.hyperic.sigar.path=/work/ocrgws_test/server0/./deploy/hyperic-hq.war/native-lib
    org.jboss.ORBSingletonDelegate=org.jacorb.orb.ORBSingleton
    org.omg.CORBA.ORBClass=org.jacorb.orb.ORB
    org.omg.CORBA.ORBSingletonClass=org.jboss.system.ORBSingleton
    org.w3c.dom.DOMImplementationSourceList=org.apache.xerces.dom.DOMXSImplementationSourceImpl
    os.arch=amd64
    os.name=Linux
    os.version=2.6.32.46-0.3-xen
    package.access=sun.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.,sun.beans.
    package.definition=sun.,java.,org.apache.catalina.,org.apache.coyote.,org.apache.tomcat.,org.apache.jasper.
    path.separator=:
    poll.interval.milliseconds=300000
    program.name=run.sh
    server.loader=
    shared.loader=
    spnego.config=/usr/local/jboss/etc/spnego.properties
    sun.arch.data.model=64
    sun.boot.class.path=/usr/local/jboss-eap-4.3-cp07/lib/endorsed/xercesImpl.jar:/usr/local/jboss-eap-4.3-cp07/lib/endorsed/xalan.jar:/usr/local/jboss-eap-4.3-cp07/lib/endorsed/serializer.jar:/opt/ibm/java-x86_64-60/jre/lib/amd64/compressedrefs/jclSC160/vm.jar:/opt/ibm/java-x86_64-60/jre/lib/annotation.jar:/opt/ibm/java-x86_64-60/jre/lib/beans.jar:/opt/ibm/java-x86_64-60/jre/lib/java.util.jar:/opt/ibm/java-x86_64-60/jre/lib/jndi.jar:/opt/ibm/java-x86_64-60/jre/lib/logging.jar:/opt/ibm/java-x86_64-60/jre/lib/security.jar:/opt/ibm/java-x86_64-60/jre/lib/sql.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmorb.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmorbapi.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmcfw.jar:/opt/ibm/java-x86_64-60/jre/lib/rt.jar:/opt/ibm/java-x86_64-60/jre/lib/charsets.jar:/opt/ibm/java-x86_64-60/jre/lib/resources.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmpkcs.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmcertpathfw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjgssfw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjssefw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmsaslfw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjcefw.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjgssprovider.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmjsseprovider2.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmcertpathprovider.jar:/opt/ibm/java-x86_64-60/jre/lib/ibmxmlcrypto.jar:/opt/ibm/java-x86_64-60/jre/lib/management-agent.jar:/opt/ibm/java-x86_64-60/jre/lib/xml.jar:/opt/ibm/java-x86_64-60/jre/lib/jlm.jar:/opt/ibm/java-x86_64-60/jre/lib/javascript.jar:/tmp/yjp201202191932.jar
    sun.boot.library.path=/opt/ibm/java-x86_64-60/jre/lib/amd64/compressedrefs:/opt/ibm/java-x86_64-60/jre/lib/amd64
    sun.io.unicode.encoding=UnicodeLittle
    sun.java.command=org.jboss.Main -b 10.12.25.130 -Djboss.server.home.dir=/work/ocrgws_test/server0 -Djboss.server.home.url=file:/work/ocrgws_test/server0 -Djboss.server.name=luu002t_ocrgws_test_server0 -Djboss.partition.name=ocrgws_test_Partition -Depo.jboss.deploymentscanner.extradirs=/work/ocrgws_test/app/ -Dorg.epo.jboss.application.home=/work/ocrgws_test
    sun.java.launcher.pid=17781
    sun.java.launcher=SUN_STANDARD
    sun.java2d.fontpath=
    sun.jnu.encoding=UTF-8
    sun.rmi.dgc.client.gcInterval=3685000
    sun.rmi.dgc.server.gcInterval=3685000
    system=java.io.ObjectStreamField
    tomcat.util.buf.StringCache.byte.enabled=true
    user.country=US
    user.dir=/work/ocrgws_test
    user.home=*****************
    user.language=en
    user.name=***********
    user.timezone=Europe/Berlin
    user.variant=

    The memory profiler claims further, that com.sleepycat.je.tree.BIN is responsible for 71% of all heap memory. In any case, com.sleepycat.je.tree.BIN claims ~ 116MB of heap memory, which is by any goodwill, exceeded the limit of 20MB. >
    I'm not sure whether the profiler is reporting live objects only (referenced) or all objects (including those not yet reclaimed). If the latter, it isn't telling you how much memory is actually referenced by the JE cache.
    Please look at the JE stats to see what the cache usage is, from JE's point of view.
    If you believe there is a bug in JE cache management, you'll need to write a small standalone test to demonstrate it and submit it to us, since we don't know of any such bug. Also note that we'll have difficulty supporting JE 4.0 (without a support contract anyway). Please use JE 5.0, or at least 4.1.
    Eviction occurs as objects are allocated, as well as in background threads. Eviction in background threads and concurrent eviction were greatly improved in JE 4.1.
    --mark                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • GC accounts for 80% of processing time

    Hi,
    i'm having a rather serious problem with the garbage collector on one of my Java projects. Basically, what i'm doing is just read an XML file using StAX, and then process its content -- nothing scary here. However, I found the process was being really slow, so I profiled it using the YourKit Java Profiler within Eclipse, and it told me that for a short 12 second run, the GC was responsible for 10 seconds!
    Without being an expert, I've done other small projects in Java, and this is the first time I see this. As it is also the first time I'm using StAX, I can't but wonder whether there might be a connection?
    I've noticed exactly the same symptoms on several architectures (Mac/WinXP/Linux SuSE, Eclipse/CLI -- I did profiling only on the Mac). Calling java with the -Xmx1024m switch does improve things, as the process then needs only 10.3 instead of 12.5 seconds. However this is still unacceptable, as the programm is eventually meant to be running for several hours straight -- working, not collecting garbage.
    I've created a GC log: I don't really know what to make of it, but it basically looks like this:
    0.146: [GC 512K->194K(1984K), 0.0024579 secs]
    0.180: [GC 704K->268K(1984K), 0.0012318 secs]
    0.204: [GC 776K->255K(1984K), 0.0006406 secs]
    0.228: [GC 767K->257K(1984K), 0.0003966 secs]
    0.234: [GC 355K->270K(1984K), 0.0004048 secs]
    0.235: [Full GC 270K->270K(1984K), 0.0063139 secs]
    0.281: [GC 2773K->2671K(4036K), 0.0012717 secs]
    0.282: [Full GC 2671K->2671K(4036K), 0.0070599 secs]
    0.293: [GC 4719K->4719K(7084K), 0.0001165 secs]
    These are the first 8 lines. The next 1800+ lines look pretty much like these last 4 ones, with 2 messages being shot every .1 second or so. Apparently the numbers keep rising, and the last messages are
    10.197: [Full GC 5262K->3214K(7084K), 0.0103843 secs]
    10.209: [GC 5267K->5262K(7084K), 0.0001103 secs]
    10.210: [Full GC 5262K->3214K(7084K), 0.0109799 secs]
    10.253: [GC 5767K->5302K(7084K), 0.0010396 secs]
    So can anyone tell me what's happening here? Do I have a memory leak or something?? Is it possible to find out what the GC is cleaning every .1 second?
    I'm really at a loss here, so thx a lot for your help! :-)
    cheers
    David

    Actually, you could try following:
    -     Open WF Monitor, connect to DB via sqlplus or other tool to prepare to run process.
    -     Start mapping execution, verify your session is waiting “queue message”
    -     Wait process to complete, verify it by WF Monitor
    -     Check wait state of session – if it still in “queue message”, it waits completion report from runtime platform.
    Our current configuration is: OWB 9.2.0.4 + DB 9.2.0.7.
    We have faced similar issues with OWF (don’t know your environment, but in ours OWF work under heavy load with concurrent executions of different types of processes) – session could wait indefinitely long for process to “complete” while process had finished long time ago.
    Unfortunately, this is not the only implication of the issue. Once you could notice that your processes simply hang in active state. Activities within process are notified, but not started.
    We took two steps independently and now our situation with OWB/OWF is much better:
    - First. In the runtime schema of OWB there are a lot of foreign keys without indexes on “child” side – we created indexes, rebuild them, “alter move” all tables etc. This came from the recent investigation in this forum about performance of OWB while purging the logs. I suppose the issues that raised in that discussion have their implications on environment with concurrent process executions also.
    - Second. I applied 9.2.0.7 Patch Set (plus one one-off-patch) on DB – this make OWF behavior to improve dramatically. No “notified-but-not-started” activities, or “indefinite-waiting-for-process-completion” sessions noted since New Year. Previously we have to fight these issues every day and even worse.
    Serhit.

  • QuantumToolkit taking up 100% of CPU when no CSS is loaded

    All
    Our application has a simple TableView that takes an incoming server object and displays it for the user. When it receives a similar object the model will attempt to find the previous object and update one or two cells with new status values. Nothing taxing one would think. I have turned off the CSS so we are using the default. We also have Platform.runLater in our model so when we are about to update the GUI that takes place.
    The application functions correctly, but when ramping up the inserts to say 1 every second we see a slow down in the application. The application does function but response it slow when clicking on drop down menus etc. I have attached a profiler stack trace. And we saw that the QuantumToolkit seems to be doing all of the work. Any ideas on how we can trace if further.
    Our object is very simple in that we have some properties that are used to show updates to the row when changed. Most of the fields that need to be updated are set using SimpleDoubleProperty or StringProperty etc.
    Apologies for the formatting, this was exported from the profiler.
    Call tree (all threads together)
    +----------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+
    |                                                                              Name                                                                              |    Time (ms)    |  Own Time (ms)  |
    +----------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+
    |  +---<All threads>                                                                                                                                             |  77,931  100 %  |                 |
    |    |                                                                                                                                                           |                 |                 |
    |    +---com.sun.javafx.tk.quantum.QuantumToolkit$8.run()                                                                                                        |  71,251   91 %  |            182  |
    |    | |                                                                                                                                                         |                 |                 |
    |    | +---javafx.scene.Scene$ScenePulseListener.pulse()                                                                                                         |  71,009   91 %  |              0  |
    |    | | |                                                                                                                                                       |                 |                 |
    |    | | +---javafx.scene.Scene.access$3000(Scene)                                                                                                               |  66,294   85 %  |              0  |
    |    | | | |                                                                                                                                                     |                 |                 |
    |    | | | +---javafx.scene.Scene.doLayoutPass()                                                                                                                 |  66,294   85 %  |              0  |
    |    | | |   |                                                                                                                                                   |                 |                 |
    |    | | |   +---javafx.scene.Scene.layoutDirtyRoots()                                                                                                           |  66,294   85 %  |              0  |
    |    | | |     |                                                                                                                                                 |                 |                 |
    |    | | |     +---javafx.scene.Parent.layout()                                                                                                                  |  66,294   85 %  |              0  |
    |    | | |       |                                                                                                                                               |                 |                 |
    |    | | |       +---javafx.scene.Parent.layout()                                                                                                                |  65,188   84 %  |              0  |
    |    | | |       | |                                                                                                                                             |                 |                 |
    |    | | |       | +---javafx.scene.Parent.layout()                                                                                                              |  65,144   84 %  |              0  |
    |    | | |       | | |                                                                                                                                           |                 |                 |
    |    | | |       | | +---javafx.scene.Parent.layout()                                                                                                            |  65,144   84 %  |              0  |
    |    | | |       | |   |                                                                                                                                         |                 |                 |
    |    | | |       | |   +---javafx.scene.Parent.layout()                                                                                                          |  59,823   77 %  |              0  |
    |    | | |       | |   | |                                                                                                                                       |                 |                 |
    |    | | |       | |   | +---com.sun.javafx.scene.control.skin.VirtualFlow.layoutChildren()                                                                      |  52,938   68 %  |             20  |
    |    | | |       | |   | | |                                                                                                                                     |                 |                 |
    |    | | |       | |   | | +---javafx.scene.control.Control.impl_processCSS(boolean)                                                                             |  44,568   57 %  |              0  |
    |    | | |       | |   | | | |                                                                                                                                   |                 |                 |
    |    | | |       | |   | | | +---javafx.scene.Parent.impl_processCSS(boolean)                                                                                    |  44,568   57 %  |              0  |
    |    | | |       | |   | | |   |                                                                                                                                 |                 |                 |
    |    | | |       | |   | | |   +---javafx.scene.Parent.impl_processCSS(boolean)                                                                                  |  30,346   39 %  |              0  |
    |    | | |       | |   | | |   | |                                                                                                                               |                 |                 |
    |    | | |       | |   | | |   | +---javafx.scene.control.Control.impl_processCSS(boolean)                                                                       |  30,182   39 %  |              0  |
    |    | | |       | |   | | |   | | |                                                                                                                             |                 |                 |
    |    | | |       | |   | | |   | | +---javafx.scene.Parent.impl_processCSS(boolean)                                                                              |  30,182   39 %  |              0  |
    |    | | |       | |   | | |   | |   |                                                                                                                           |                 |                 |
    |    | | |       | |   | | |   | |   +---javafx.scene.Node.impl_processCSS(boolean)                                                                              |  26,135   34 %  |              0  |
    |    | | |       | |   | | |   | |   | |                                                                                                                         |                 |                 |
    |    | | |       | |   | | |   | |   | +---com.sun.javafx.css.StyleHelper.transitionToState(Node)                                                                |  25,492   33 %  |            762  |
    |    | | |       | |   | | |   | |   | | |                                                                                                                       |                 |                 |
    |    | | |       | |   | | |   | |   | | +---javafx.scene.control.Control$12.set(String)                                                                         |  24,092   31 %  |              0  |
    |    | | |       | |   | | |   | |   | | | |                                                                                                                     |                 |                 |
    |    | | |       | |   | | |   | |   | | | +---com.sun.javafx.css.StyleableStringProperty.set(String)                                                            |  24,092   31 %  |              0  |
    |    | | |       | |   | | |   | |   | | |   |                                                                                                                   |                 |                 |
    |    | | |       | |   | | |   | |   | | |   +---javafx.beans.property.StringPropertyBase.set(String)                                                            |  24,092   31 %  |              0  |
    |    | | |       | |   | | |   | |   | | |     |                                                                                                                 |                 |                 |
    |    | | |       | |   | | |   | |   | | |     +---javafx.beans.property.StringPropertyBase.markInvalid()                                                        |  24,092   31 %  |              0  |
    |    | | |       | |   | | |   | |   | | |       |                                                                                                               |                 |                 |
    |    | | |       | |   | | |   | |   | | |       +---javafx.scene.control.Control$12.invalidated()                                                               |  24,092   31 %  |              0  |
    |    | | |       | |   | | |   | |   | | |         |                                                                                                             |                 |                 |
    |    | | |       | |   | | |   | |   | | |         +---javafx.scene.control.Control.access$500(Control)                                                          |  24,092   31 %  |              0  |
    |    | | |       | |   | | |   | |   | | |           |                                                                                                           |                 |                 |
    |    | | |       | |   | | |   | |   | | |           +---javafx.scene.control.Control.loadSkinClass()                                                            |  24,092   31 %  |            102  |
    |    | | |       | |   | | |   | |   | | |             |                                                                                                         |                 |                 |
    |    | | |       | |   | | |   | |   | | |             +---java.lang.reflect.Constructor.newInstance(Object[])                                                   |  20,791   27 %  |          4,752  |
    |    | | |       | |   | | |   | |   | | |             | |                                                                                                       |                 |                 |
    |    | | |       | |   | | |   | |   | | |             | +---javafx.scene.Node.addEventHandler(EventType, EventHandler)                                          |   2,848    4 %  |              0  |
    |    | | |       | |   | | |   | |   | | |             | |                                                                                                       |                 |                 |
    |    | | |       | |   | | |   | |   | | |             | +---javafx.scene.layout.StackPane.<init>()                                                              |   1,982    3 %  |              0  |
    +----------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+
    Generated by YourKit Java Profiler 10.0.6 Feb 27, 2012 11:41:24 AM

    HEre is an attempt at a test class. If you run it click start data add, then start updater it simulates the traffic coming from our server. When you start clicking on the qty buttons you see a delay as the amounts increase. If you click stop , then the GUi is okay
    package test;
    import java.util.Date;
    import java.util.Random;
    import java.util.concurrent.atomic.AtomicInteger;
    import javafx.application.Application;
    import javafx.application.Platform;
    import javafx.beans.property.SimpleDoubleProperty;
    import javafx.beans.property.SimpleIntegerProperty;
    import javafx.beans.property.SimpleObjectProperty;
    import javafx.beans.property.SimpleStringProperty;
    import javafx.collections.FXCollections;
    import javafx.collections.ObservableList;
    import javafx.event.ActionEvent;
    import javafx.event.EventHandler;
    import javafx.geometry.Pos;
    import javafx.scene.Scene;
    import javafx.scene.control.Button;
    import javafx.scene.control.TableCell;
    import javafx.scene.control.TableColumn;
    import javafx.scene.control.TableColumn.SortType;
    import javafx.scene.control.TableView;
    import javafx.scene.control.TextField;
    import javafx.scene.control.cell.PropertyValueFactory;
    import javafx.scene.layout.HBox;
    import javafx.scene.layout.VBox;
    import javafx.scene.paint.Color;
    import javafx.stage.Stage;
    import javafx.util.Callback;
    public class TestApplication extends Application {
         private TableView<OrderDataTableNewRow> exchangesTable = new TableView<OrderDataTableNewRow>();
         static ObservableList<OrderDataTableNewRow> data  = FXCollections.observableArrayList();
         @Override
         public void start(final Stage stage) throws Exception {
              final VBox rootPane = new VBox();
              rootPane.setSpacing(10);
              rootPane.setPrefSize(800, 600);
              TableColumn<OrderDataTableNewRow, String> clOrderIdCol = new TableColumn<OrderDataTableNewRow, String>("ClOrderId");
              clOrderIdCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.CLORDERID_PROPERTY));
              clOrderIdCol.setSortable(true);
              clOrderIdCol.setPrefWidth(130);
              TableColumn<OrderDataTableNewRow, String> exchangeCol = new TableColumn<OrderDataTableNewRow, String>("Exchange");
              exchangeCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.EXCHANGE_PROPERTY));
              exchangeCol.setSortable(true);
              exchangeCol.setPrefWidth(65);
              TableColumn<OrderDataTableNewRow, String> securityCodeCol = new TableColumn<OrderDataTableNewRow, String>("Security");
              securityCodeCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.SECURITY_CODE_PROPERTY));
              securityCodeCol.setSortable(true);
              securityCodeCol.setPrefWidth(70);
              TableColumn<OrderDataTableNewRow, OrderType> orderTypeCol = new TableColumn<OrderDataTableNewRow, OrderType>("Type");
              orderTypeCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,OrderType>(OrderDataTableNewRow.ORDERTYPE_PROPERTY));
              orderTypeCol.setSortable(true);
              orderTypeCol.setPrefWidth(70);
              TableColumn<OrderDataTableNewRow, SideEnum>  sideCol = new TableColumn<OrderDataTableNewRow, SideEnum>("Side");
              sideCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow, SideEnum>(OrderDataTableNewRow.SIDE_PROPERTY));
              sideCol.setSortable(true);
              sideCol.setPrefWidth(65);
              TableColumn<OrderDataTableNewRow, Double> priceCol = new TableColumn<OrderDataTableNewRow, Double>("Price");
              priceCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,Double>(OrderDataTableNewRow.PRICE_PROPERTY));
              priceCol.setSortable(true);
              priceCol.setPrefWidth(81);
              TableColumn<OrderDataTableNewRow, Integer> qtyCol = new TableColumn<OrderDataTableNewRow, Integer>("Qty");
              qtyCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,Integer>(OrderDataTableNewRow.QTY_PROPERTY));
              qtyCol.setSortable(true);
              qtyCol.setPrefWidth(75);
              TableColumn<OrderDataTableNewRow, Double> lastPxCol = new TableColumn<OrderDataTableNewRow, Double>("LastPx");
              lastPxCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,Double>(OrderDataTableNewRow.LAST_PX_PROPERTY));
              lastPxCol.setSortable(true);
              lastPxCol.setPrefWidth(81);
              TableColumn<OrderDataTableNewRow, Integer> lastQtyCol = new TableColumn<OrderDataTableNewRow, Integer>("LastQty");
              lastQtyCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,Integer>(OrderDataTableNewRow.LAST_QTY_PROPERTY));
              lastQtyCol.setSortable(true);
              lastQtyCol.setPrefWidth(81);
              TableColumn<OrderDataTableNewRow, Double> avgPxCol = new TableColumn<OrderDataTableNewRow, Double>("AvgPx");
              avgPxCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,Double>(OrderDataTableNewRow.AVG_PX_PROPERTY));
              avgPxCol.setSortable(true);
              avgPxCol.setPrefWidth(100);
              TableColumn<OrderDataTableNewRow, Integer> cumQtyCol = new TableColumn<OrderDataTableNewRow, Integer>("CumQty");
              cumQtyCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,Integer>(OrderDataTableNewRow.CUM_QTY_PROPERTY));
              cumQtyCol.setSortable(true);
              cumQtyCol.setPrefWidth(100);
              TableColumn<OrderDataTableNewRow, Integer> leavesQtyCol = new TableColumn<OrderDataTableNewRow, Integer>("Leaves");
              leavesQtyCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,Integer>(OrderDataTableNewRow.LEAVES_QTY_PROPERTY));
              leavesQtyCol.setSortable(true);
              leavesQtyCol.setPrefWidth(100);
              TableColumn<OrderDataTableNewRow, String> accountCol = new TableColumn<OrderDataTableNewRow, String>("Account");
              accountCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.ACCOUNT_PROPERTY));
              accountCol.setSortable(true);
              accountCol.setPrefWidth(100);
              TableColumn<OrderDataTableNewRow, String> brokerCol = new TableColumn<OrderDataTableNewRow, String>("Broker");
              brokerCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.BROKER_PROPERTY));
              brokerCol.setSortable(true);
              brokerCol.setPrefWidth(100);
              TableColumn<OrderDataTableNewRow, String> traderCol = new TableColumn<OrderDataTableNewRow, String>("Trader");
              traderCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.TRADER_PROPERTY));
              traderCol.setSortable(true);
              traderCol.setPrefWidth(100);
              TableColumn<OrderDataTableNewRow, OrderStatus> orderStatusCol = new TableColumn<OrderDataTableNewRow, OrderStatus>("OrderStatus");
              orderStatusCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow, OrderStatus>(OrderDataTableNewRow.ORDER_STATUS_PROPERTY));
              orderStatusCol.setSortable(true);
              orderStatusCol.setPrefWidth(81);
              TableColumn<OrderDataTableNewRow, ExecutionType> executionTypeCol = new TableColumn<OrderDataTableNewRow, ExecutionType>("ExecType");
              executionTypeCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow, ExecutionType>(OrderDataTableNewRow.EXECUTION_TYPE_PROPERTY));
              executionTypeCol.setSortable(true);
              executionTypeCol.setPrefWidth(81);
              TableColumn<OrderDataTableNewRow, Date> expiryCol = new TableColumn<OrderDataTableNewRow, Date>("Expiry");
              expiryCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow, Date>(OrderDataTableNewRow.EXPIRY_PROPERTY));
              expiryCol.setSortable(true);
              expiryCol.setPrefWidth(85);
              TableColumn<OrderDataTableNewRow, String> currencyCol = new TableColumn<OrderDataTableNewRow, String>("Currency");
              currencyCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.CURRENCY_PROPERTY));
              currencyCol.setSortable(true);
              currencyCol.setPrefWidth(81);
              TableColumn<OrderDataTableNewRow, String> messageCol = new TableColumn<OrderDataTableNewRow, String>("Text");
              messageCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.TEXT_PROPERTY));
              messageCol.setPrefWidth(140);
              TableColumn<OrderDataTableNewRow, String> giveUpCol = new TableColumn<OrderDataTableNewRow, String>("GiveUp");
              giveUpCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.GIVEUP_PROPERTY));
              giveUpCol.setSortable(true);
              giveUpCol.setPrefWidth(100);
              TableColumn<OrderDataTableNewRow, String> giveInCol = new TableColumn<OrderDataTableNewRow, String>("GiveIn");
              giveInCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow,String>(OrderDataTableNewRow.GIVEIN_PROPERTY));
              giveInCol.setPrefWidth(100);
              TableColumn<OrderDataTableNewRow, Date> createdCol = new TableColumn<OrderDataTableNewRow, Date>("Updated");
              createdCol.setCellValueFactory(new PropertyValueFactory<OrderDataTableNewRow, Date>(OrderDataTableNewRow.UPDATED_PROPERTY));
              createdCol.setSortable(true);
              createdCol.setMinWidth(190);
              createdCol.setSortType(SortType.DESCENDING);
              // Setup all the renders
              Callback<TableColumn<OrderDataTableNewRow,String>, TableCell<OrderDataTableNewRow,String>> defaultStringRenderFactory =
                        new Callback<TableColumn<OrderDataTableNewRow,String>, TableCell<OrderDataTableNewRow,String>>() {
                   public TableCell<OrderDataTableNewRow,String> call(TableColumn<OrderDataTableNewRow,String> p) {
                        return new StringFormatCell<OrderDataTableNewRow>(Pos.CENTER);
              Callback<TableColumn<OrderDataTableNewRow, SideEnum>, TableCell<OrderDataTableNewRow, SideEnum>> defaultSideCellFactory =
                        new Callback<TableColumn<OrderDataTableNewRow, SideEnum>, TableCell<OrderDataTableNewRow, SideEnum>>() {
                   public TableCell<OrderDataTableNewRow, SideEnum> call(TableColumn<OrderDataTableNewRow, SideEnum> p) {
                        return new SideFormatCell<OrderDataTableNewRow>();
              Callback<TableColumn<OrderDataTableNewRow, OrderStatus>, TableCell<OrderDataTableNewRow, OrderStatus>> orderStatusCellFactory =
                        new Callback<TableColumn<OrderDataTableNewRow, OrderStatus>, TableCell<OrderDataTableNewRow, OrderStatus>>() {
                   public TableCell<OrderDataTableNewRow, OrderStatus> call(TableColumn<OrderDataTableNewRow, OrderStatus> p) {
                        return new OrderStatusFormatCell<OrderDataTableNewRow>();
              Callback<TableColumn<OrderDataTableNewRow, OrderType>, TableCell<OrderDataTableNewRow, OrderType>> orderTypeCellFactory =
                        new Callback<TableColumn<OrderDataTableNewRow, OrderType>, TableCell<OrderDataTableNewRow, OrderType>>() {
                   public TableCell<OrderDataTableNewRow, OrderType> call(TableColumn<OrderDataTableNewRow, OrderType> p) {
                        return new OrderTypeFormatCell<OrderDataTableNewRow>(null);
              clOrderIdCol.setCellFactory(defaultStringRenderFactory);
              exchangeCol.setCellFactory(defaultStringRenderFactory);
              securityCodeCol.setCellFactory(defaultStringRenderFactory);
              orderTypeCol.setCellFactory(orderTypeCellFactory);
              sideCol.setCellFactory(defaultSideCellFactory);
              orderStatusCol.setCellFactory(orderStatusCellFactory);
              accountCol.setCellFactory(defaultStringRenderFactory);
              brokerCol.setCellFactory(defaultStringRenderFactory);
              traderCol.setCellFactory(defaultStringRenderFactory);
              currencyCol.setCellFactory(defaultStringRenderFactory);
              messageCol.setCellFactory(defaultStringRenderFactory);
              this.exchangesTable.setItems(data);
              this.exchangesTable.setTableMenuButtonVisible(true);
              ObservableList<TableColumn<OrderDataTableNewRow, ?>> columns = this.exchangesTable.getColumns();
              columns.addAll(clOrderIdCol, exchangeCol, securityCodeCol, orderTypeCol, sideCol, priceCol, qtyCol, orderStatusCol, lastQtyCol, lastPxCol, avgPxCol, cumQtyCol, leavesQtyCol, executionTypeCol, accountCol, brokerCol, traderCol, expiryCol, currencyCol, giveUpCol, giveInCol, messageCol, createdCol);
              //Layout
              final HBox hbox = new HBox();
              Button updaterButton = new Button("START_UPDATER");
              Button inserterButton = new Button("START_DATA_ADD");
              Button stopButton = new Button("STOP");
              final TextField qtyField = new TextField();
              Button tenButton = new Button("10");
              Button twentyButton = new Button("20");
              Button fiveButton = new Button("5");
              Button threeButton = new Button("3");
              hbox.setSpacing(3);
              hbox.getChildren().addAll(updaterButton, inserterButton, stopButton, qtyField, tenButton, twentyButton, fiveButton, threeButton);
              tenButton.setOnAction(new EventHandler<ActionEvent>() {
                   @Override
                   public void handle(ActionEvent arg0) {
                        qtyField.clear();
                        qtyField.setText("10");
              twentyButton.setOnAction(new EventHandler<ActionEvent>() {
                   @Override
                   public void handle(ActionEvent arg0) {
                        qtyField.clear();
                        qtyField.setText("20");
              fiveButton.setOnAction(new EventHandler<ActionEvent>() {
                   @Override
                   public void handle(ActionEvent arg0) {
                        qtyField.clear();
                        qtyField.setText("5");
              threeButton.setOnAction(new EventHandler<ActionEvent>() {
                   @Override
                   public void handle(ActionEvent arg0) {
                        qtyField.clear();
                        qtyField.setText("3");
              final AtomicInteger counter = new AtomicInteger();
              final Thread runner = new Thread() {
                   // runnable for that thread
                   public void run() {
                        while(true) {
                             try {
                                  // imitating work
                                  Thread.sleep(new Random().nextInt(100));
                             } catch (InterruptedException ex) {
                                  ex.printStackTrace();
                             // update ProgressIndicator on FX thread
                             Platform.runLater(new Runnable() {
                                  public void run() {
                                       int andIncrement = counter.getAndIncrement();
                                       long orderId = andIncrement;
                                       String clOrderId = andIncrement+"CL";
                                       String exchange = "XEUR";
                                       String code = "ES";
                                       int nextEnumRand = new Random().nextInt(SideEnum.values().length);
                                       SideEnum side = SideEnum.values()[nextEnumRand];
                                       int nextTypeEnumRand = new Random().nextInt(OrderType.values().length);
                                       OrderType orderType = OrderType.values()[nextTypeEnumRand];
                                       int nextSecEnumRand = new Random().nextInt(SecurityType.values().length);
                                       SecurityType securityType =  SecurityType.values()[nextSecEnumRand];
                                       String currency = "USD";
                                       Date expiry = new Date();
                                       double price = 92.22;
                                       int qty =10;
                                       String account = "ACCOUNT";
                                       String broker = "BROKER";
                                       String trader = "TRaDER";
                                       OrderDataTableNewRow tableRow =  new OrderDataTableNewRow(orderId, clOrderId, exchange, code, side, orderType, securityType, currency, expiry, price, qty, account, broker, trader);
                                       System.out.println("Adding row "+tableRow);
                                       data.add(tableRow);
              final Thread updater = new Thread() {
                   // runnable for that thread
                   public void run() {
                        while(true) {
                             try {
                                  // imitating work
                                  Thread.sleep(new Random().nextInt(100));
                             } catch (InterruptedException ex) {
                                  ex.printStackTrace();
                             // update ProgressIndicator on FX thread
                             Platform.runLater(new Runnable() {
                                  public void run() {
                                       int andIncrement = counter.get();
                                       int nextInt = new Random().nextInt(andIncrement);
                                       OrderDataTableNewRow tableRow = data.get(nextInt);
                                       System.out.println("Updating row "+tableRow);
                                       int nextEnumRand = new Random().nextInt(OrderStatus.values().length);
                                       OrderStatus randDomStatus = OrderStatus.values()[nextEnumRand];
                                       tableRow.setOrderStatus(randDomStatus);
                                       tableRow.setUpdated(new Date());
              updaterButton.setOnAction(new EventHandler<ActionEvent>() {
                   @Override
                   public void handle(ActionEvent arg0) {
                        updater.start();
              inserterButton.setOnAction(new EventHandler<ActionEvent>() {
                   @Override
                   public void handle(ActionEvent arg0) {
                        runner.start();
              stopButton.setOnAction(new EventHandler<ActionEvent>() {
                   @Override
                   public void handle(ActionEvent arg0) {
                        runner.stop();
                        updater.stop();
              String defaultCssStyleResource = this.getClass().getResource("style_blue.css").getFile();
              this.exchangesTable.prefWidthProperty().bind(rootPane.widthProperty());
              this.exchangesTable.prefHeightProperty().bind(rootPane.heightProperty());
              rootPane.getChildren().addAll(hbox, exchangesTable);
              Scene scene = new Scene(rootPane, 400, 400, Color.WHITE); 
              scene.getStylesheets().add(defaultCssStyleResource);
              stage.setResizable(true);
              stage.setScene(scene);
              stage.show();
         enum SideEnum {
              BUY,
              SELL
         enum SecurityType {
              STOCK,
              BOND,
              FUTURE
         enum OrderType {
              LIMIT,
              MARKET,
              STOP
         enum OrderStatus {
              EXECUTED,
              PENDING,
              FILLED,
              CANCELLED,
              WORKING,
              PENDINGNEW
         enum ExecutionType {
              EXECUTED,
              FILLED,
              CANCELLED,
         public static void main(String[] args) {
              Application.launch(TestApplication.class, args);
         public class OrderDataTableNewRow  {
              public static final String CLORDERID_PROPERTY = "clOrderId";
              public static final String EXCHANGE_PROPERTY = "exchange";
              public static final String SECURITY_CODE_PROPERTY = "code";
              public static final String SIDE_PROPERTY = "side";
              public static final String PRICE_PROPERTY = "price";
              public static final String ORDERTYPE_PROPERTY = "orderType";
              public static final String QTY_PROPERTY = "qty";
              public static final String LAST_PX_PROPERTY = "lastPx";
              public static final String LAST_QTY_PROPERTY = "lastQty";
              public static final String AVG_PX_PROPERTY = "avgPx";
              public static final String CUM_QTY_PROPERTY = "cumQty";
              public static final String LEAVES_QTY_PROPERTY = "leavesQty";
              public static final String ACCOUNT_PROPERTY = "account";
              public static final String BROKER_PROPERTY = "broker";
              public static final String TRADER_PROPERTY = "trader";
              public static final String ORDER_STATUS_PROPERTY = "orderStatus";
              public static final String EXECUTION_TYPE_PROPERTY = "executionType";
              public static final String EXPIRY_PROPERTY = "expiry";
              public static final String CURRENCY_PROPERTY = "currency";
              public static final String TEXT_PROPERTY = "text";
              public static final String GIVEUP_PROPERTY = "giveUp";
              public static final String GIVEIN_PROPERTY = "giveIn";
              public static final String UPDATED_PROPERTY = "updated";
              private final long orderId;
              private final String clOrderId;
              private final String exchange;
              private final String code;
              private final SideEnum side;
              private final OrderType orderType;
              private final SecurityType securityType;
              private final String account;
              private final String broker;
              private final String trader;
              private final Date expiry;
              private final String currency;
              private final double price;
              private final int qty;
              private final SimpleObjectProperty<OrderStatus> orderStatus = new SimpleObjectProperty<OrderStatus>();
              private final SimpleObjectProperty<ExecutionType> executionType = new SimpleObjectProperty<ExecutionType>();
              private final SimpleDoubleProperty lastPx = new SimpleDoubleProperty();
              private final SimpleIntegerProperty lastQty = new SimpleIntegerProperty();
              private final SimpleIntegerProperty cumQty = new SimpleIntegerProperty();
              private final SimpleIntegerProperty leavesQty = new SimpleIntegerProperty();
              private final SimpleDoubleProperty avgPx = new SimpleDoubleProperty();
              private final SimpleStringProperty externalOrderId = new SimpleStringProperty();
              private final SimpleStringProperty text = new SimpleStringProperty();
              private final SimpleStringProperty giveUp = new SimpleStringProperty();
              private final SimpleStringProperty giveIn = new SimpleStringProperty();
              private final SimpleObjectProperty<Date> updated = new SimpleObjectProperty<Date>();
               * Creates a new instance of {@link OrderDataTableNewRow}.
              public OrderDataTableNewRow(long orderId, String clOrderId, String exchange, String code, SideEnum side, OrderType orderType,  SecurityType securityType, String currency,
                        Date expiry, double price, int qty, String account, String broker, String trader) {
                   this.orderId = orderId;
                   this.clOrderId = clOrderId;
                   this.exchange = exchange;
                   this.code = code;
                   this.side = side;
                   this.orderType = orderType;
                   this.currency = currency;
                   this.expiry = expiry;
                   this.securityType = securityType;
                   this.account = account;
                   this.broker = broker;
                   this.trader = trader;
                   this.price = price;
                   this.qty = qty;
              public void setUpdated(Date date) {
                   this.updated.set(date);
              public void setOrderStatus(OrderStatus randDomStatus) {
                   this.orderStatus.set(randDomStatus);
               * @return the orderId
              public final long getOrderId() {
                   return this.orderId;
               * @return the clOrderId
              public final String getClOrderId() {
                   return this.clOrderId;
               * @return the exchange
              public final String getExchange() {
                   return this.exchange;
               * @return the code
              public final String getCode() {
                   return this.code;
               * @return the side
              public final SideEnum getSide() {
                   return this.side;
               * @return the orderType
              public final OrderType getOrderType() {
                   return this.orderType;
               * @return the securityType
              public final SecurityType getSecurityType() {
                   return this.securityType;
               * @return the account
              public final String getAccount() {
                   return this.account;
               * @return the broker
              public final String getBroker() {
                   return this.broker;
               * @return the trader
              public final String getTrader() {
                   return this.trader;
               * @return the expiry
              public final Date getExpiry() {
                   return this.expiry;
               * @return the currency
              public final String getCurrency() {
                   return this.currency;
               * @return the price
              public final double getPrice() {
                   return this.price;
               * @return the qty
              public final int getQty() {
                   return this.qty;
               * @return the orderStatus
              public final SimpleObjectProperty<OrderStatus> getOrderStatus() {
                   return this.orderStatus;
               * @return the executionType
              public final SimpleObjectProperty<ExecutionType> getExecutionType() {
                   return this.executionType;
               * @return the lastPx
              public final SimpleDoubleProperty getLastPx() {
                   return this.lastPx;
               * @return the lastQty
              public final SimpleIntegerProperty getLastQty() {
                   return this.lastQty;
               * @return the cumQty
              public final SimpleIntegerProperty getCumQty() {
                   return this.cumQty;
               * @return the leavesQty
              public final SimpleIntegerProperty getLeavesQty() {
                   return this.leavesQty;
               * @return the avgPx
              public final SimpleDoubleProperty getAvgPx() {
                   return this.avgPx;
               * @return the externalOrderId
              public final SimpleStringProperty getExternalOrderId() {
                   return this.externalOrderId;
               * @return the text
              public final SimpleStringProperty getText() {
                   return this.text;
               * @return the giveUp
              public final SimpleStringProperty getGiveUp() {
                   return this.giveUp;
               * @return the giveIn
              public final SimpleStringProperty getGiveIn() {
                   return this.giveIn;
               * @return the updated
              public final SimpleObjectProperty<Date> getUpdated() {
                   return this.updated;
               * @return the created
              public final SimpleObjectProperty<Date> updatedProperty() {
                   return this.updated;
               * @return the lastPrice
              public final SimpleDoubleProperty lastPxProperty() {
                   return this.lastPx;
               * @return the lastQty
              public final SimpleIntegerProperty lastQtyProperty() {
                   return this.lastQty;
               * @return the cumQty
              public final SimpleIntegerProperty cumQtyProperty() {
                   return this.cumQty;
               * @return the averagePrice
              public final SimpleDoubleProperty avgPxProperty() {
                   return this.avgPx;
               * @return the executionStatus
              public final SimpleObjectProperty<ExecutionType> executionTypeProperty() {
                   return this.executionType;
               * @return the leavesQty
              public SimpleIntegerProperty leavesQtyProperty() {
                   return this.leavesQty;
               * @return the text
              public final SimpleStringProperty textProperty() {
                   return this.text;
               * @return the orderId
              public final SimpleStringProperty externalOrderIdProperty() {
                   return this.externalOrderId;
               * @return the orderStatus
              public final SimpleObjectProperty<OrderStatus> orderStatusProperty() {
                   return this.orderStatus;
               * @return the giveUp
              public final SimpleStringProperty giveUpProperty() {
                   return this.giveUp;
               * @return the giveIn
              public final SimpleStringProperty giveInProperty() {
                   return this.giveIn;
         public class StringFormatCell<T>  extends TableCell<T, String> {
              private final Pos alignment;
              private final String cssFormat;
               * Creates a new instance of {@link IntegerFormatCell}.
              public StringFormatCell(Pos alignment) {
                   this(null, alignment);
               * Creates a new instance of {@link IntegerFormatCell}.
              public StringFormatCell(String cssFormat, Pos alignment) {
                   this.cssFormat = cssFormat;
                   this.alignment = alignment;
                   setId(this.cssFormat);
               * {@inheritDoc}
               * @see javafx.scene.control.Cell#updateItem(java.lang.Object, boolean)
              @Override
              protected void updateItem(String item, boolean empty) {
                   if(item == null) {
                        return;
                   // calling super here is very important - don't skip this!
                   super.updateItem(item, empty);
                   setText(item);
                   setAlignment(alignment);
         public class SideFormatCell<T> extends TableCell<T, SideEnum> {
               * Creates a new instance of {@link SideFormatCell}.
              public SideFormatCell() {
                   setAlignment(Pos.CENTER);
               * {@inheritDoc}
               * @see javafx.scene.control.Cell#updateItem(java.lang.Object, boolean)
              @Override
              protected void updateItem(SideEnum item, boolean empty) {
                   if(item == null) {
                        return;
                   // calling super here is very important - don't skip this!
                   super.updateItem(item, empty);
                   String name = item.name();
                   setText(name);
                   switch (item) {
                   case BUY:
                        setId("bidPriceCell");
                        break;
                   case SELL:
                        setId("askPriceCell");
                        break;
         public class OrderStatusFormatCell<T> extends TableCell<T, OrderStatus> {
               * Creates a new instance of {@link OrderStatusFormatCell}.
              public OrderStatusFormatCell() {
                   setAlignment(Pos.CENTER);
               * {@inheritDoc}
               * @see javafx.scene.control.Cell#updateItem(java.lang.Object, boolean)
              @Override
              protected void updateItem(OrderStatus item, boolean empty) {
                   if(item == null) {
                        return;
                   // calling super here is very important - don't skip this!
                   super.updateItem(item, empty);
                   switch (item) {
                   case PENDING:
                        setId("statusWorkingColumn");
                        setText("Working");
                        break;
                   case PENDINGNEW:
                        setId("statusPendingColumn");
                        setText("Pending New");
                        break;
                   case CANCELLED:
                        setId("statusPendingCancelColumn");
                        setText("Pending Cancel");
                        break;
                   case EXECUTED:
                        setId("statusPartFilledColumn");
                        setText("Part Filled");
                        break;
         public class OrderTypeFormatCell<T> extends TableCell<T, OrderType> {
               * Creates a new instance of {@link OrderTypeFormatCell}.
              public OrderTypeFormatCell(String cssStyleName) {
                   setId(cssStyleName);
                   setAlignment(Pos.CENTER);
               * {@inheritDoc}
               * @see javafx.scene.control.Cell#updateItem(java.lang.Object, boolean)
              @Override
              protected void updateItem(OrderType item, boolean empty) {
                   if(item == null) {
                        return;
                   // calling super here is very important - don't skip this!
                   super.updateItem(item, empty);
                   String itemAsString = item.name();
                   setText(itemAsString);
                   switch (item) {
                   case LIMIT:
                        setId("orderTypeLimit");
                        setText("Limit");
                        break;
                   case MARKET:
                        setId("orderTypeMarket");
                        setText("Market");
                        break;
                   case STOP:
                        setId("orderTypeStop");
                        setText("Stop");
                        break;
    }

Maybe you are looking for