[
  {
    "path": ".github/copilot-instructions.md",
    "content": "# Copilot Review Instructions: TDA - Thread Dump Analyzer\n\nYou are reviewing **TDA (Thread Dump Analyzer)**, a Java-based desktop application using **Swing**. TDA is designed to parse and visualize complex Java thread dumps to identify deadlocks, resource contention, and performance bottlenecks.\n\n## Core Technical Principles\n\n### 1. Concurrency & Swing (EDT)\n- **Responsiveness:** Ensure that long-running parsing or analysis tasks are NEVER executed on the Event Dispatch Thread (EDT). Use `SwingWorker` or an equivalent background execution mechanism.\n- **UI Updates:** Ensure all updates to Swing components are wrapped in `SwingUtilities.invokeLater` if triggered from background threads.\n\n### 2. Memory & Performance\n- **Large Files:** Thread dumps can be massive (hundreds of MBs). Prefer streaming and incremental parsing over loading entire files into memory.\n- **Object Lifecycle:** Watch for memory leaks in listeners and static collections, especially when opening and closing multiple dump files.\n\n### 3. Parsing Logic (The Core)\n- **Accuracy:** The parsing logic for thread states (RUNNABLE, BLOCKED, WAITING) must strictly follow JVM specifications.\n- **Robustness:** Handle malformed or truncated thread dumps gracefully without crashing the UI. Provide meaningful error messages to the user.\n\n### 4. Swing UI Best Practices\n- **Look & Feel:** Maintain consistency with existing UI components.\n- **Layouts:** Prefer `MigLayout` or `GridBagLayout` for complex forms to ensure resizability. Avoid absolute positioning.\n- **Accessibility:** Ensure components have appropriate tooltips and mnemonic keys where applicable.\n\n## Review Focus Areas\n- **Deadlock Detection:** Double-check the logic that identifies circular dependencies in monitor locks.\n- **Regex Performance:** Ensure that regular expressions used for log parsing are optimized and protected against Catastrophic Backtracking.\n- **Clean Code:** Enforce Java 11+ coding standards (or the specific version TDA uses), focusing on readability and modularity.\n\n## Communication Style\n- Be concise and technical.\n- If suggesting a change, explain the impact on performance or thread safety.\n- Use code snippets for refactoring suggestions."
  },
  {
    "path": ".github/workflows/build.yml",
    "content": "name: Java CI with Maven\n\non:\n  push:\n    branches: [ \"*\" ]\n    paths-ignore:\n      - 'README.md'\n      - 'CHANGELOG.md'\n      - 'renovate.json'\n      - 'docs/**'\n      - 'tda-main-screen.png'\n  pull_request:\n    branches: [ \"*\" ]\n    paths-ignore:\n      - 'README.md'\n      - 'CHANGELOG.md'\n      - 'renovate.json'\n      - 'docs/**'\n      - 'tda-main-screen.png'\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n\n    steps:\n    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n    \n    - name: Set up JDK 17\n      uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5\n      with:\n        java-version: '17'\n        distribution: 'temurin'\n        cache: maven\n        \n    - name: Build with Maven\n      run: mvn -B package --file pom.xml\n"
  },
  {
    "path": ".github/workflows/pages.yml",
    "content": "name: Deploy GitHub Pages\n\non:\n  push:\n    branches: [ \"main\" ]\n    paths:\n      - 'docs/**'\n  workflow_dispatch:\n\npermissions:\n  contents: read\n  pages: write\n  id-token: write\n\nconcurrency:\n  group: \"pages\"\n  cancel-in-progress: false\n\njobs:\n  deploy:\n    environment:\n      name: github-pages\n      url: ${{ steps.deployment.outputs.page_url }}\n    runs-on: ubuntu-latest\n    steps:\n      - name: Checkout\n        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n      - name: Setup Pages\n        uses: actions/configure-pages@v6\n      - name: Upload artifact\n        uses: actions/upload-pages-artifact@v4\n        with:\n          path: './docs'\n      - name: Deploy to GitHub Pages\n        id: deployment\n        uses: actions/deploy-pages@v5\n"
  },
  {
    "path": ".github/workflows/release.yml",
    "content": "name: Release\n\non:\n  push:\n    tags:\n      - '[0-9]+.[0-9]+*'\n\njobs:\n  build-macos:\n    name: Build macOS Binary\n    runs-on: macos-latest\n    permissions:\n      contents: write\n\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n\n      - name: Set up JDK 17\n        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5\n        with:\n          java-version: '17'\n          distribution: 'temurin'\n          cache: 'maven'\n\n      - name: Build macOS Binary\n        run: |\n          mvn clean package -Prelease -DskipTests -pl tda,tda-macos-binary -am\n\n      - name: Upload macOS Binary to Release\n        uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe # v2\n        with:\n          draft: true\n          files: |\n            tda-macos-binary/target/dist/*.dmg\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n\n  build-linux:\n    name: Build and Release\n    runs-on: ubuntu-latest\n    permissions:\n      contents: write\n\n    steps:\n      - name: Checkout code\n        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6\n\n      - name: Set up JDK 17\n        uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5\n        with:\n          java-version: '17'\n          distribution: 'temurin'\n          cache: 'maven'\n\n      - name: Build with Maven\n        run: mvn clean package -DskipTests\n\n      - name: Create Release\n        id: create_release\n        uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe # v2\n        with:\n          draft: true\n          files: |\n            tda/target/tda-*.jar\n            visualvm-lib-component/target/*.nbm\n            visualvm-logfile-component/target/*.nbm\n            visualvm-module/target/*.nbm\n        env:\n          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n"
  },
  {
    "path": ".gitignore",
    "content": "target/\n*.class\n*.jar\n*.war\n*.ear\n\n# IntelliJ IDEA\n.idea/\n*.iml\n*.iws\n*.ipr\nout/\n\n# NetBeans (just in case some remain or are recreated)\nnbproject/private/\nbuild/\nnbbuild/\ndist/\nnbdist/\nnbactions.xml\nnb-configuration.xml\n\n# Eclipse\n.settings/\n.classpath\n.project\n.metadata/\n\n# MacOS\n.DS_Store\n\n# Temporary files\n.output.txt"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# Changelog\n\nAll notable changes to TDA (Thread Dump Analyzer) will be documented in this file.\n\n## [3.0]\n### Features\n- Introduced logging for easier debugging in MCP mode, added red dot in UI mode if error occurred with tooltip to check logfile.\n- Experimental support for JSON based jmap thread dumps.\n- Support for SMR parsing in thread dumps (Java 11+)\n- Detect stuck Carrier Threads used by Virtual Threads in Java 21+ thread dumps.\n- Extended MCP Server for fetching pinned Carrier Threads.\n- Added a method to the MCP Server to enable the Agent to fetch a list of threads which are running in native code, including library information if available.\n- Reworked the thread dump summary to provide information in a more compact way.\n- MacOS Binary is now provided.\n- Use FlatLaf for a modern look and feel.\n\n### Bugfixes\n- Fixed address range parsing in thread titles for newer JVMs.\n- Fixed missing `protocolVersion` in MCP, which broke the Cursor Integration.\n\n## [2.6]\n### Features\n- TDA now is compiled with JDK 11, it requires Java 11 or higher to run, but still supports thread dumps from older JDKs.\n- Fixed issue #23: fixed long running thread detection with Java 11+.\n- The whole build now is based on maven, no more Netbeans needed for building.\n- Biggest new feature: include a mcp server for thread dump parsing from AI Agents.\n\n## [2.5]\n### Features\n- Added support for Java Virtual Threads (Project Loom) introduced in Java 19+\n- Can parse and analyze thread dumps containing virtual threads\n- Provides insights into virtual thread states and carrier thread relationships\n- Identifies virtual thread pinning issues\n- Updated parsing to handle Java 21 thread dump format\n\n## [2.4]\n- Compiled using JDK 1.8 so Source Level now is 1.8\n- Fixed #20: updated tda visual vm plugin to Visual VM 2.0\n- Fixed #21: fixed parsing of jdk 11 thread dumps.\n- Fixed colors for dark UIs\n- `tda.sh` can now be called from everywhere\n\n## [2.3]\n- Fixed locked main screen after closing a dialog using (x)\n- Use System Toolbar on MacOS.\n- Fixed crash in filters and categories.\n- Fixed missing \"Add Logfile\" Link in VisualVM if running on Windows.\n- Don't do any L&F changes if in plugin mode (JConsole or VisualVM)\n- Fixed broken init of native FileChooser Dialog.\n- Fixed crash while exiting the app.\n- Fixed font size problem in VisualVM plugin.\n- Removed obsolete Forum Link.\n\n## [2.2]\n- Added Drag and Drop of logfiles (GitHub Issue 1)\n- Use native File Dialog (GitHub Issue 1)\n- Fixed parsing of Java 8 Thread Dumps (GitHub Issue 6)\n- Fixed Crash in logfile parsing (Github Issue 2)\n- Fixed dumping of blocked threads in jconsole plugin.\n- Fixed issue TDA-31: class cast exception in predefined categories fallback.\n- Fixed issue TDA-35: improved unix shell script.\n\n## [2.1]\n- Implemented Issue 9: now parked threads using java.lang.concurrent are recognized.\n- Fixed Issue 26: no more lost filters in categories. Thanks to Robert Whitehurst.\n- Fixed Issue 27: Improved memory footprint, now parsed thread dump use about 20% less memory.\n- Fixed Issue 29: Closing of log files now works on windows.\n- Fixed Issue 30: Opening from welcome page now works on windows.\n- Fixed HTML if JDK 5.x is used.\n- Small Adjustments and Fixes.\n\n## [2.0]\n- Added last line parsed to the error message if an error occurs during parsing.\n- Fixed Issue 22, check for null if diffing dumps.\n- Fixed Issue 23, fixed parsing of remote VisualVM Dumps.\n- Fixes Issue 24, fixed parsing of monitors in VisualVM Dumps.\n- Bugfixing.\n\n## [1.6]\n- Tool now is available as VisualVM plugin.\n- Skip broken thread dumps.\n- Custom Thread Categories.\n- New Welcome Screen.\n- Small Adjustments to support SAP JVM Dumps (slightly modified from SUN Dumps).\n- Small Adjustments to support HP JVM Dumps (slightly modified from SUN Dumps).\n- Icons of monitors with high contention now have a red background (issue 13).\n- Multiple Selection of Threads (issue 11).\n- Stack line count is now also set in long running thread result (issue 19).\n- Read heap information from Sun JDK 1.6 Dumps and display them.\n- Thread Dumps or logfiles can be pasted from clipboard (issue 20).\n- Internationalisation (only english available so far, not finished yet).\n- Extended Help, now uses javahelp.\n- Bugfixing.\n\n## [1.5]\n- Added new filter rule \"stack line count greater as\".\n- Added clipboard operation in logfile view.\n- Enhanced Monitor View, added expand all nodes and sort by thread count to popup.\n- Added View operations for root tree.\n- Added Drag and Drop for new files to open.\n- Threads are now displayed in a table, the thread ids and native ids are transferred from hexadecimal to decimal.\n- Date parsing for Sun JDK 1.6 time stamps is added as default regex.\n- Bugfixed and reworked long running thread detection.\n- Extended Help Overview.\n- Bugfixing.\n\n## [1.4]\n- Added jconsole plugin support, TDA can now be used as jconsole plugin.\n- Added ability to request thread dumps via JMX if running as jconsole plugin.\n- JMX Dumps can be saved into logfile for later offline usage.\n- Session now can be stored to disk (and loaded again).\n- Extended help overview.\n- Major code cleanup.\n- Improved memory footprint.\n- Added splash-screen (JDK 1.6 only).\n- Bugfixing.\n\n## [1.3]\n- Full logfile is added as node (loaded up to specified size).\n- Added Thread Dump navigation into logfile.\n- Improved Deadlock analysis, additional hints concerning deadlocks found be JVM.\n- Fixed Issue 5.\n- Added toolbar (can be switched off).\n- Improved GTK Display for recent JDKs.\n- Bugfixing.\n\n## [1.2]\n- Improved Dump navigation.\n- Added context sensitive information about dumps.\n- Added jstack support.\n- Refactored Monitor-Display (threads now are only displayed once).\n- Bugfixing.\n\n## [1.1]\n- Ability to filter the threads display to be able to ignore e.g. idle threads.\n- Improved gui layout for better navigation (three pane view instead of two).\n- Added 1.5 and 1.6 parsing of thread dumps.\n- Opened Logfiles can be closed now.\n- Reworked help.\n- Links in help now open in external browser.\n- Added Forum link to help menu.\n- Improved GUI with better native Integration.\n- Added Webstart Deployment for easy installation.\n- Some font hacks to use GTK as native L&F on Linux and JDK 1.6.\n- Bugfixing.\n\n## [1.0]\n- Ability to open more than one logfile at a time.\n- History of recent opened files.\n- Multiple regex for date parsing in settings (but only one active).\n- Bugfixing.\n"
  },
  {
    "path": "LICENSE",
    "content": "                  GNU LESSER GENERAL PUBLIC LICENSE\n                       Version 2.1, February 1999\n\n Copyright (C) 1991, 1999 Free Software Foundation, Inc.\n 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n(This is the first released version of the Lesser GPL.  It also counts\n as the successor of the GNU Library Public License, version 2, hence\n the version number 2.1.)\n\n                            Preamble\n\n  The licenses for most software are designed to take away your\nfreedom to share and change it.  By contrast, the GNU General Public\nLicenses are intended to guarantee your freedom to share and change\nfree software--to make sure the software is free for all its users.\n\n  This license, the Lesser General Public License, applies to some\nspecially designated software packages--typically libraries--of the\nFree Software Foundation and other authors who decide to use it.  You\ncan use it too, but we suggest you first think carefully about whether\nthis license or the ordinary General Public License is the better\nstrategy to use in any particular case, based on the explanations below.\n\n  When we speak of free software, we are referring to freedom of use,\nnot price.  Our General Public Licenses are designed to make sure that\nyou have the freedom to distribute copies of free software (and charge\nfor this service if you wish); that you receive source code or can get\nit if you want it; that you can change the software and use pieces of\nit in new free programs; and that you are informed that you can do\nthese things.\n\n  To protect your rights, we need to make restrictions that forbid\ndistributors to deny you these rights or to ask you to surrender these\nrights.  These restrictions translate to certain responsibilities for\nyou if you distribute copies of the library or if you modify it.\n\n  For example, if you distribute copies of the library, whether gratis\nor for a fee, you must give the recipients all the rights that we gave\nyou.  You must make sure that they, too, receive or can get the source\ncode.  If you link other code with the library, you must provide\ncomplete object files to the recipients, so that they can relink them\nwith the library after making changes to the library and recompiling\nit.  And you must show them these terms so they know their rights.\n\n  We protect your rights with a two-step method: (1) we copyright the\nlibrary, and (2) we offer you this license, which gives you legal\npermission to copy, distribute and/or modify the library.\n\n  To protect each distributor, we want to make it very clear that\nthere is no warranty for the free library.  Also, if the library is\nmodified by someone else and passed on, the recipients should know\nthat what they have is not the original version, so that the original\nauthor's reputation will not be affected by problems that might be\nintroduced by others.\n\n  Finally, software patents pose a constant threat to the existence of\nany free program.  We wish to make sure that a company cannot\neffectively restrict the users of a free program by obtaining a\nrestrictive license from a patent holder.  Therefore, we insist that\nany patent license obtained for a version of the library must be\nconsistent with the full freedom of use specified in this license.\n\n  Most GNU software, including some libraries, is covered by the\nordinary GNU General Public License.  This license, the GNU Lesser\nGeneral Public License, applies to certain designated libraries, and\nis quite different from the ordinary General Public License.  We use\nthis license for certain libraries in order to permit linking those\nlibraries into non-free programs.\n\n  When a program is linked with a library, whether statically or using\na shared library, the combination of the two is legally speaking a\ncombined work, a derivative of the original library.  The ordinary\nGeneral Public License therefore permits such linking only if the\nentire combination fits its criteria of freedom.  The Lesser General\nPublic License permits more lax criteria for linking other code with\nthe library.\n\n  We call this license the \"Lesser\" General Public License because it\ndoes Less to protect the user's freedom than the ordinary General\nPublic License.  It also provides other free software developers Less\nof an advantage over competing non-free programs.  These disadvantages\nare the reason we use the ordinary General Public License for many\nlibraries.  However, the Lesser license provides advantages in certain\nspecial circumstances.\n\n  For example, on rare occasions, there may be a special need to\nencourage the widest possible use of a certain library, so that it becomes\na de-facto standard.  To achieve this, non-free programs must be\nallowed to use the library.  A more frequent case is that a free\nlibrary does the same job as widely used non-free libraries.  In this\ncase, there is little to gain by limiting the free library to free\nsoftware only, so we use the Lesser General Public License.\n\n  In other cases, permission to use a particular library in non-free\nprograms enables a greater number of people to use a large body of\nfree software.  For example, permission to use the GNU C Library in\nnon-free programs enables many more people to use the whole GNU\noperating system, as well as its variant, the GNU/Linux operating\nsystem.\n\n  Although the Lesser General Public License is Less protective of the\nusers' freedom, it does ensure that the user of a program that is\nlinked with the Library has the freedom and the wherewithal to run\nthat program using a modified version of the Library.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.  Pay close attention to the difference between a\n\"work based on the library\" and a \"work that uses the library\".  The\nformer contains code derived from the library, whereas the latter must\nbe combined with the library in order to run.\n\n                  GNU LESSER GENERAL PUBLIC LICENSE\n   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n  0. This License Agreement applies to any software library or other\nprogram which contains a notice placed by the copyright holder or\nother authorized party saying it may be distributed under the terms of\nthis Lesser General Public License (also called \"this License\").\nEach licensee is addressed as \"you\".\n\n  A \"library\" means a collection of software functions and/or data\nprepared so as to be conveniently linked with application programs\n(which use some of those functions and data) to form executables.\n\n  The \"Library\", below, refers to any such software library or work\nwhich has been distributed under these terms.  A \"work based on the\nLibrary\" means either the Library or any derivative work under\ncopyright law: that is to say, a work containing the Library or a\nportion of it, either verbatim or with modifications and/or translated\nstraightforwardly into another language.  (Hereinafter, translation is\nincluded without limitation in the term \"modification\".)\n\n  \"Source code\" for a work means the preferred form of the work for\nmaking modifications to it.  For a library, complete source code means\nall the source code for all modules it contains, plus any associated\ninterface definition files, plus the scripts used to control compilation\nand installation of the library.\n\n  Activities other than copying, distribution and modification are not\ncovered by this License; they are outside its scope.  The act of\nrunning a program using the Library is not restricted, and output from\nsuch a program is covered only if its contents constitute a work based\non the Library (independent of the use of the Library in a tool for\nwriting it).  Whether that is true depends on what the Library does\nand what the program that uses the Library does.\n\n  1. You may copy and distribute verbatim copies of the Library's\ncomplete source code as you receive it, in any medium, provided that\nyou conspicuously and appropriately publish on each copy an\nappropriate copyright notice and disclaimer of warranty; keep intact\nall the notices that refer to this License and to the absence of any\nwarranty; and distribute a copy of this License along with the\nLibrary.\n\n  You may charge a fee for the physical act of transferring a copy,\nand you may at your option offer warranty protection in exchange for a\nfee.\n\n  2. You may modify your copy or copies of the Library or any portion\nof it, thus forming a work based on the Library, and copy and\ndistribute such modifications or work under the terms of Section 1\nabove, provided that you also meet all of these conditions:\n\n    a) The modified work must itself be a software library.\n\n    b) You must cause the files modified to carry prominent notices\n    stating that you changed the files and the date of any change.\n\n    c) You must cause the whole of the work to be licensed at no\n    charge to all third parties under the terms of this License.\n\n    d) If a facility in the modified Library refers to a function or a\n    table of data to be supplied by an application program that uses\n    the facility, other than as an argument passed when the facility\n    is invoked, then you must make a good faith effort to ensure that,\n    in the event an application does not supply such function or\n    table, the facility still operates, and performs whatever part of\n    its purpose remains meaningful.\n\n    (For example, a function in a library to compute square roots has\n    a purpose that is entirely well-defined independent of the\n    application.  Therefore, Subsection 2d requires that any\n    application-supplied function or table used by this function must\n    be optional: if the application does not supply it, the square\n    root function must still compute square roots.)\n\nThese requirements apply to the modified work as a whole.  If\nidentifiable sections of that work are not derived from the Library,\nand can be reasonably considered independent and separate works in\nthemselves, then this License, and its terms, do not apply to those\nsections when you distribute them as separate works.  But when you\ndistribute the same sections as part of a whole which is a work based\non the Library, the distribution of the whole must be on the terms of\nthis License, whose permissions for other licensees extend to the\nentire whole, and thus to each and every part regardless of who wrote\nit.\n\nThus, it is not the intent of this section to claim rights or contest\nyour rights to work written entirely by you; rather, the intent is to\nexercise the right to control the distribution of derivative or\ncollective works based on the Library.\n\nIn addition, mere aggregation of another work not based on the Library\nwith the Library (or with a work based on the Library) on a volume of\na storage or distribution medium does not bring the other work under\nthe scope of this License.\n\n  3. You may opt to apply the terms of the ordinary GNU General Public\nLicense instead of this License to a given copy of the Library.  To do\nthis, you must alter all the notices that refer to this License, so\nthat they refer to the ordinary GNU General Public License, version 2,\ninstead of to this License.  (If a newer version than version 2 of the\nordinary GNU General Public License has appeared, then you can specify\nthat version instead if you wish.)  Do not make any other change in\nthese notices.\n\n  Once this change is made in a given copy, it is irreversible for\nthat copy, so the ordinary GNU General Public License applies to all\nsubsequent copies and derivative works made from that copy.\n\n  This option is useful when you wish to copy part of the code of\nthe Library into a program that is not a library.\n\n  4. You may copy and distribute the Library (or a portion or\nderivative of it, under Section 2) in object code or executable form\nunder the terms of Sections 1 and 2 above provided that you accompany\nit with the complete corresponding machine-readable source code, which\nmust be distributed under the terms of Sections 1 and 2 above on a\nmedium customarily used for software interchange.\n\n  If distribution of object code is made by offering access to copy\nfrom a designated place, then offering equivalent access to copy the\nsource code from the same place satisfies the requirement to\ndistribute the source code, even though third parties are not\ncompelled to copy the source along with the object code.\n\n  5. A program that contains no derivative of any portion of the\nLibrary, but is designed to work with the Library by being compiled or\nlinked with it, is called a \"work that uses the Library\".  Such a\nwork, in isolation, is not a derivative work of the Library, and\ntherefore falls outside the scope of this License.\n\n  However, linking a \"work that uses the Library\" with the Library\ncreates an executable that is a derivative of the Library (because it\ncontains portions of the Library), rather than a \"work that uses the\nlibrary\".  The executable is therefore covered by this License.\nSection 6 states terms for distribution of such executables.\n\n  When a \"work that uses the Library\" uses material from a header file\nthat is part of the Library, the object code for the work may be a\nderivative work of the Library even though the source code is not.\nWhether this is true is especially significant if the work can be\nlinked without the Library, or if the work is itself a library.  The\nthreshold for this to be true is not precisely defined by law.\n\n  If such an object file uses only numerical parameters, data\nstructure layouts and accessors, and small macros and small inline\nfunctions (ten lines or less in length), then the use of the object\nfile is unrestricted, regardless of whether it is legally a derivative\nwork.  (Executables containing this object code plus portions of the\nLibrary will still fall under Section 6.)\n\n  Otherwise, if the work is a derivative of the Library, you may\ndistribute the object code for the work under the terms of Section 6.\nAny executables containing that work also fall under Section 6,\nwhether or not they are linked directly with the Library itself.\n\n  6. As an exception to the Sections above, you may also combine or\nlink a \"work that uses the Library\" with the Library to produce a\nwork containing portions of the Library, and distribute that work\nunder terms of your choice, provided that the terms permit\nmodification of the work for the customer's own use and reverse\nengineering for debugging such modifications.\n\n  You must give prominent notice with each copy of the work that the\nLibrary is used in it and that the Library and its use are covered by\nthis License.  You must supply a copy of this License.  If the work\nduring execution displays copyright notices, you must include the\ncopyright notice for the Library among them, as well as a reference\ndirecting the user to the copy of this License.  Also, you must do one\nof these things:\n\n    a) Accompany the work with the complete corresponding\n    machine-readable source code for the Library including whatever\n    changes were used in the work (which must be distributed under\n    Sections 1 and 2 above); and, if the work is an executable linked\n    with the Library, with the complete machine-readable \"work that\n    uses the Library\", as object code and/or source code, so that the\n    user can modify the Library and then relink to produce a modified\n    executable containing the modified Library.  (It is understood\n    that the user who changes the contents of definitions files in the\n    Library will not necessarily be able to recompile the application\n    to use the modified definitions.)\n\n    b) Use a suitable shared library mechanism for linking with the\n    Library.  A suitable mechanism is one that (1) uses at run time a\n    copy of the library already present on the user's computer system,\n    rather than copying library functions into the executable, and (2)\n    will operate properly with a modified version of the library, if\n    the user installs one, as long as the modified version is\n    interface-compatible with the version that the work was made with.\n\n    c) Accompany the work with a written offer, valid for at\n    least three years, to give the same user the materials\n    specified in Subsection 6a, above, for a charge no more\n    than the cost of performing this distribution.\n\n    d) If distribution of the work is made by offering access to copy\n    from a designated place, offer equivalent access to copy the above\n    specified materials from the same place.\n\n    e) Verify that the user has already received a copy of these\n    materials or that you have already sent this user a copy.\n\n  For an executable, the required form of the \"work that uses the\nLibrary\" must include any data and utility programs needed for\nreproducing the executable from it.  However, as a special exception,\nthe materials to be distributed need not include anything that is\nnormally distributed (in either source or binary form) with the major\ncomponents (compiler, kernel, and so on) of the operating system on\nwhich the executable runs, unless that component itself accompanies\nthe executable.\n\n  It may happen that this requirement contradicts the license\nrestrictions of other proprietary libraries that do not normally\naccompany the operating system.  Such a contradiction means you cannot\nuse both them and the Library together in an executable that you\ndistribute.\n\n  7. You may place library facilities that are a work based on the\nLibrary side-by-side in a single library together with other library\nfacilities not covered by this License, and distribute such a combined\nlibrary, provided that the separate distribution of the work based on\nthe Library and of the other library facilities is otherwise\npermitted, and provided that you do these two things:\n\n    a) Accompany the combined library with a copy of the same work\n    based on the Library, uncombined with any other library\n    facilities.  This must be distributed under the terms of the\n    Sections above.\n\n    b) Give prominent notice with the combined library of the fact\n    that part of it is a work based on the Library, and explaining\n    where to find the accompanying uncombined form of the same work.\n\n  8. You may not copy, modify, sublicense, link with, or distribute\nthe Library except as expressly provided under this License.  Any\nattempt otherwise to copy, modify, sublicense, link with, or\ndistribute the Library is void, and will automatically terminate your\nrights under this License.  However, parties who have received copies,\nor rights, from you under this License will not have their licenses\nterminated so long as such parties remain in full compliance.\n\n  9. You are not required to accept this License, since you have not\nsigned it.  However, nothing else grants you permission to modify or\ndistribute the Library or its derivative works.  These actions are\nprohibited by law if you do not accept this License.  Therefore, by\nmodifying or distributing the Library (or any work based on the\nLibrary), you indicate your acceptance of this License to do so, and\nall its terms and conditions for copying, distributing or modifying\nthe Library or works based on it.\n\n  10. Each time you redistribute the Library (or any work based on the\nLibrary), the recipient automatically receives a license from the\noriginal licensor to copy, distribute, link with or modify the Library\nsubject to these terms and conditions.  You may not impose any further\nrestrictions on the recipients' exercise of the rights granted herein.\nYou are not responsible for enforcing compliance by third parties with\nthis License.\n\n  11. If, as a consequence of a court judgment or allegation of patent\ninfringement or for any other reason (not limited to patent issues),\nconditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot\ndistribute so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you\nmay not distribute the Library at all.  For example, if a patent\nlicense would not permit royalty-free redistribution of the Library by\nall those who receive copies directly or indirectly through you, then\nthe only way you could satisfy both it and this License would be to\nrefrain entirely from distribution of the Library.\n\nIf any portion of this section is held invalid or unenforceable under any\nparticular circumstance, the balance of the section is intended to apply,\nand the section as a whole is intended to apply in other circumstances.\n\nIt is not the purpose of this section to induce you to infringe any\npatents or other property right claims or to contest validity of any\nsuch claims; this section has the sole purpose of protecting the\nintegrity of the free software distribution system which is\nimplemented by public license practices.  Many people have made\ngenerous contributions to the wide range of software distributed\nthrough that system in reliance on consistent application of that\nsystem; it is up to the author/donor to decide if he or she is willing\nto distribute software through any other system and a licensee cannot\nimpose that choice.\n\nThis section is intended to make thoroughly clear what is believed to\nbe a consequence of the rest of this License.\n\n  12. If the distribution and/or use of the Library is restricted in\ncertain countries either by patents or by copyrighted interfaces, the\noriginal copyright holder who places the Library under this License may add\nan explicit geographical distribution limitation excluding those countries,\nso that distribution is permitted only in or among countries not thus\nexcluded.  In such case, this License incorporates the limitation as if\nwritten in the body of this License.\n\n  13. The Free Software Foundation may publish revised and/or new\nversions of the Lesser General Public License from time to time.\nSuch new versions will be similar in spirit to the present version,\nbut may differ in detail to address new problems or concerns.\n\nEach version is given a distinguishing version number.  If the Library\nspecifies a version number of this License which applies to it and\n\"any later version\", you have the option of following the terms and\nconditions either of that version or of any later version published by\nthe Free Software Foundation.  If the Library does not specify a\nlicense version number, you may choose any version ever published by\nthe Free Software Foundation.\n\n  14. If you wish to incorporate parts of the Library into other free\nprograms whose distribution conditions are incompatible with these,\nwrite to the author to ask for permission.  For software which is\ncopyrighted by the Free Software Foundation, write to the Free\nSoftware Foundation; we sometimes make exceptions for this.  Our\ndecision will be guided by the two goals of preserving the free status\nof all derivatives of our free software and of promoting the sharing\nand reuse of software generally.\n\n                            NO WARRANTY\n\n  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO\nWARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.\nEXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR\nOTHER PARTIES PROVIDE THE LIBRARY \"AS IS\" WITHOUT WARRANTY OF ANY\nKIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE\nLIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME\nTHE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\nWRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY\nAND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU\nFOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR\nCONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE\nLIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING\nRENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A\nFAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF\nSUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGES.\n\n                     END OF TERMS AND CONDITIONS\n\n           How to Apply These Terms to Your New Libraries\n\n  If you develop a new library, and you want it to be of the greatest\npossible use to the public, we recommend making it free software that\neveryone can redistribute and change.  You can do so by permitting\nredistribution under these terms (or, alternatively, under the terms of the\nordinary General Public License).\n\n  To apply these terms, attach the following notices to the library.  It is\nsafest to attach them to the start of each source file to most effectively\nconvey the exclusion of warranty; and each file should have at least the\n\"copyright\" line and a pointer to where the full notice is found.\n\n    {description}\n    Copyright (C) {year} {fullname}\n\n    This library is free software; you can redistribute it and/or\n    modify it under the terms of the GNU Lesser General Public\n    License as published by the Free Software Foundation; either\n    version 2.1 of the License, or (at your option) any later version.\n\n    This library is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n    Lesser General Public License for more details.\n\n    You should have received a copy of the GNU Lesser General Public\n    License along with this library; if not, write to the Free Software\n    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301\n    USA\n\nAlso add information on how to contact you by electronic and paper mail.\n\nYou should also get your employer (if you work as a programmer) or your\nschool, if any, to sign a \"copyright disclaimer\" for the library, if\nnecessary.  Here is a sample; alter the names:\n\n  Yoyodyne, Inc., hereby disclaims all copyright interest in the\n  library `Frob' (a library for tweaking knobs) written by James Random\n  Hacker.\n\n  {signature of Ty Coon}, 1 April 1990\n  Ty Coon, President of Vice\n\nThat's all there is to it!\n"
  },
  {
    "path": "README.md",
    "content": "[![Java CI with Maven](https://github.com/irockel/tda/actions/workflows/build.yml/badge.svg)](https://github.com/irockel/tda/actions/workflows/build.yml)\n[![Renovate](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://github.com/irockel/tda/issues?q=is%3Aissue+is%3Aopen+label%3Adependencies)\n[![Dependencies](https://img.shields.io/librariesio/github/irockel/tda)](https://libraries.io/github/irockel/tda)\n[![License](https://img.shields.io/github/license/irockel/tda)](LICENSE)\n\n# TDA - Thread Dump Analyzer\n\n> [!IMPORTANT]\n> **2026-01-30 - TDA 3.0 is now available!** 🚀\n> This major release brings significant enhancements:\n> *   **Extended MCP Server**: Now with **Carrier Thread Pinning** detection and support for **SMR (Safe Memory Relocation)** parsing.\n> *   **Modernized UI**: Completely refreshed look and feel using **FlatLaf**.\n> *   **Usability Improvements**: Fixed several long-standing issues, including improved split-pane management and faster parsing.\n> *   **Native macOS Support**: Now providing a dedicated macOS binary.\n> *   **Logging**: Especially for troubleshooting in MCP Mode.\n\nTDA (Thread Dump Analyzer) for Java is a powerful yet lightweight Swing GUI and **MCP Server** for analyzing Thread Dumps and Heap \nInformation generated by the Java VM. It is designed to assist in diagnosing performance issues, deadlocks, and \nmemory problems in Java applications. With its MCP capabilities, TDA can be seamlessly integrated into AI-powered \ndevelopment workflows.\n\nTDA supports Java 1.4.x through Java 21+, including specialized support for **Virtual Threads** (Java 19+) and **JSON-based thread dumps** \n(Java 21+, experimental).\n\n## 📋 Table of Contents\n- [🚀 Key Features](#-key-features)\n- [📦 Installation](#-installation)\n  - [1. Self-contained JAR](#1-self-contained-jar)\n  - [2. VisualVM Plugin](#2-visualvm-plugin)\n  - [3. macOS Binary (DMG)](#3-macos-binary-dmg)\n- [🛠 Usage Modes](#-usage-modes)\n  - [1. Standalone Application](#1-standalone-application)\n  - [2. JConsole Plugin](#2-jconsole-plugin)\n  - [3. VisualVM Plugin](#3-visualvm-plugin-1)\n  - [4. JSON-based Thread Dumps (Experimental)](#4-json-based-thread-dumps-experimental)\n  - [5. MCP Server (Headless Analysis)](#5-mcp-server-headless-analysis)\n- [🏗 Building from Source](#-building-from-source)\n- [🛠️ Troubleshooting](#-troubleshooting)\n- [📜 Changelog](CHANGELOG.md)\n- [📜 License](LICENSE)\n\n## 🚀 Key Features\n\n*   **Comprehensive Thread Dump Parsing**: Parse multiple thread dumps from log files and display them in an intuitive tree structure.\n*   **Virtual Threads Support**: Analyze virtual thread states, pinning issues, and carrier thread relationships.\n*   **Statistical Analysis**: Detailed statistics about thread states, monitors, and waiting/locking threads.\n*   **Long-Running Thread Detection**: Identify threads that persist across multiple dumps, helping find \"hung\" or inefficient code.\n*   **Deadlock Detection**: Automatic identification of deadlocks with detailed monitor information.\n*   **JSON-based Thread Dumps**: Support for parsing JSON-formatted thread dumps created with `jcmd <pid> Thread.dump_to_file -format=json <file>`.\n    *Note: JSON dumps currently provide basic information (name, tid, stack trace) but lack details like thread states or native IDs. For comprehensive analysis, textual dumps are recommended.*\n*   **Class Histogram Analysis**: Integrated analysis of heap objects (via `-XX:+PrintClassHistogram`).\n*   **Flexible Filtering & Categorization**: Use custom filters and categories to manage large numbers of threads.\n*   **Model Context Protocol (MCP) Support**: Headless analysis mode for integration with AI tools like Cursor, Junie, or Claude Desktop.\n*   **Session Management**: Save and reopen analysis sessions.\n\n---\n\n## 📦 Installation\n\nTDA can be installed or used in several ways:\n\n### 1. Self-contained JAR\nThe simplest way to use TDA is to download the `tda.jar` from the **Releases** page. Since it's a self-contained JAR, you can run it directly on any system with Java installed.\n\n### 2. VisualVM Plugin\nTDA is available as a plugin for VisualVM. You can install it directly from the **VisualVM Plugin Center** (Tools -> Plugins). \nThis integrates TDA's analysis capabilities directly into your VisualVM environment. The last available version in the plugin center is 2.4. \nFor installing the recent version, download the three nbm files from the Releases page and install them manually in the VisualVM plugins settings.\n\n### 3. macOS Binary (DMG)\nTDA provides a native macOS DMG package for easier installation. This package includes its own Java runtime, so no separate Java installation is required to run it.\n\n#### Installation (Unsigned Binary)\nSince the DMG is currently unsigned, macOS will block it by default with a warning that the \"developer cannot be verified\". To install and run TDA:\n\n1.  Download the `TDA-<version>.dmg` from the Releases page.\n2.  Open the DMG and drag **TDA.app** to your **Applications** folder.\n3.  **Right-click** (or Control-click) on `TDA.app` in your Applications folder and select **Open**.\n4.  A dialog will appear asking if you are sure you want to open it. Click **Open**. \n5.  After this first launch, you can open TDA normally from Launchpad or Spotlight.\n\nIf this fails, you might need to confirm the installation from the system settings. For this just follow the instructions after clicking on the '?' Icon on the upper right corner of the error dialog.\n\n---\n\n## 🛠 Usage Modes\n\nTDA can be used in four different ways to suit your environment:\n\n### 1. Standalone Application\nThe most common way to use TDA for offline analysis of production log files. (See **[Installation](#1-self-contained-jar)** for how to get the JAR).\n\n**How to run:**\n```bash\njava -Xmx512m -jar tda.jar\n```\nOnce opened, you can add log files containing thread dumps. TDA will parse them and display them in the tree view. If you\nhave several or big log files, you might need to adjust the memory allocation by increasing the `-Xmx` flag.\n\n<div style=\"text-align: center;\"><img src=\"./tda-main-screen.png\" alt=\"TDA Main Screen\" width=\"600\"></div>\n\n#### Important Features:\n*   **Thread Dump Tree**: Navigate through all detected dumps in a log file.\n*   **Regular Expression for Timestamps**: Since thread dumps often lack timestamps, you can provide a regex to correlate dumps with log entries.\n*   **Find Long Running Threads**: Compare consecutive dumps to see which threads haven't moved.\n*   **Filters & Categories**: Group threads by name or state to reduce noise.\n*   **Monitors & Deadlocks**: Detailed view of monitor usage and automatic deadlock detection.\n\n### 2. JConsole Plugin\nAnalyze a running application directly within JConsole. This is particularly useful for production environments where \nyou need to quickly inspect the state of a live system. The plugin is part of the standalone jar, which needs to be downloaded for this.\n\n**How to use:**\nStart JConsole with the TDA plugin:\n```bash\njconsole -pluginpath tda.jar\n```\nA new \"Thread Dumps\" tab will appear. From here, you can:\n*   **Request Thread Dumps**: Generate fresh dumps directly from the connected JVM.\n*   **Analyze in Real-time**: Use all of TDA's parsing and analysis features on the live data.\n\n### 3. VisualVM Plugin\nTDA is also available as a plugin for VisualVM. You can install it directly from the **VisualVM Plugin Center**. \nIt provides the same powerful analysis tools integrated into your VisualVM workflow. (See **[Installation](#2-visualvm-plugin)** for details).\n\n### 4. JSON-based Thread Dumps (Experimental)\nNewer JDK versions allow generating thread dumps in JSON format using:\n```bash\njcmd <pid> Thread.dump_to_file -format=json <file>\n```\nTDA can parse these files, but please note that the information provided in the JSON format is currently more basic than the traditional textual output. For example, it often lacks detailed thread states (like `MONITOR_WAIT` vs `WAITING`) or native thread IDs (`nid`). \n\n**Recommendation:** For in-depth analysis of deadlocks, monitor contention, or specific thread states, the **textual thread dump format is still preferred**.\n\n### 5. MCP Server (Headless Analysis)\nFor integration with AI tools (like Cursor, Junie, or Claude Desktop) or automated pipelines, \nTDA can run as a **Model Context Protocol (MCP)** server. This allows for headless analysis of thread dumps using \nAI assistance. You need to download the standalone jar for this.\n\nThere's also an [articel on dev.to](https://dev.to/irockel/stop-reading-raw-stacktraces-ai-powered-java-thread-dump-analysis-with-mcp-4673) about how to use TDA as an MCP server.\n\n#### How to run:\n```bash\njava -Djava.awt.headless=true -jar tda.jar --mcp\n```\n\n#### Integration Example (Junie/Cursor):\n```json\n{\n  \"mcpServers\": {\n    \"tda\": {\n      \"command\": \"java\",\n      \"args\": [\"-Djava.awt.headless=true\", \"-jar\", \"path/to/tda.jar\", \"--mcp\"]\n    }\n  }\n}\n```\n\n#### Available Tools\n\nThe MCP server exposes the following tools:\n\n| Tool                | Arguments                 | Description                                                                                    |\n|:--------------------|:--------------------------|:-----------------------------------------------------------------------------------------------|\n| `parse_log`         | `path` (string, required) | Parses a log file containing Java thread dumps. This must be the first action for a log file.  |\n| `get_summary`       | None                      | Returns a summary of all parsed thread dumps (index, name, timestamp, thread/deadlock counts). |\n| `check_deadlocks`   | None                      | Checks for and returns information about any deadlocks detected in the parsed thread dumps.    |\n| `find_long_running` | None                      | Identifies threads that remain in the same state/stack trace across consecutive dumps.         |\n| `analyze_virtual_threads` | None                  | Detects virtual threads where the carrier thread is stuck in application code.                |\n| `get_native_threads` | `dump_index` (int, required) | Returns a list of all threads in a native method for a specific thread dump.                   |\n| `get_zombie_threads` | None                      | Returns a list of zombie threads (unresolved SMR addresses) with timestamps and dump names. |\n| `clear`             | None                      | Resets the server state and clears the internal thread store for a new log file.               |\n\n#### 🤖 AI Agent Configuration (Cursor / Junie)\n\nTo ensure that AI agents use TDA efficiently and don't attempt to read large log files directly (which is slow and expensive), you should configure a **System Prompt**.\n\n##### Global Configuration (Recommended):\nInstead of project-wise rules, you can configure these instructions globally:\n\n*   **Cursor**: Go to **Settings** -> **General** -> **Rules for AI** and add the recommended system prompt there.\n*   **Junie**: Create or edit the file `~/.junie/instructions.md` and add the recommended system prompt.\n\n##### Project-wise Configuration:\nIf you prefer project-specific rules:\n\n*   **Cursor**: Add the recommended system prompt to your `.cursorrules` file in the project root.\n*   **Junie**: Add the recommended system prompt to your `.junie/instructions.md` file in the project root.\n\n##### Recommended System Prompt:\n```markdown\nWhen you encounter a log file that appears to contain Java thread dumps:\n1. DO NOT try to read or \"cat\" the entire file if it's large.\n2. Use the `tda-analyzer` MCP toolset.\n3. First, call `parse_log(path=\"...\")` to initialize the analysis.\n4. Use `get_summary()`, `check_deadlocks()`, `find_long_running()`, `analyze_virtual_threads()`, `get_native_threads()`, and `get_zombie_threads()` to perform the analysis.\n5. Provide your insights based on the structured data returned by these tools rather than the raw log text.\n```\nThis configuration makes the analysis much faster and significantly reduces token usage.\n\n---\n\n## 🏗 Building from Source\n\nTDA is built using Maven. It requires **Java 11** or higher to build and run.\n\n```bash\nmvn clean package\n```\nThis will build all components:\n*   The standalone TDA JAR (in `tda/target/tda-x.x.jar`).\n*   The VisualVM plugins as NBM files (in the `target/` directory of each `visualvm-*` module).\n\nTo build the macOS DMG package, use the `release` profile (requires macOS and JDK 17+):\n\n```bash\nmvn clean package -Prelease\n```\n\nThe resulting standalone JAR will also be located in the `tda/target/` directory.\n\n---\n\n## 🛠️ Troubleshooting\n\nIf you encounter issues while using TDA, check the following sections for guidance.\n\n### 1. Logging\nTDA maintains a centralized log file to help diagnose issues. If something isn't working as expected, the log file is the first place to look.\n\n#### Log File Locations\n*   **macOS**: `~/Library/Logs/TDA/tda.log`\n*   **Windows**: `%LOCALAPPDATA%\\TDA\\Logs\\tda.log`\n*   **Linux/Unix**: `~/.tda/logs/tda.log`\n\n#### Error Indicators (UI Mode)\nIn standalone or plugin mode, TDA will display a **red dot** in the status bar (next to the memory indicator) if a critical error has occurred. Hover over the dot to see a tooltip reminding you to check the log file.\n\n### 2. MCP Server Specifics\nRunning TDA as a headless MCP server has specific requirements:\n\n*   **Headless Environment**: Ensure you pass `-Djava.awt.headless=true` when running the JAR. TDA is a Swing-based application, and the MCP mode must bypass UI initialization.\n*   **Std-in/Std-out Pollution**: The MCP protocol communicates via `stdin` and `stdout`. Avoid using any commands or scripts that print additional information to `stdout`, as this will corrupt the JSON-RPC stream and cause the AI client to lose connection.\n*   **Absolute Paths**: When calling `parse_log`, always use **absolute paths** for the log file. The working directory of the MCP server might not be what you expect depending on how your AI client (e.g., Claude Desktop) launches it.\n*   **Permissions**: Ensure the user running the AI client has read permissions for the log files being analyzed.\n\n### 3. Memory Management\nThread dumps from large production systems can be hundreds of megabytes. \n\n*   **OutOfMemoryErrors**: If TDA crashes or fails to parse a large file, increase the heap size using the `-Xmx` flag:\n    ```bash\n    java -Xmx2g -jar tda.jar\n    ```\n*   **Max Logfile Size**: TDA has a safety limit for log file sizes. You can adjust this in the **Preferences** dialog (UI mode) or by manually editing the configuration if necessary.\n\n---\n\n## 📜 License\nTDA is licensed under the **Lesser GNU General Public License (LGPL)**.\n\n---\n*For more detailed information, please refer to the source code. The wiki has been removed because it was outdated.*\n\n"
  },
  {
    "path": "docs/index.html",
    "content": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>TDA - Java Thread Dump Analyzer | Free Open Source Tool</title>\n    <meta name=\"description\" content=\"TDA (Thread Dump Analyzer) is a powerful, free, and open-source tool for parsing and analyzing Java thread dumps. Identify deadlocks, performance bottlenecks, and monitor contention with ease.\">\n    <meta name=\"keywords\" content=\"Java, Thread Dump, Analyzer, TDA, Deadlock Detection, Performance Tuning, JVM, VisualVM Plugin, JConsole Plugin, MCP Server, Open Source\">\n    \n    <!-- Open Graph / Facebook -->\n    <meta property=\"og:type\" content=\"website\">\n    <meta property=\"og:url\" content=\"https://irockel.github.io/tda/\">\n    <meta property=\"og:title\" content=\"TDA - Java Thread Dump Analyzer\">\n    <meta property=\"og:description\" content=\"Analyze Java thread dumps effortlessly. Detect deadlocks and performance issues with TDA, the free open-source analyzer.\">\n    <meta property=\"og:image\" content=\"https://irockel.github.io/tda/tda-main-screen.png\">\n\n    <!-- Twitter -->\n    <meta property=\"twitter:card\" content=\"summary_large_image\">\n    <meta property=\"twitter:url\" content=\"https://irockel.github.io/tda/\">\n    <meta property=\"twitter:title\" content=\"TDA - Java Thread Dump Analyzer\">\n    <meta property=\"twitter:description\" content=\"Analyze Java thread dumps effortlessly. Detect deadlocks and performance issues with TDA, the free open-source analyzer.\">\n    <meta property=\"twitter:image\" content=\"https://irockel.github.io/tda/tda-main-screen.png\">\n\n    <link rel=\"canonical\" href=\"https://irockel.github.io/tda/\">\n    <script src=\"https://cdn.tailwindcss.com\"></script>\n    <link rel=\"stylesheet\" href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/7.0.1/css/all.min.css\">\n    <!-- GitHub Buttons -->\n    <script async defer src=\"https://buttons.github.io/buttons.js\"></script>\n    <style>\n        @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;600;700&display=swap');\n        body { font-family: 'Inter', sans-serif; }\n        .gradient-bg { background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%); }\n    </style>\n</head>\n<body class=\"bg-slate-50 text-slate-900\">\n\n    <header class=\"relative text-white pb-20 pt-10 overflow-hidden\">\n        <!-- Background Image with Overlay -->\n        <div class=\"absolute inset-0 z-0\">\n            <img src=\"welcome.png\" alt=\"TDA Welcome Screen Background\" class=\"w-full h-full object-cover\">\n            <div class=\"absolute inset-0 bg-slate-900/80\"></div>\n        </div>\n\n        <nav class=\"relative z-10 container mx-auto px-6 flex justify-between items-center mb-16\">\n            <div class=\"flex items-center space-x-3\">\n                <img src=\"TDA.png\" alt=\"TDA - Java Thread Dump Analyzer Logo\" class=\"w-10 h-10 shadow-lg rounded-lg\">\n                <span class=\"text-2xl font-bold tracking-tight\">TDA</span>\n            </div>\n            <div class=\"hidden md:flex space-x-8 items-center\">\n                <a href=\"#features\" class=\"hover:text-blue-400 transition\">Features</a>\n                <a href=\"https://github.com/irockel/tda#readme\" class=\"hover:text-blue-400 transition\">Documentation</a>\n                <a href=\"#download\" class=\"hover:text-blue-400 transition\">Download</a>\n                <a href=\"https://github.com/irockel/tda\" class=\"bg-blue-600 hover:bg-blue-700 px-5 py-2 rounded-full font-semibold transition flex items-center\">\n                    <i class=\"fab fa-github mr-2\"></i> GitHub\n                </a>\n            </div>\n        </nav>\n\n        <div class=\"relative z-10 container mx-auto px-6 text-center\">\n            <h1 class=\"text-4xl md:text-6xl font-extrabold mb-6 leading-tight\">\n                Analyze Java Thread Dumps <br><span class=\"text-blue-400\">with Ease</span>\n            </h1>\n            <p class=\"text-xl text-slate-300 mb-6 max-w-2xl mx-auto\">\n                TDA (Thread Dump Analyzer) is a powerful tool for parsing and analyzing Java thread dumps, helping you identify performance bottlenecks and deadlocks in seconds.\n            </p>\n            <!-- TDA 3.0 Announcement Box -->\n            <div class=\"mb-12 inline-block bg-blue-600/30 backdrop-blur-md border border-blue-400/50 rounded-2xl p-6 text-left max-w-3xl mx-auto shadow-2xl\">\n                <div class=\"flex items-center mb-4\">\n                    <span class=\"bg-blue-500 text-white text-xs font-black px-3 py-1 rounded-full uppercase tracking-wider mr-3\">New Release</span>\n                    <h2 class=\"text-2xl font-bold text-white\">TDA 3.0 is here! 🚀</h2>\n                </div>\n                <p class=\"text-blue-100 mb-4 font-medium\">\n                    This major update modernizes the TDA experience and brings powerful new analysis capabilities to both the GUI and the MCP server.\n                </p>\n                <ul class=\"grid grid-cols-1 md:grid-cols-2 gap-x-6 gap-y-2 text-sm text-slate-200\">\n                    <li class=\"flex items-start\"><i class=\"fas fa-check-circle text-blue-400 mt-1 mr-2\"></i> <span><b>Carrier Thread Pinning</b> detection in MCP</span></li>\n                    <li class=\"flex items-start\"><i class=\"fas fa-check-circle text-blue-400 mt-1 mr-2\"></i> <span><b>SMR (Safe Memory Reclamation)</b> parsing (also in MCP)</span></li>\n                    <li class=\"flex items-start\"><i class=\"fas fa-check-circle text-blue-400 mt-1 mr-2\"></i> <span><b>Native Stack Information in MCP</b> parsing</span></li>\n                    <li class=\"flex items-start\"><i class=\"fas fa-check-circle text-blue-400 mt-1 mr-2\"></i> <span>Modern UI with <b>FlatLaf</b></span></li>\n                    <li class=\"flex items-start\"><i class=\"fas fa-check-circle text-blue-400 mt-1 mr-2\"></i> <span>Improved split-pane & usability fixes</span></li>\n                    <li class=\"flex items-start\"><i class=\"fas fa-check-circle text-blue-400 mt-1 mr-2\"></i> <span>Logging for Troubleshooting in MCP Mode</span></li>\n                </ul>\n            </div>\n\n            <div class=\"mb-10\">\n                <span class=\"inline-flex items-center px-4 py-1.5 rounded-full text-sm font-bold bg-blue-500/20 text-blue-300 border border-blue-500/30\">\n                    <i class=\"fas fa-unlock-alt mr-2\"></i> Free & Open Source\n                </span>\n            </div>\n            <div class=\"flex flex-col sm:flex-row justify-center items-center space-y-4 sm:space-y-0 sm:space-x-4\">\n                <a href=\"#download\" class=\"bg-blue-600 hover:bg-blue-700 text-white px-8 py-4 rounded-xl font-bold text-lg transition shadow-xl\">\n                    Get TDA Now\n                </a>\n                <a href=\"https://github.com/irockel/tda\" class=\"bg-slate-800 hover:bg-slate-700 text-white px-8 py-4 rounded-xl font-bold text-lg transition border border-slate-700\">\n                    View Repository\n                </a>\n            </div>\n            <!-- Mobile/Secondary Buttons -->\n            <div class=\"mt-8 flex justify-center items-center space-x-4\">\n                <div class=\"flex items-center h-[28px]\">\n                    <a class=\"github-button\" href=\"https://github.com/irockel/tda\" data-color-scheme=\"no-preference: dark; light: dark; dark: dark;\" data-icon=\"octicon-star\" data-size=\"large\" data-show-count=\"true\" aria-label=\"Star irockel/tda on GitHub\">Star</a>\n                </div>\n                <div class=\"flex items-center h-[28px] -translate-y-[3px]\">\n                    <a href=\"https://github.com/irockel/tda/releases/latest\" class=\"flex items-center\">\n                        <img src=\"https://img.shields.io/github/downloads/irockel/tda/total?color=2563eb&label=downloads&logo=github&style=for-the-badge\" alt=\"GitHub downloads\" class=\"h-[26px]\">\n                    </a>\n                </div>\n            </div>\n        </div>\n    </header>\n\n    <!-- Main Content -->\n    <main class=\"container mx-auto px-6 mt-8\">\n        <!-- Features -->\n        <section id=\"features\" class=\"mb-24 pt-8\">\n            <h2 class=\"text-3xl font-bold text-center mb-16\">Why use TDA?</h2>\n            <div class=\"grid md:grid-cols-2 lg:grid-cols-4 gap-12\">\n                <div class=\"bg-white p-8 rounded-2xl shadow-sm border border-slate-100 hover:shadow-md transition\">\n                    <div class=\"w-12 h-12 bg-blue-100 text-blue-600 rounded-lg flex items-center justify-center mb-6\">\n                        <i class=\"fas fa-search text-xl\"></i>\n                    </div>\n                    <h3 class=\"text-xl font-bold mb-4\">Deep Parsing</h3>\n                    <p class=\"text-slate-600\">Automatically parses standard thread dumps, including those from Oracle/Sun HotSpot and IBM JVMs.</p>\n                </div>\n                <div class=\"bg-white p-8 rounded-2xl shadow-sm border border-slate-100 hover:shadow-md transition\">\n                    <div class=\"w-12 h-12 bg-green-100 text-green-600 rounded-lg flex items-center justify-center mb-6\">\n                        <i class=\"fas fa-skull-crossbones text-xl\"></i>\n                    </div>\n                    <h3 class=\"text-xl font-bold mb-4\">Deadlock Detection</h3>\n                    <p class=\"text-slate-600\">Quickly identifies circular dependencies and locking issues that cause application freezes.</p>\n                </div>\n                <div class=\"bg-white p-8 rounded-2xl shadow-sm border border-slate-100 hover:shadow-md transition\">\n                    <div class=\"w-12 h-12 bg-purple-100 text-purple-600 rounded-lg flex items-center justify-center mb-6\">\n                        <i class=\"fas fa-clock text-xl\"></i>\n                    </div>\n                    <h3 class=\"text-xl font-bold mb-4\">Historical Diff</h3>\n                    <p class=\"text-slate-600\">Compare multiple dumps to see thread movement over time and find long-running operations.</p>\n                </div>\n                <div class=\"bg-white p-8 rounded-2xl shadow-sm border border-slate-100 hover:shadow-md transition\">\n                    <div class=\"w-12 h-12 bg-orange-100 text-orange-600 rounded-lg flex items-center justify-center mb-6\">\n                        <i class=\"fas fa-robot text-xl\"></i>\n                    </div>\n                    <h3 class=\"text-xl font-bold mb-4\">AI-Ready MCP Server</h3>\n                    <p class=\"text-slate-600\">Integrate with AI agents like Cursor or Claude via the Model Context Protocol for automated analysis.</p>\n                </div>\n            </div>\n        </section>\n\n        <!-- Screenshot -->\n        <div class=\"bg-white rounded-2xl shadow-sm p-2 md:p-4 mb-20 overflow-hidden border border-slate-200\">\n            <img src=\"tda-main-screen.png\" alt=\"TDA Main Application Screen showing thread dump analysis\" class=\"rounded-xl w-full h-auto\">\n        </div>\n\n        <!-- Usage Modes -->\n        <section class=\"mb-24 bg-slate-100 -mx-6 px-6 py-20 rounded-3xl\">\n            <div class=\"max-w-4xl mx-auto\">\n                <h2 class=\"text-3xl font-bold text-center mb-12\">Flexible Usage</h2>\n                <div class=\"space-y-6\">\n                    <div class=\"flex items-start space-x-4 bg-white p-6 rounded-xl shadow-sm\">\n                        <div class=\"text-blue-600 mt-1\"><i class=\"fas fa-check-circle\"></i></div>\n                        <div>\n                            <h4 class=\"font-bold\">Standalone App</h4>\n                            <p class=\"text-slate-600\">Run TDA as a local application for offline analysis of log files.</p>\n                        </div>\n                    </div>\n                    <div class=\"flex items-start space-x-4 bg-white p-6 rounded-xl shadow-sm\">\n                        <div class=\"text-blue-600 mt-1\"><i class=\"fas fa-check-circle\"></i></div>\n                        <div>\n                            <h4 class=\"font-bold\">VisualVM Plugin</h4>\n                            <p class=\"text-slate-600\">Integrate directly into your VisualVM workflow for seamless analysis.</p>\n                        </div>\n                    </div>\n                    <div class=\"flex items-start space-x-4 bg-white p-6 rounded-xl shadow-sm\">\n                        <div class=\"text-blue-600 mt-1\"><i class=\"fas fa-check-circle\"></i></div>\n                        <div>\n                            <h4 class=\"font-bold\">JConsole Plugin</h4>\n                            <p class=\"text-slate-600\">Analyze running applications in real-time within JConsole.</p>\n                        </div>\n                    </div>\n                    <div class=\"flex items-start space-x-4 bg-white p-6 rounded-xl shadow-sm\">\n                        <div class=\"text-blue-600 mt-1\"><i class=\"fas fa-check-circle\"></i></div>\n                        <div>\n                            <h4 class=\"font-bold\">MCP Server (Headless)</h4>\n                            <p class=\"text-slate-600\">Run TDA as a Model Context Protocol server for AI-powered, headless analysis in your terminal or IDE.</p>\n                        </div>\n                    </div>\n                </div>\n\n                <!-- Documentation Hint -->\n                <div class=\"mt-16 bg-blue-50 border border-blue-100 rounded-2xl p-8 text-center\">\n                    <h3 class=\"text-xl font-bold mb-4\">Need more details?</h3>\n                    <p class=\"text-slate-600 mb-6\">\n                        Complete documentation, including installation guides, usage examples, and advanced configuration, is available in the project's README.\n                    </p>\n                    <a href=\"https://github.com/irockel/tda#readme\" class=\"inline-flex items-center text-blue-600 font-semibold hover:text-blue-700 transition\">\n                        <i class=\"fas fa-book-open mr-2\"></i> Read the Documentation on GitHub\n                    </a>\n                </div>\n            </div>\n        </section>\n\n        <!-- Download Section -->\n        <section id=\"download\" class=\"mb-24 text-center\">\n            <h2 class=\"text-3xl font-bold mb-6\">Download Latest Version</h2>\n            <p class=\"text-slate-600 mb-12 max-w-xl mx-auto\">TDA is available for multiple platforms. Download the one that fits your needs.</p>\n            \n            <div class=\"grid md:grid-cols-3 gap-8\">\n                <!-- JAR -->\n                <div class=\"bg-white p-8 rounded-2xl shadow-lg border-2 border-blue-500 flex flex-col items-center scale-105 relative\">\n                    <span class=\"absolute top-0 right-0 bg-blue-500 text-white text-xs px-3 py-1 rounded-bl-lg rounded-tr-xl font-bold uppercase tracking-wider\">Recommended</span>\n                    <i class=\"fas fa-file-code text-4xl text-blue-600 mb-4\"></i>\n                    <h3 class=\"text-xl font-bold mb-2\">Java self-contained JAR</h3>\n                    <p class=\"text-sm text-slate-500 mb-6\">Requires Java installed, run with java -jar</p>\n                    <a href=\"https://github.com/irockel/tda/releases/latest\" class=\"w-full bg-blue-600 text-white py-3 rounded-lg font-semibold hover:bg-blue-700 transition\">\n                        Download JAR\n                    </a>\n                </div>\n                <!-- macOS -->\n                <div class=\"bg-white p-8 rounded-2xl shadow-lg border-2 border-slate-100 flex flex-col items-center\">\n                    <i class=\"fab fa-apple text-4xl text-slate-900 mb-4\"></i>\n                    <h3 class=\"text-xl font-bold mb-2\">macOS App</h3>\n                    <p class=\"text-sm text-slate-500 mb-6\">Native DMG with bundled JRE</p>\n                    <a href=\"https://github.com/irockel/tda/releases/latest\" class=\"w-full bg-slate-900 text-white py-3 rounded-lg font-semibold hover:bg-slate-800 transition\">\n                        Download DMG\n                    </a>\n                </div>\n                <!-- Plugins -->\n                <div class=\"bg-white p-8 rounded-2xl shadow-lg border-2 border-slate-100 flex flex-col items-center\">\n                    <i class=\"fas fa-plug text-4xl text-purple-600 mb-4\"></i>\n                    <h3 class=\"text-xl font-bold mb-2\">IDE Plugins</h3>\n                    <p class=\"text-sm text-slate-500 mb-6\">VisualVM & JConsole</p>\n                    <a href=\"https://github.com/irockel/tda/releases/latest\" class=\"w-full bg-slate-900 text-white py-3 rounded-lg font-semibold hover:bg-slate-800 transition\">\n                        Get Plugins\n                    </a>\n                </div>\n            </div>\n        </section>\n    </main>\n\n    <!-- Footer -->\n    <footer class=\"bg-slate-900 text-slate-400 py-12\">\n        <div class=\"container mx-auto px-6 flex flex-col md:flex-row justify-between items-center\">\n            <div class=\"flex items-center space-x-3 mb-6 md:mb-0\">\n                <img src=\"TDA.png\" alt=\"TDA - Java Thread Dump Analyzer Icon\" class=\"w-6 h-6 grayscale opacity-50\">\n                <span class=\"text-white font-bold tracking-tight\">TDA</span>\n            </div>\n            <div class=\"text-sm\">\n                &copy; 2006-2026 Ingo Rockel. Released under the GNU Lesser General Public License (LGPL) 2.1.<br>\n                Built with <a href=\"https://tailwindcss.com\" class=\"hover:text-white transition\">Tailwind CSS</a> and <a href=\"https://fontawesome.com\" class=\"hover:text-white transition\">Font Awesome</a>.\n            </div>\n            <div class=\"flex space-x-6 mt-6 md:mt-0 text-xl\">\n                <a href=\"https://github.com/irockel/tda\" class=\"hover:text-white transition\"><i class=\"fab fa-github\"></i></a>\n            </div>\n        </div>\n    </footer>\n\n</body>\n</html>\n"
  },
  {
    "path": "pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n\n    <groupId>de.grimmfrost.tda</groupId>\n    <artifactId>tda-parent</artifactId>\n    <version>3.0</version>\n    <packaging>pom</packaging>\n\n    <name>TDA Parent</name>\n\n    <modules>\n        <module>tda</module>\n        <module>visualvm-lib-component</module>\n        <module>visualvm-logfile-component</module>\n        <module>visualvm-module</module>\n    </modules>\n\n    <profiles>\n        <profile>\n            <id>release</id>\n            <modules>\n                <module>tda-macos-binary</module>\n            </modules>\n        </profile>\n    </profiles>\n\n    <repositories>\n        <repository>\n            <id>netbeans</id>\n            <name>NetBeans Repository</name>\n            <url>https://repo.maven.apache.org/maven2/</url>\n        </repository>\n    </repositories>\n\n    <properties>\n        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n        <maven.compiler.release>11</maven.compiler.release>\n        <visualvm.version>2.2</visualvm.version>\n        <netbeans.version>RELEASE290</netbeans.version>\n    </properties>\n\n    <dependencyManagement>\n        <dependencies>\n            <dependency>\n                <groupId>de.grimmfrost.tda</groupId>\n                <artifactId>tda</artifactId>\n                <version>${project.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>de.grimmfrost.tda</groupId>\n                <artifactId>visualvm-lib-component</artifactId>\n                <version>${project.version}</version>\n            </dependency>\n            <dependency>\n                <groupId>de.grimmfrost.tda</groupId>\n                <artifactId>visualvm-logfile-component</artifactId>\n                <version>${project.version}</version>\n            </dependency>\n        </dependencies>\n    </dependencyManagement>\n\n    <build>\n        <pluginManagement>\n            <plugins>\n                <plugin>\n                    <groupId>org.apache.netbeans.utilities</groupId>\n                    <artifactId>nbm-maven-plugin</artifactId>\n                    <version>14.4</version>\n                    <extensions>true</extensions>\n                </plugin>\n                <plugin>\n                    <groupId>org.apache.maven.plugins</groupId>\n                    <artifactId>maven-jar-plugin</artifactId>\n                    <version>3.5.0</version>\n                </plugin>\n                <plugin>\n                    <groupId>org.apache.maven.plugins</groupId>\n                    <artifactId>maven-resources-plugin</artifactId>\n                    <version>3.5.0</version>\n                </plugin>\n                <plugin>\n                    <groupId>org.apache.maven.plugins</groupId>\n                    <artifactId>maven-compiler-plugin</artifactId>\n                    <version>3.15.0</version>\n                    <configuration>\n                        <compilerArgs>\n                            <arg>-proc:none</arg>\n                        </compilerArgs>\n                    </configuration>\n                </plugin>\n                <plugin>\n                    <groupId>org.apache.maven.plugins</groupId>\n                    <artifactId>maven-install-plugin</artifactId>\n                    <version>3.1.4</version>\n                </plugin>\n                <plugin>\n                    <groupId>org.apache.maven.plugins</groupId>\n                    <artifactId>maven-deploy-plugin</artifactId>\n                    <version>3.1.4</version>\n                </plugin>\n            </plugins>\n        </pluginManagement>\n    </build>\n</project>\n"
  },
  {
    "path": "renovate.json",
    "content": "{\n  \"$schema\": \"https://docs.renovatebot.com/renovate-schema.json\",\n  \"extends\": [\n    \"config:recommended\",\n    \":separateMajorReleases\"\n  ],\n  \"dependencyDashboard\": true,\n  \"packageRules\": [\n    {\n      \"description\": \"Pin digests for custom GitHub Actions, but not official ones\",\n      \"matchManagers\": [\"github-actions\"],\n      \"excludePackagePatterns\": [\"^actions/\"],\n      \"pinDigests\": true\n    },\n    {\n      \"description\": \"Group minor und patch Updates\",\n      \"matchUpdateTypes\": [\"minor\", \"patch\"],\n      \"groupName\": \"non-major dependencies\",\n      \"schedule\": [\"before 8am on monday\"]\n    },\n    {\n      \"description\": \"Major Updates in isolated PRs\",\n      \"matchUpdateTypes\": [\"major\"],\n      \"labels\": [\"major-update\", \"manual-review\"]\n    }\n  ],\n  \"vulnerabilityAlerts\": {\n    \"labels\": [\"security\"],\n    \"assignees\": [\"irockel\"]\n  },\n  \"timezone\": \"Europe/Berlin\"\n}\n"
  },
  {
    "path": "tda/dependency-reduced-pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd\">\r\n  <parent>\r\n    <artifactId>tda-parent</artifactId>\r\n    <groupId>de.grimmfrost.tda</groupId>\r\n    <version>3.0</version>\r\n  </parent>\r\n  <modelVersion>4.0.0</modelVersion>\r\n  <artifactId>tda</artifactId>\r\n  <name>TDA</name>\r\n  <description>Thread Dump Analysis Tool</description>\r\n  <build>\r\n    <resources>\r\n      <resource>\r\n        <filtering>true</filtering>\r\n        <directory>src/main/resources</directory>\r\n        <includes>\r\n          <include>**/version.properties</include>\r\n        </includes>\r\n      </resource>\r\n      <resource>\r\n        <directory>src/main/resources</directory>\r\n        <excludes>\r\n          <exclude>**/version.properties</exclude>\r\n        </excludes>\r\n      </resource>\r\n    </resources>\r\n    <plugins>\r\n      <plugin>\r\n        <artifactId>maven-dependency-plugin</artifactId>\r\n        <version>3.10.0</version>\r\n        <executions>\r\n          <execution>\r\n            <id>unpack-licenses</id>\r\n            <phase>prepare-package</phase>\r\n            <goals>\r\n              <goal>unpack</goal>\r\n            </goals>\r\n            <configuration>\r\n              <artifactItems>\r\n                <artifactItem>\r\n                  <groupId>com.formdev</groupId>\r\n                  <artifactId>flatlaf</artifactId>\r\n                  <version>3.7.1</version>\r\n                  <type>jar</type>\r\n                  <includes>META-INF/LICENSE</includes>\r\n                  <outputDirectory>${project.build.directory}/licenses/flatlaf</outputDirectory>\r\n                </artifactItem>\r\n                <artifactItem>\r\n                  <groupId>com.formdev</groupId>\r\n                  <artifactId>flatlaf-extras</artifactId>\r\n                  <version>3.7.1</version>\r\n                  <type>jar</type>\r\n                  <includes>META-INF/LICENSE</includes>\r\n                  <outputDirectory>${project.build.directory}/licenses/flatlaf-extras</outputDirectory>\r\n                </artifactItem>\r\n                <artifactItem>\r\n                  <groupId>com.github.weisj</groupId>\r\n                  <artifactId>jsvg</artifactId>\r\n                  <version>2.0.0</version>\r\n                  <type>jar</type>\r\n                  <includes>META-INF/LICENSE</includes>\r\n                  <outputDirectory>${project.build.directory}/licenses/jsvg</outputDirectory>\r\n                </artifactItem>\r\n              </artifactItems>\r\n            </configuration>\r\n          </execution>\r\n        </executions>\r\n      </plugin>\r\n      <plugin>\r\n        <artifactId>maven-antrun-plugin</artifactId>\r\n        <version>3.2.0</version>\r\n        <executions>\r\n          <execution>\r\n            <id>rename-licenses</id>\r\n            <phase>prepare-package</phase>\r\n            <goals>\r\n              <goal>run</goal>\r\n            </goals>\r\n            <configuration>\r\n              <target>\r\n                <copy />\r\n                <copy />\r\n                <copy />\r\n              </target>\r\n            </configuration>\r\n          </execution>\r\n        </executions>\r\n      </plugin>\r\n      <plugin>\r\n        <artifactId>maven-compiler-plugin</artifactId>\r\n        <version>3.15.0</version>\r\n        <configuration>\r\n          <compilerArgs>\r\n            <arg>--add-modules</arg>\r\n            <arg>jdk.jconsole</arg>\r\n            <arg>-proc:none</arg>\r\n          </compilerArgs>\r\n        </configuration>\r\n      </plugin>\r\n      <plugin>\r\n        <artifactId>maven-surefire-plugin</artifactId>\r\n        <version>3.5.5</version>\r\n        <configuration>\r\n          <systemPropertyVariables>\r\n            <java.awt.headless>true</java.awt.headless>\r\n          </systemPropertyVariables>\r\n        </configuration>\r\n      </plugin>\r\n      <plugin>\r\n        <artifactId>maven-jar-plugin</artifactId>\r\n        <version>3.5.0</version>\r\n        <configuration>\r\n          <archive>\r\n            <manifest>\r\n              <mainClass>de.grimmfrost.tda.TDA</mainClass>\r\n              <addClasspath>true</addClasspath>\r\n              <classpathPrefix>lib/</classpathPrefix>\r\n            </manifest>\r\n            <manifestEntries>\r\n              <SplashScreen-Image>de/grimmfrost/tda/icons/splash.png</SplashScreen-Image>\r\n            </manifestEntries>\r\n          </archive>\r\n        </configuration>\r\n      </plugin>\r\n      <plugin>\r\n        <artifactId>maven-shade-plugin</artifactId>\r\n        <version>3.6.2</version>\r\n        <executions>\r\n          <execution>\r\n            <phase>package</phase>\r\n            <goals>\r\n              <goal>shade</goal>\r\n            </goals>\r\n            <configuration>\r\n              <transformers>\r\n                <transformer>\r\n                  <mainClass>de.grimmfrost.tda.TDA</mainClass>\r\n                </transformer>\r\n              </transformers>\r\n              <filters>\r\n                <filter>\r\n                  <artifact>*:*</artifact>\r\n                  <excludes>\r\n                    <exclude>module-info.class</exclude>\r\n                    <exclude>META-INF/MANIFEST.MF</exclude>\r\n                    <exclude>META-INF/*.SF</exclude>\r\n                    <exclude>META-INF/*.DSA</exclude>\r\n                    <exclude>META-INF/*.RSA</exclude>\r\n                    <exclude>META-INF/LICENSE</exclude>\r\n                  </excludes>\r\n                </filter>\r\n              </filters>\r\n            </configuration>\r\n          </execution>\r\n        </executions>\r\n      </plugin>\r\n    </plugins>\r\n  </build>\r\n  <dependencies>\r\n    <dependency>\r\n      <groupId>org.junit.jupiter</groupId>\r\n      <artifactId>junit-jupiter</artifactId>\r\n      <version>6.0.3</version>\r\n      <scope>test</scope>\r\n      <exclusions>\r\n        <exclusion>\r\n          <artifactId>junit-jupiter-api</artifactId>\r\n          <groupId>org.junit.jupiter</groupId>\r\n        </exclusion>\r\n        <exclusion>\r\n          <artifactId>junit-jupiter-params</artifactId>\r\n          <groupId>org.junit.jupiter</groupId>\r\n        </exclusion>\r\n        <exclusion>\r\n          <artifactId>junit-jupiter-engine</artifactId>\r\n          <groupId>org.junit.jupiter</groupId>\r\n        </exclusion>\r\n      </exclusions>\r\n    </dependency>\r\n  </dependencies>\r\n  <properties>\r\n    <maven.compiler.release>11</maven.compiler.release>\r\n    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\r\n  </properties>\r\n</project>\r\n"
  },
  {
    "path": "tda/pom.xml",
    "content": "<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n  xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n  <modelVersion>4.0.0</modelVersion>\n\n  <parent>\n    <groupId>de.grimmfrost.tda</groupId>\n    <artifactId>tda-parent</artifactId>\n    <version>3.0</version>\n  </parent>\n\n  <artifactId>tda</artifactId>\n  <packaging>jar</packaging>\n\n  <name>TDA</name>\n  <description>Thread Dump Analysis Tool</description>\n\n  <properties>\n    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n    <maven.compiler.release>11</maven.compiler.release>\n  </properties>\n\n  <dependencies>\n    <dependency>\n      <groupId>org.swinglabs</groupId>\n      <artifactId>swingx</artifactId>\n      <version>1.6.1</version>\n    </dependency>\n    <!-- jconsole.jar is part of the JDK, but in modern JDKs it might be different. \n         For compatibility with the original project which used a local jar, \n         we might need to see if it's available in central or use a system scope if necessary.\n         Actually, it's often available as part of the JDK.\n    -->\n    <dependency>\n      <groupId>com.formdev</groupId>\n      <artifactId>flatlaf</artifactId>\n      <version>3.7.1</version>\n    </dependency>\n    <dependency>\n      <groupId>com.formdev</groupId>\n      <artifactId>flatlaf-extras</artifactId>\n      <version>3.7.1</version>\n    </dependency>\n    <dependency>\n      <groupId>com.google.code.gson</groupId>\n      <artifactId>gson</artifactId>\n      <version>2.13.2</version>\n    </dependency>\n    <dependency>\n      <groupId>org.junit.jupiter</groupId>\n      <artifactId>junit-jupiter</artifactId>\n      <version>6.0.3</version>\n      <scope>test</scope>\n    </dependency>\n  </dependencies>\n\n  <build>\n    <resources>\n      <resource>\n        <directory>src/main/resources</directory>\n        <filtering>true</filtering>\n        <includes>\n          <include>**/version.properties</include>\n        </includes>\n      </resource>\n      <resource>\n        <directory>src/main/resources</directory>\n        <filtering>false</filtering>\n        <excludes>\n          <exclude>**/version.properties</exclude>\n        </excludes>\n      </resource>\n    </resources>\n    <plugins>\n      <plugin>\n        <groupId>org.apache.maven.plugins</groupId>\n        <artifactId>maven-dependency-plugin</artifactId>\n        <version>3.10.0</version>\n        <executions>\n          <execution>\n            <id>unpack-licenses</id>\n            <phase>prepare-package</phase>\n            <goals>\n              <goal>unpack</goal>\n            </goals>\n            <configuration>\n              <artifactItems>\n                <artifactItem>\n                  <groupId>com.formdev</groupId>\n                  <artifactId>flatlaf</artifactId>\n                  <version>3.7.1</version>\n                  <type>jar</type>\n                  <includes>META-INF/LICENSE</includes>\n                  <outputDirectory>${project.build.directory}/licenses/flatlaf</outputDirectory>\n                </artifactItem>\n                <artifactItem>\n                  <groupId>com.formdev</groupId>\n                  <artifactId>flatlaf-extras</artifactId>\n                  <version>3.7.1</version>\n                  <type>jar</type>\n                  <includes>META-INF/LICENSE</includes>\n                  <outputDirectory>${project.build.directory}/licenses/flatlaf-extras</outputDirectory>\n                </artifactItem>\n                <artifactItem>\n                  <groupId>com.github.weisj</groupId>\n                  <artifactId>jsvg</artifactId>\n                  <version>2.0.0</version>\n                  <type>jar</type>\n                  <includes>META-INF/LICENSE</includes>\n                  <outputDirectory>${project.build.directory}/licenses/jsvg</outputDirectory>\n                </artifactItem>\n              </artifactItems>\n            </configuration>\n          </execution>\n        </executions>\n      </plugin>\n      <plugin>\n        <groupId>org.apache.maven.plugins</groupId>\n        <artifactId>maven-antrun-plugin</artifactId>\n        <version>3.2.0</version>\n        <executions>\n          <execution>\n            <id>rename-licenses</id>\n            <phase>prepare-package</phase>\n            <goals>\n              <goal>run</goal>\n            </goals>\n            <configuration>\n              <target>\n                <copy file=\"${project.build.directory}/licenses/flatlaf/META-INF/LICENSE\" tofile=\"${project.build.outputDirectory}/META-INF/LICENSE_flatlaf\" />\n                <copy file=\"${project.build.directory}/licenses/flatlaf-extras/META-INF/LICENSE\" tofile=\"${project.build.outputDirectory}/META-INF/LICENSE_flatlaf-extras\" />\n                <copy file=\"${project.build.directory}/licenses/jsvg/META-INF/LICENSE\" tofile=\"${project.build.outputDirectory}/META-INF/LICENSE_jsvg\" />\n              </target>\n            </configuration>\n          </execution>\n        </executions>\n      </plugin>\n      <plugin>\n        <groupId>org.apache.maven.plugins</groupId>\n        <artifactId>maven-compiler-plugin</artifactId>\n        <version>3.15.0</version>\n        <configuration>\n          <compilerArgs>\n            <arg>--add-modules</arg>\n            <arg>jdk.jconsole</arg>\n            <arg>-proc:none</arg>\n          </compilerArgs>\n        </configuration>\n      </plugin>\n      <plugin>\n        <groupId>org.apache.maven.plugins</groupId>\n        <artifactId>maven-surefire-plugin</artifactId>\n        <version>3.5.5</version>\n        <configuration>\n          <systemPropertyVariables>\n            <java.awt.headless>true</java.awt.headless>\n          </systemPropertyVariables>\n        </configuration>\n      </plugin>\n      <plugin>\n        <groupId>org.apache.maven.plugins</groupId>\n        <artifactId>maven-jar-plugin</artifactId>\n        <version>3.5.0</version>\n        <configuration>\n          <archive>\n            <manifest>\n              <mainClass>de.grimmfrost.tda.TDA</mainClass>\n              <addClasspath>true</addClasspath>\n              <classpathPrefix>lib/</classpathPrefix>\n            </manifest>\n            <manifestEntries>\n              <SplashScreen-Image>de/grimmfrost/tda/icons/splash.png</SplashScreen-Image>\n            </manifestEntries>\n          </archive>\n        </configuration>\n      </plugin>\n      <plugin>\n        <groupId>org.apache.maven.plugins</groupId>\n        <artifactId>maven-shade-plugin</artifactId>\n        <version>3.6.2</version>\n        <executions>\n          <execution>\n            <phase>package</phase>\n            <goals>\n              <goal>shade</goal>\n            </goals>\n            <configuration>\n              <transformers>\n                <transformer implementation=\"org.apache.maven.plugins.shade.resource.ManifestResourceTransformer\">\n                  <mainClass>de.grimmfrost.tda.TDA</mainClass>\n                </transformer>\n              </transformers>\n              <filters>\n                <filter>\n                  <artifact>*:*</artifact>\n                  <excludes>\n                    <exclude>module-info.class</exclude>\n                    <exclude>META-INF/MANIFEST.MF</exclude>\n                    <exclude>META-INF/*.SF</exclude>\n                    <exclude>META-INF/*.DSA</exclude>\n                    <exclude>META-INF/*.RSA</exclude>\n                    <exclude>META-INF/LICENSE</exclude>\n                  </excludes>\n                </filter>\n              </filters>\n            </configuration>\n          </execution>\n        </executions>\n      </plugin>\n    </plugins>\n  </build>\n  <profiles>\n  </profiles>\n</project>\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/CustomCategoriesDialog.java",
    "content": "/*\n * CustomCategoriesDialog.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: CustomCategoriesDialog.java,v 1.4 2008-04-30 09:03:33 irockel Exp $\n */\npackage de.grimmfrost.tda;\n\nimport de.grimmfrost.tda.utils.PrefManager;\nimport java.awt.BorderLayout;\nimport java.awt.Dimension;\nimport java.awt.FlowLayout;\nimport java.awt.Frame;\nimport java.awt.GridLayout;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport javax.swing.Box;\nimport javax.swing.DefaultListModel;\nimport javax.swing.JButton;\nimport javax.swing.JDialog;\nimport javax.swing.JFrame;\nimport javax.swing.JList;\nimport javax.swing.JOptionPane;\nimport javax.swing.JPanel;\nimport javax.swing.JScrollPane;\nimport javax.swing.event.ListSelectionEvent;\nimport javax.swing.event.ListSelectionListener;\n\n/**\n *\n * @author irockel\n */\npublic class CustomCategoriesDialog extends JDialog {\n    private CategoriesPanel categoriesPanel;\n    private JPanel buttonPanel;\n    private JButton closeButton;\n    private Frame frame;\n    \n    /**\n     * Creates a new instance of PreferencesDialog\n     */\n    public CustomCategoriesDialog(Frame owner) {\n        super(owner, \"Custom Categories\");\n        try {\n            setIconImage(TDA.createImageIcon(\"CustomCat.png\").getImage());\n        } catch (NoSuchMethodError nsme) {\n        // ignore, for 1.4 backward compatibility\n        }\n\n        frame = owner;\n        getContentPane().setLayout(new BorderLayout());\n        initPanel();  \n    }\n    \n    private void initPanel() {\n        categoriesPanel = new CategoriesPanel((JFrame) this.getOwner());\n        getContentPane().add(categoriesPanel,BorderLayout.CENTER);\n        closeButton = new JButton(\"Close\");\n        buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n        buttonPanel.add(closeButton);\n        getContentPane().add(buttonPanel, BorderLayout.SOUTH);\n        \n        closeButton.addActionListener( new ActionListener() {\n            public void actionPerformed(ActionEvent e) {\n                categoriesPanel.saveSettings();\n                dispose();\n            }\n        });\n        reset();\n    }\n    \n    public void reset() {\n        getRootPane().setDefaultButton(closeButton);\n    }\n    \n    public static class CategoriesPanel extends JPanel implements ActionListener, ListSelectionListener  {\n        JButton addButton = null;\n        JButton removeButton = null;\n        JButton editButton = null;\n        \n        JPanel buttonFlow = null;\n        \n        JList categoriesList = null;\n        \n        JScrollPane scrollPane = null;\n        \n        Frame owner = null; \n        \n        public CategoriesPanel(Frame owner) {\n            this.owner = owner;\n            setLayout(new BorderLayout());\n            \n            buttonFlow = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n            add(Box.createVerticalStrut(5), BorderLayout.NORTH);\n            add(Box.createHorizontalStrut(5),BorderLayout.WEST);\n            JPanel innerButtonPanel = new JPanel(new GridLayout(3, 1, 5, 5));\n            \n            innerButtonPanel.add(addButton = new JButton(\"Add\"));\n            innerButtonPanel.add(removeButton = new JButton(\"Remove\"));\n            innerButtonPanel.add(editButton = new JButton(\"Edit\"));\n            removeButton.setEnabled(false);\n            editButton.setEnabled(false);\n            \n            addButton.addActionListener(this);\n            removeButton.addActionListener(this);\n            editButton.addActionListener(this);\n            \n            buttonFlow.add(innerButtonPanel);\n            \n            add(buttonFlow,BorderLayout.EAST);\n            setPreferredSize(new Dimension(380, 290));\n            \n            //createList();\n            categoriesList = new JList(PrefManager.get().getCategories());            \n            scrollPane = new JScrollPane(categoriesList);\n            categoriesList.addListSelectionListener(this);\n            \n            add(scrollPane,BorderLayout.CENTER);\n            \n        }\n        \n        public void createList() {\n            int selectedIndex = -1;\n            if(categoriesList != null) {\n               selectedIndex = categoriesList.getSelectedIndex();\n            }\n            \n            if(selectedIndex > -1) {\n                categoriesList.setSelectedIndex(selectedIndex);\n            }\n        }\n        \n        public void actionPerformed(ActionEvent e) {\n            String cmd = e.getActionCommand();\n            \n            if (\"Add\".equals(cmd)) {\n                createCategoryDialog(\"Add Category\", true, -1);\n            } else if(\"Edit\".equals(cmd)) {\n                createCategoryDialog(\"Edit Category\", false, categoriesList.getSelectedIndex());\n            } else if(\"Remove\".equals(cmd)) {\n                removeCategory();\n            }\n        }\n        \n        private void removeCategory() {\n            if(JOptionPane.showConfirmDialog(null, \"Are you sure, you want to remove the selected category?\", \"Confirm Remove\",  \n                    JOptionPane.YES_NO_OPTION) == 0) {\n                ((DefaultListModel) categoriesList.getModel()).removeElementAt(categoriesList.getSelectedIndex());\n            }\n        }\n        \n        private void createCategoryDialog(String title, boolean isAdd, int selectedIndex) {\n            EditCustomCategoryDialog fDiag = new EditCustomCategoryDialog(owner, title, categoriesList, isAdd);\n            fDiag.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);\n            \n            if(owner != null) {\n                owner.setEnabled(false);\n            }\n            \n            //Display the window.\n            fDiag.reset();\n            fDiag.pack();\n            fDiag.setLocationRelativeTo(owner);\n            fDiag.setVisible(true);\n        }\n        \n        public void valueChanged(ListSelectionEvent e) {\n            if(categoriesList.getSelectedIndex() >= 0) {\n                removeButton.setEnabled(true);\n                editButton.setEnabled(true);\n            } else {\n                removeButton.setEnabled(false);\n                editButton.setEnabled(false);\n            }\n        }\n        \n        public void saveSettings() {\n            PrefManager.get().setCategories((DefaultListModel) categoriesList.getModel());\n        }\n    }\n        \n    //Must be called from the event-dispatching thread.\n    public void resetFocus() {\n    }    \n\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/EditCustomCategoryDialog.java",
    "content": "/*\n * EditCustomCategoryDialog.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: EditCustomCategoryDialog.java,v 1.3 2008-04-30 09:03:33 irockel Exp $\n */\npackage de.grimmfrost.tda;\n\nimport de.grimmfrost.tda.filter.Filter;\nimport de.grimmfrost.tda.model.CustomCategory;\nimport de.grimmfrost.tda.utils.PrefManager;\nimport de.grimmfrost.tda.utils.ResourceManager;\nimport java.awt.BorderLayout;\nimport java.awt.FlowLayout;\nimport java.awt.Frame;\nimport java.awt.GridBagConstraints;\nimport java.awt.GridBagLayout;\nimport java.awt.GridLayout;\nimport java.awt.Insets;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport javax.swing.DefaultListModel;\nimport javax.swing.JButton;\nimport javax.swing.JDialog;\nimport javax.swing.JLabel;\nimport javax.swing.JList;\nimport javax.swing.JPanel;\nimport javax.swing.JScrollPane;\nimport javax.swing.JTextField;\nimport javax.swing.event.ListSelectionEvent;\nimport javax.swing.event.ListSelectionListener;\n\n/**\n * dialog for editing filters.\n * @author irockel\n */\npublic class EditCustomCategoryDialog extends JDialog {\n    private SettingsPanel settingsPanel;\n    private JPanel buttonPanel;\n    private JButton okButton;\n    private JButton cancelButton;\n    private Frame frame;\n    private JList catList;\n    private boolean isAdd = false;\n    \n    /**\n     * Creates a new instance of PreferencesDialog\n     */\n    public EditCustomCategoryDialog(Frame owner, String frameTitle, JList catList, boolean isAdd) {\n        super(owner, frameTitle, true);\n        try {\n            setIconImage(TDA.createImageIcon(\"Filters.png\").getImage());\n        } catch (NoSuchMethodError nsme) {\n            // ignore, for 1.4 backward compatibility\n        }\n        \n        this.isAdd = isAdd;\n        this.catList = catList;\n        frame = owner;\n        getContentPane().setLayout(new BorderLayout());\n        initPanel();\n    }\n\n    private void initPanel() {\n        settingsPanel = new SettingsPanel(!isAdd ? (CustomCategory) catList.getSelectedValue() : null);\n        getContentPane().add(settingsPanel,BorderLayout.CENTER);\n        okButton = new JButton(ResourceManager.translate(\"ok.button\"));\n        cancelButton = new JButton(ResourceManager.translate(\"cancel.button\"));\n        buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n        buttonPanel.add(okButton);\n        buttonPanel.add(cancelButton);\n        getContentPane().add(buttonPanel, BorderLayout.SOUTH);\n        \n        okButton.addActionListener(new ActionListener() {\n            public void actionPerformed(ActionEvent e) {\n                if(!isAdd) {\n                    CustomCategory cat = (CustomCategory) catList.getModel().getElementAt(catList.getSelectedIndex());\n                    applyCat(cat);\n                    // reset to fire change event.\n                    ((DefaultListModel) catList.getModel()).setElementAt(cat, catList.getSelectedIndex());\n                    \n                } else {\n                    CustomCategory cat = new CustomCategory(settingsPanel.name.getText());\n                    applyCat(cat);\n                    addToList(cat);\n                }\n                dispose();\n            }\n        });\n        \n        cancelButton.addActionListener(new ActionListener() {\n            public void actionPerformed(ActionEvent e) {\n                dispose();\n            }\n        });\n        reset();\n    }\n    \n    /**\n     * apply settings to category\n     * @param cat the category\n     */\n    private void applyCat(CustomCategory cat) {\n        cat.setName(settingsPanel.name.getText());\n        DefaultListModel dlm = ((DefaultListModel) settingsPanel.catFilters.getModel());\n        cat.resetFilters();\n        for(int i = 0; i < dlm.getSize(); i++) {\n            cat.addToFilters((Filter) dlm.elementAt(i));\n        }\n    }\n    \n    private void addToList(CustomCategory cat) {\n        DefaultListModel dlm = ((DefaultListModel) catList.getModel());\n        \n        dlm.ensureCapacity(dlm.getSize() +1);\n        dlm.addElement(cat);\n        catList.ensureIndexIsVisible(dlm.getSize());\n    }\n                    \n    public void reset() {\n        getRootPane().setDefaultButton(okButton);\n    }\n    \n    class SettingsPanel extends JPanel implements ListSelectionListener, ActionListener {\n        JList catFilters = null;\n        JList filterList = null;\n\n        JTextField name = null;\n        \n        JButton addButton = null;\n        JButton removeButton = null;\n        \n        JScrollPane catPane = null;\n        JScrollPane filterPane = null;\n        \n        public SettingsPanel(CustomCategory presetCat) {\n            setLayout(new BorderLayout());\n            \n            add(createNamePanel(), BorderLayout.NORTH);\n            add(createSelectionPanel(), BorderLayout.CENTER);\n            if (presetCat != null) {\n                fillCatData(presetCat);\n            }    \n        }\n        \n        /**\n         * fill the dialog with the preset filter data.\n         */\n        private void fillCatData(CustomCategory presetCategory) {\n            name.setText(presetCategory.getName());\n            DefaultListModel dlm = (DefaultListModel) filterList.getModel();\n            for(int i = 0; i < dlm.getSize(); i++) {\n                if(presetCategory.hasInFilters(((Filter) dlm.elementAt(i)).getName())) {\n                    moveFilter(filterList, catFilters, i);\n                    \n                    // fix index.\n                    i--;\n                }\n            }\n        }\n        \n        private JPanel createSelectionPanel() {\n            GridBagLayout gridbag = new GridBagLayout();\n            GridBagConstraints c = new GridBagConstraints();\n            \n            JPanel innerPanel = new JPanel(gridbag);\n            catFilters = new JList();\n            catFilters.setModel(new DefaultListModel());\n            filterList = new JList(PrefManager.get().getFilters());\n            \n            catFilters.addListSelectionListener(this);\n            filterList.addListSelectionListener(this);\n            \n            // layouting dialog\n            \n            // info row\n            c.insets = new Insets(5, 5, 5, 5);\n            JLabel info = new JLabel(ResourceManager.translate(\"customcategory.catfilter.label\"));\n            gridbag.setConstraints(info, c);\n            innerPanel.add(info);            \n            \n            info = new JLabel(\" \");\n            gridbag.setConstraints(info, c);\n            innerPanel.add(info);\n            \n            info = new JLabel(ResourceManager.translate(\"customcategory.availfilter.label\"));\n            c.gridwidth = GridBagConstraints.REMAINDER;\n            gridbag.setConstraints(info, c);\n            innerPanel.add(info);\n            \n            // list row\n            \n            // cat list\n            c.weightx = 1.0;\n            c.weighty = 1.0;\n            c.fill = GridBagConstraints.BOTH;\n            c.gridwidth = 1;\n            catPane = new JScrollPane(catFilters);\n            \n            gridbag.setConstraints(catPane, c);\n            innerPanel.add(catPane);\n\n            // buttons\n            JPanel innerButtonPanel = new JPanel(new GridLayout(2, 1, 5, 5));\n            innerButtonPanel.add(addButton = new JButton(ResourceManager.translate(\"customcategory.add.button\")));\n            innerButtonPanel.add(removeButton = new JButton(ResourceManager.translate(\"customcategory.remove.button\")));\n            addButton.setEnabled(false);\n            removeButton.setEnabled(false);\n            addButton.addActionListener(this);\n            removeButton.addActionListener(this);\n            \n            c.weightx = 0.0;\n            c.weighty = 0.0;\n            c.fill = GridBagConstraints.NONE;\n            gridbag.setConstraints(innerButtonPanel, c);\n            innerPanel.add(innerButtonPanel);\n            \n            // filter list\n            c.weightx = 1.0;\n            c.weighty = 1.0;\n            c.insets = new Insets(5, 5, 5, 5);\n            c.fill = GridBagConstraints.BOTH;\n            filterPane = new JScrollPane(filterList);\n            gridbag.setConstraints(filterPane, c);\n            innerPanel.add(filterPane);\n            \n            return(innerPanel);\n\n        }\n        \n        private JPanel createNamePanel() {\n            JPanel panel = new JPanel(new BorderLayout());\n            name = new JTextField(30);\n            JPanel innerPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));\n            innerPanel.add(new JLabel(ResourceManager.translate(\"customcategory.name.label\")));\n            innerPanel.add(name);\n            panel.add(innerPanel, BorderLayout.CENTER);\n            return(panel);\n        }\n        \n        public void valueChanged(ListSelectionEvent e) {\n            if(filterList.getSelectedIndex() >= 0) {\n                addButton.setEnabled(true);\n            } else {\n                addButton.setEnabled(false);\n            }\n            \n            if(catFilters.getSelectedIndex() >= 0) {\n                removeButton.setEnabled(true);\n            } else {\n                removeButton.setEnabled(false);\n            }\n        }\n\n        public void actionPerformed(ActionEvent e) {\n            String cmd = e.getActionCommand();\n            \n            if (ResourceManager.translate(\"customcategory.add.button\").equals(cmd)) {\n                moveFilter(filterList, catFilters, filterList.getSelectedIndex());\n            } else if(ResourceManager.translate(\"customcategory.remove.button\").equals(cmd)) {\n                moveFilter(catFilters, filterList, catFilters.getSelectedIndex());\n            }\n        }\n        \n        private void moveFilter(JList fromList, JList toList, int selectedItem) {\n            Filter filter = (Filter) ((DefaultListModel) fromList.getModel()).getElementAt(selectedItem);\n            ((DefaultListModel) fromList.getModel()).removeElementAt(selectedItem);\n            \n            DefaultListModel dlm = ((DefaultListModel) toList.getModel());\n\n            dlm.ensureCapacity(dlm.getSize() + 1);\n            dlm.addElement(filter);\n            toList.ensureIndexIsVisible(dlm.getSize());\n        }\n        \n    }\n    \n}\n\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/EditFilterDialog.java",
    "content": "/*\n * EditFilterDialog.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: EditFilterDialog.java,v 1.12 2008-04-30 09:03:33 irockel Exp $\n */\n\npackage de.grimmfrost.tda;\n\nimport de.grimmfrost.tda.filter.Filter;\nimport java.awt.BorderLayout;\nimport java.awt.FlowLayout;\nimport java.awt.Frame;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport javax.swing.DefaultListModel;\nimport javax.swing.JButton;\nimport javax.swing.JCheckBox;\nimport javax.swing.JComboBox;\nimport javax.swing.JDialog;\nimport javax.swing.JLabel;\nimport javax.swing.JList;\nimport javax.swing.JPanel;\nimport javax.swing.JTextField;\n\n/**\n * dialog for editing filters.\n * @author irockel\n */\npublic class EditFilterDialog extends JDialog {\n    private SettingsPanel settingsPanel;\n    private JPanel buttonPanel;\n    private JButton okButton;\n    private JButton cancelButton;\n    private Frame frame;\n    private JList filterList;\n    private boolean isAdd = false;\n    \n    /**\n     * Creates a new instance of PreferencesDialog\n     */\n    public EditFilterDialog(Frame owner, String frameTitle, JList filterList, boolean isAdd) {\n        super(owner, frameTitle, true);\n        try {\n            setIconImage(TDA.createImageIcon(\"Filters.png\").getImage());\n        } catch (NoSuchMethodError nsme) {\n            // ignore, for 1.4 backward compatibility\n        }\n        \n        this.isAdd = isAdd;\n        this.filterList = filterList;\n        frame = owner;\n        getContentPane().setLayout(new BorderLayout());\n        initPanel();\n    }\n\n    private void initPanel() {\n        settingsPanel = new SettingsPanel(!isAdd ? (Filter) filterList.getSelectedValue() : null);\n        getContentPane().add(settingsPanel,BorderLayout.CENTER);\n        okButton = new JButton(\"Ok\");\n        cancelButton = new JButton(\"Cancel\");\n        buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n        buttonPanel.add(okButton);\n        buttonPanel.add(cancelButton);\n        getContentPane().add(buttonPanel, BorderLayout.SOUTH);\n        \n        okButton.addActionListener(new ActionListener() {\n            public void actionPerformed(ActionEvent e) {\n                if(frame != null) {\n                    frame.setEnabled(true);\n                }\n                if(!isAdd) {\n                    Filter filter = (Filter) filterList.getModel().getElementAt(filterList.getSelectedIndex());\n                    applyFilter(filter);\n                    // reset to fire change event.\n                    ((DefaultListModel) filterList.getModel()).setElementAt(filter, filterList.getSelectedIndex());\n                    \n                } else {\n                    Filter filter = new Filter();\n                    applyFilter(filter);\n                    addToList(filter);\n                }\n                dispose();\n            }\n        });\n        \n        cancelButton.addActionListener(new ActionListener() {\n            public void actionPerformed(ActionEvent e) {\n                if(frame != null) {\n                    frame.setEnabled(true);\n                }\n                dispose();\n            }\n        });\n        reset();\n    }\n    \n    private void applyFilter(Filter filter) {\n        filter.setName(settingsPanel.filterName.getText());\n        filter.setFilterExpression(settingsPanel.regEx.getText());\n        filter.setFilterRule(settingsPanel.filterRule.getSelectedIndex());\n        filter.setGeneralFilter(true);\n        filter.setExclusionFilter(settingsPanel.isExclusionFilter.isSelected());\n        filter.setEnabled(settingsPanel.isEnabled.isSelected());\n    }\n    \n    private void addToList(Filter filter) {\n        DefaultListModel dlm = ((DefaultListModel) filterList.getModel());\n        \n        dlm.ensureCapacity(dlm.getSize() +1);\n        dlm.addElement(filter);\n        filterList.ensureIndexIsVisible(dlm.getSize());\n    }\n                    \n    public void reset() {\n        getRootPane().setDefaultButton(okButton);\n    }\n    \n    class SettingsPanel extends JPanel {\n        JTextField filterName = null;\n        JTextField regEx = null;\n        JCheckBox isExclusionFilter = null;\n        JCheckBox isEnabled = null;\n        JComboBox filterRule = null;\n        \n        public SettingsPanel(Filter presetFilter) {\n            setLayout(new BorderLayout());\n            FlowLayout fl = new FlowLayout(FlowLayout.RIGHT);\n            JPanel innerSettingsPanel = new JPanel(fl);\n            \n            filterName = new JTextField(30);\n            innerSettingsPanel.add(new JLabel(\"Filter Name\"));\n            innerSettingsPanel.add(filterName);\n            add(innerSettingsPanel, BorderLayout.NORTH);\n            \n            innerSettingsPanel = new JPanel(fl);\n            regEx = new JTextField(30);\n            innerSettingsPanel.add(new JLabel(\"Match Expression\"));\n            innerSettingsPanel.add(regEx);\n            add(innerSettingsPanel, BorderLayout.CENTER);\n            \n            innerSettingsPanel = new JPanel(new BorderLayout());\n            JPanel innerInnerSettingsPanel = new JPanel(fl);\n            innerInnerSettingsPanel.add(new JLabel(\"Filter rule\"));\n            innerInnerSettingsPanel.add(filterRule = new JComboBox(new String[] {\"has in title\", \"matches title\", \"has in stack\",\n               \"matches stack\", \"waiting on\", \"waiting for\", \"locking\", \"sleeping\", \"stack line count >\"}));\n            innerSettingsPanel.add(innerInnerSettingsPanel, BorderLayout.NORTH);\n            \n            innerInnerSettingsPanel = new JPanel(fl);\n            innerInnerSettingsPanel.add(new JLabel(\"Filter is a exclusion filter\"));\n            innerInnerSettingsPanel.add(isExclusionFilter = new JCheckBox());\n            innerSettingsPanel.add(innerInnerSettingsPanel, BorderLayout.CENTER);\n            \n            innerInnerSettingsPanel = new JPanel(fl);\n            innerInnerSettingsPanel.add(new JLabel(\"Is Filter enabled in default categories\"));\n            innerInnerSettingsPanel.add(isEnabled = new JCheckBox());\n            innerSettingsPanel.add(innerInnerSettingsPanel, BorderLayout.SOUTH);\n            \n            add(innerSettingsPanel, BorderLayout.SOUTH);\n            \n            if(presetFilter != null) {\n                fillFilterData(presetFilter);\n            }\n            \n        }\n        \n        /**\n         * fill the dialog with the preset filter data.\n         */\n        private void fillFilterData(Filter presetFilter) {\n            filterName.setText(presetFilter.getName());\n            regEx.setText(presetFilter.getFilterExpression());\n            filterRule.setSelectedIndex(presetFilter.getFilterRule());\n            isExclusionFilter.setSelected(presetFilter.isExclusionFilter());\n            isEnabled.setSelected(presetFilter.isEnabled());\n        }\n\n        /**\n         * return the set up data as filter\n         * @return filte with filled in data.\n         */\n        public Filter getAsFilter() {\n            Filter newFilter = new Filter(filterName.getText(),\n                    regEx.getText(), filterRule.getSelectedIndex(), true, \n                    isExclusionFilter.isSelected(), isEnabled.isSelected());\n            return newFilter;\n        }\n    }\n}\n\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/FilterDialog.java",
    "content": "/*\n * FilterDialog.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: FilterDialog.java,v 1.12 2008-04-30 09:03:33 irockel Exp $\n */\npackage de.grimmfrost.tda;\n\nimport de.grimmfrost.tda.utils.PrefManager;\nimport java.awt.BorderLayout;\nimport java.awt.Dimension;\nimport java.awt.FlowLayout;\nimport java.awt.Frame;\nimport java.awt.GridLayout;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport javax.swing.Box;\nimport javax.swing.DefaultListModel;\nimport javax.swing.JButton;\nimport javax.swing.JDialog;\nimport javax.swing.JFrame;\nimport javax.swing.JList;\nimport javax.swing.JOptionPane;\nimport javax.swing.JPanel;\nimport javax.swing.JScrollPane;\nimport javax.swing.event.ListSelectionEvent;\nimport javax.swing.event.ListSelectionListener;\n\n/**\n * overview of all available filters\n * @author irockel\n */\npublic class FilterDialog extends JDialog {\n\n    private FilterPanel filterPanel;\n    private JPanel buttonPanel;\n    private JButton closeButton;\n    private Frame frame;\n\n    /**\n     * Creates a new instance of PreferencesDialog\n     */\n    public FilterDialog(Frame owner) {\n        super(owner, \"Filter Settings\", true);\n        try {\n            setIconImage(TDA.createImageIcon(\"Filters.png\").getImage());\n        } catch (NoSuchMethodError nsme) {\n            // ignore, for 1.4 backward compatibility\n        }\n\n        frame = owner;\n        getContentPane().setLayout(new BorderLayout());\n        initPanel();\n    }\n\n    private void initPanel() {\n        filterPanel = new FilterPanel((JFrame) this.getOwner());\n        getContentPane().add(filterPanel, BorderLayout.CENTER);\n        closeButton = new JButton(\"Close\");\n        buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n        buttonPanel.add(closeButton);\n        //buttonPanel.add(cancelButton);\n        getContentPane().add(buttonPanel, BorderLayout.SOUTH);\n\n        closeButton.addActionListener(new ActionListener() {\n\n            public void actionPerformed(ActionEvent e) {\n                filterPanel.saveSettings();\n                dispose();\n            }\n        });\n        reset();\n    }\n\n    public void reset() {\n        getRootPane().setDefaultButton(closeButton);\n    }\n\n    public static class FilterPanel extends JPanel implements ActionListener, ListSelectionListener {\n\n        JButton addButton = null;\n        JButton removeButton = null;\n        JButton editButton = null;\n        JPanel buttonFlow = null;\n        JList filterList = null;\n        JScrollPane scrollPane = null;\n        Frame owner = null;\n\n        public FilterPanel(Frame owner) {\n            this.owner = owner;\n            setLayout(new BorderLayout());\n\n            buttonFlow = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n            add(Box.createVerticalStrut(5), BorderLayout.NORTH);\n            add(Box.createHorizontalStrut(5), BorderLayout.WEST);\n            JPanel innerButtonPanel = new JPanel(new GridLayout(3, 1, 5, 5));\n\n            innerButtonPanel.add(addButton = new JButton(\"Add\"));\n            innerButtonPanel.add(removeButton = new JButton(\"Remove\"));\n            innerButtonPanel.add(editButton = new JButton(\"Edit\"));\n            removeButton.setEnabled(false);\n            editButton.setEnabled(false);\n\n            addButton.addActionListener(this);\n            removeButton.addActionListener(this);\n            editButton.addActionListener(this);\n\n            buttonFlow.add(innerButtonPanel);\n\n            add(buttonFlow, BorderLayout.EAST);\n            setPreferredSize(new Dimension(380, 290));\n\n            //createList();\n            filterList = new JList(PrefManager.get().getFilters());\n            scrollPane = new JScrollPane(filterList);\n            filterList.addListSelectionListener(this);\n\n            add(scrollPane, BorderLayout.CENTER);\n\n        }\n\n        public void createList() {\n            int selectedIndex = -1;\n            if (filterList != null) {\n                selectedIndex = filterList.getSelectedIndex();\n            }\n\n            if (selectedIndex > -1) {\n                filterList.setSelectedIndex(selectedIndex);\n            }\n        }\n\n        public void actionPerformed(ActionEvent e) {\n            String cmd = e.getActionCommand();\n\n            if (\"Add\".equals(cmd)) {\n                createFilterDialog(\"Add Filter\", true, -1);\n            } else if (\"Edit\".equals(cmd)) {\n                createFilterDialog(\"Edit Filter\", false, filterList.getSelectedIndex());\n            } else if (\"Remove\".equals(cmd)) {\n                removeFilter();\n            }\n        }\n\n        private void removeFilter() {\n            if (JOptionPane.showConfirmDialog(null, \"Are you sure, you want to remove the selected filter?\", \"Confirm Remove\",\n                    JOptionPane.YES_NO_OPTION) == 0) {\n                ((DefaultListModel) filterList.getModel()).removeElementAt(filterList.getSelectedIndex());\n            }\n        }\n\n        private void createFilterDialog(String title, boolean isAdd, int selectedIndex) {\n            EditFilterDialog fDiag = new EditFilterDialog(owner, title, filterList, isAdd);\n            fDiag.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);\n\n            //Display the window.\n            fDiag.reset();\n            fDiag.pack();\n            fDiag.setLocationRelativeTo(owner);\n            fDiag.setVisible(true);\n        }\n\n        public void valueChanged(ListSelectionEvent e) {\n            if (filterList.getSelectedIndex() >= 0) {\n                removeButton.setEnabled(true);\n                editButton.setEnabled(true);\n            } else {\n                removeButton.setEnabled(false);\n                editButton.setEnabled(false);\n            }\n        }\n        \n        public void saveSettings() {\n            PrefManager.get().setFilters((DefaultListModel) filterList.getModel());\n        }\n    }\n\n    //Must be called from the event-dispatching thread.\n    public void resetFocus() {\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/HelpOverviewDialog.java",
    "content": "/*\n * HelpOverviewDialog.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: HelpOverviewDialog.java,v 1.11 2008-01-20 12:00:40 irockel Exp $\n */\n\npackage de.grimmfrost.tda;\n\nimport de.grimmfrost.tda.utils.Browser;\nimport java.awt.BorderLayout;\nimport java.awt.Color;\nimport java.awt.Dimension;\nimport java.awt.FlowLayout;\nimport java.awt.Image;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.io.IOException;\nimport java.net.MalformedURLException;\nimport java.net.URL;\nimport javax.swing.JButton;\nimport javax.swing.JDialog;\nimport javax.swing.JEditorPane;\nimport javax.swing.JFrame;\nimport javax.swing.JPanel;\nimport javax.swing.JScrollPane;\nimport javax.swing.event.HyperlinkEvent;\nimport javax.swing.event.HyperlinkListener;\n\n/**\n *\n * @author irockel\n */\npublic class HelpOverviewDialog extends JDialog {\n    private JEditorPane htmlView;\n    private JPanel buttonPanel;\n    private JButton closeButton;\n    \n    private String file;\n    \n    /** \n     * Creates a new instance of HelpOverviewDialog \n     */\n    public HelpOverviewDialog(JFrame owner, String title, String file, Image icon) {\n        super(owner, title, true);\n        setFile(file);\n        if(icon != null) {\n            try {\n                this.setIconImage(icon);\n            } catch (NoSuchMethodError nsme) {\n            // ignore, for 1.4 backward compatibility\n            }\n        }\n        getContentPane().setLayout(new BorderLayout());\n        initPanel();\n        setLocationRelativeTo(owner);\n    }\n        \n    private void initPanel() {\n        try {\n            URL tutURL = HelpOverviewDialog.class.getResource(getFile());\n            htmlView = new JEditorPane(tutURL);\n            htmlView.setForeground(Color.BLACK);\n        } catch (MalformedURLException ex) {\n            ex.printStackTrace();\n        } catch (IOException ex) {\n            ex.printStackTrace();\n        }\n        \n        htmlView.addHyperlinkListener(\n                new HyperlinkListener() {\n            public void hyperlinkUpdate(HyperlinkEvent evt) {\n                // if a link was clicked\n                if(evt.getEventType()==HyperlinkEvent.EventType.ACTIVATED) {\n                    try {\n                        if(evt.getURL().toString().indexOf(\"#\") >= 0) {\n                            // show internal anchors in editor pane.\n                            htmlView.setPage(evt.getURL());\n                        } else {\n                            // launch a browser with the appropriate URL\n                            Browser.open(evt.getURL().toString());\n                        }\n                    } catch(InterruptedException e) {\n                        System.out.println(\"Error launching external browser.\");\n                    } catch(IOException e) {\n                        System.out.println(\"I/O error launching external browser.\" + e.getMessage());\n                        e.printStackTrace();\n                    }\n                }\n            }\n        });\n        \n        JScrollPane scrollPane = new JScrollPane(htmlView);\n        htmlView.setEditable(false);\n        htmlView.setPreferredSize(new Dimension(780, 600));\n        htmlView.setCaretPosition(0);\n        getContentPane().add(scrollPane, BorderLayout.CENTER);\n        closeButton = new JButton(\"Close\");\n        buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n        buttonPanel.add(closeButton);\n        getContentPane().add(buttonPanel, BorderLayout.SOUTH);\n        \n        closeButton.addActionListener( new ActionListener() {\n            public void actionPerformed(ActionEvent e) {\n                dispose();\n            }\n        });\n        getRootPane().setDefaultButton(closeButton);\n    }\n        \n    //Must be called from the event-dispatching thread.\n    public void resetFocus() {\n        //searchField.requestFocusInWindow();\n    }\n\n    private String getFile() {\n        return(file);\n    }\n    \n    private void setFile(String value) {\n        file = value;\n    }    \n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/InfoDialog.java",
    "content": "/*\n * PreferencesDialog.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n */\n\npackage de.grimmfrost.tda;\n\nimport de.grimmfrost.tda.utils.AppInfo;\nimport java.awt.BorderLayout;\nimport java.awt.FlowLayout;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport javax.swing.JButton;\nimport javax.swing.JDialog;\nimport javax.swing.JFrame;\nimport javax.swing.JLabel;\nimport javax.swing.JPanel;\n\n/**\n * display copyright notice.\n * @author irockel\n */\npublic class InfoDialog extends JDialog {\n    \n    /**\n     * Creates a new instance of PreferencesDialog\n     */\n    public InfoDialog(JFrame owner) {\n        super(owner, \"About TDA\", true);  \n        BorderLayout layout = new BorderLayout();\n        layout.setHgap(30);\n        getContentPane().setLayout(layout);\n        initPanel();        \n    }\n    \n    private void initPanel() {\n        BorderLayout upperLayout = new BorderLayout();\n        upperLayout.setVgap(10);\n        upperLayout.setHgap(10);\n        JPanel upperPane = new JPanel(upperLayout);\n        upperPane.add(new JLabel(TDA.createImageIcon(\"splash.png\")), BorderLayout.CENTER);\n        upperPane.add(new JLabel(\" \"), BorderLayout.EAST);\n        upperPane.add(new JLabel(\" \"), BorderLayout.WEST);\n        upperPane.add(new JLabel(\"\"), BorderLayout.NORTH);\n        upperPane.add(new JLabel(\"\"), BorderLayout.SOUTH);\n        getContentPane().add(upperPane, BorderLayout.NORTH);\n        \n        String info = \"<html><body>\" +\n                \"<h3>\" + AppInfo.getAppInfo() + \" v\" + AppInfo.getVersion() + \"</h3>\" +\n                \"<p><i>Java Version: \" + System.getProperty(\"java.version\") + \"<br><br>\" +\n                \"(C) 2006-2026 by Ingo Rockel &lt;ingo.rockel@gmail.com&gt;,<br><br>\" +\n                \"Icons used are based on Benno System Icons by Benno Meyer.<br>\" +\n                \"Welcome screen uses icons from NuoveXT2 icon set by Alexandre Moore.<br>\" +\n                \"Contains classes from JEdit for logfile display.</i></p><br>\" +\n                \"<p>TDA is free software; you can redistribute it and/or modify it under<br>\" +\n                \"the terms of the Lesser GNU General Public License as published by<br>\" +\n                \"the Free Software Foundation; either version 2.1 of the License, or<br>\" +\n                \"(at your option) any later version.</p><br>\" +\n                \"TDA is distributed in the hope that it will be useful, but WITHOUT ANY<br>\" +\n                \"WARRANTY; without even the implied warranty of MERCHANTABILITY or <br>\" +\n                \"FITNESS FOR A PARTICULAR PURPOSE. See the Lesser GNU General Public<br>\" +\n                \"License for more details.</p><br>\" +\n                \"<p>This distribution includes 3rd-party libraries: <b>FlatLaf</b>, <b>FlatLaf-Extras</b>, and <b>JSVG</b>.<br> \" +\n                \"Their licenses can be found in the <code>META-INF/</code> directory of the jar file.</p><br>\";\n        \n        javax.swing.JEditorPane infoPane = new javax.swing.JEditorPane(\"text/html\", info);\n        infoPane.setEditable(false);\n        infoPane.setBackground(getContentPane().getBackground());\n        infoPane.setCaretPosition(0);\n        \n        javax.swing.JScrollPane scrollPane = new javax.swing.JScrollPane(infoPane);\n        scrollPane.setBorder(null);\n        \n        getContentPane().add(scrollPane, BorderLayout.CENTER);\n        getContentPane().add(new javax.swing.JLabel(\"  \"), BorderLayout.EAST);\n        getContentPane().add(new javax.swing.JLabel(\"  \"), BorderLayout.WEST);\n        JButton okButton = new JButton(\"Close\");\n        okButton.addActionListener( new ActionListener() {\n            public void actionPerformed(ActionEvent e) {\n                dispose();\n            }\n        });\n        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n        buttonPanel.add(okButton);\n        getContentPane().add(buttonPanel, BorderLayout.SOUTH);        \n    }    \n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/LongThreadDialog.java",
    "content": "/*\n * LongThreadDialog.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * TDA should have received a copy of the Lesser GNU General Public License\n * along with Foobar; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: LongThreadDialog.java,v 1.10 2008-02-14 14:36:08 irockel Exp $\n */\n\npackage de.grimmfrost.tda;\n\nimport de.grimmfrost.tda.model.Logfile;\n\nimport java.awt.BorderLayout;\nimport java.awt.FlowLayout;\nimport java.awt.Font;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.util.Map;\nimport javax.swing.JButton;\nimport javax.swing.JDialog;\nimport javax.swing.JLabel;\nimport javax.swing.JPanel;\nimport javax.swing.JTabbedPane;\nimport javax.swing.JTextField;\nimport javax.swing.tree.DefaultMutableTreeNode;\nimport javax.swing.tree.TreePath;\n\n/**\n * long running thread detection dialog.\n * \n * @author irockel\n */\npublic class LongThreadDialog extends JDialog {\n    private JTabbedPane prefsPane;\n    private SettingsPanel settingsPanel;\n    private JPanel buttonPanel;\n    private JButton okButton;\n    private JButton cancelButton;\n    private TDA backRef;\n    private TreePath[] dumps;\n    private DefaultMutableTreeNode top;\n    private Map threadDumps;\n    \n    /** \n     * Creates a new instance of PreferencesDialog \n     */\n    public LongThreadDialog(TDA owner, TreePath[] dumps, DefaultMutableTreeNode top, Map threadDumps) {        \n        super(TDA.frame, \"Detect long running Threads\", true);\n        backRef = owner;\n        this.dumps = dumps;\n        this.threadDumps = threadDumps;\n        this.top = top;\n        this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);\n        getContentPane().setLayout(new BorderLayout());\n        initPanel();\n        setLocationRelativeTo(owner);\n    }\n    \n    private void initPanel() {\n        prefsPane = new JTabbedPane();\n        settingsPanel = new SettingsPanel();\n        prefsPane.addTab(\"Settings\", settingsPanel);        \n        getContentPane().add(prefsPane,BorderLayout.CENTER);\n        okButton = new JButton(\"Start Detection\");\n        cancelButton = new JButton(\"Cancel\");\n        buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n        buttonPanel.add(okButton);\n        buttonPanel.add(cancelButton);\n        getContentPane().add(buttonPanel, BorderLayout.SOUTH);\n        \n        okButton.addActionListener( new ActionListener() {\n            public void actionPerformed(ActionEvent e) {\n                int divider = 0;\n                if(backRef.isThreadDisplay()) {\n                    divider = backRef.topSplitPane.getDividerLocation();\n                }\n\n                ((Logfile) top.getUserObject()).getUsedParser().findLongRunningThreads(top, threadDumps, dumps, Integer.parseInt(settingsPanel.minOccurenceField.getText()), settingsPanel.threadRegExField.getText());\n                backRef.createTree();\n                backRef.tree.expandRow(1);\n\n                backRef.getRootPane().revalidate();\n                if(divider > 0) {\n                    backRef.topSplitPane.setDividerLocation(divider);\n                }\n                dispose();\n            }\n        });\n        \n        cancelButton.addActionListener( new ActionListener() {\n            public void actionPerformed(ActionEvent e) {\n                dispose();\n            }\n        });\n        reset();        \n    }\n    \n    public void reset() {\n        getRootPane().setDefaultButton(okButton);\n    }\n    \n    class SettingsPanel extends JPanel {\n        JTextField minOccurenceField;\n        JTextField threadRegExField;\n        \n        public SettingsPanel() {\n            setLayout(new BorderLayout());\n            \n            JPanel layoutPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));            \n            layoutPanel.add(new JLabel(\"Minimum occurence of a thread\"));\n            minOccurenceField = new JTextField(3);\n            minOccurenceField.setText(String.valueOf(dumps.length));\n            layoutPanel.add(minOccurenceField);\n            add(layoutPanel, BorderLayout.NORTH);\n            \n            layoutPanel = new JPanel(new BorderLayout());\n            layoutPanel.add(new JLabel(\"Regular Expression thread identifier matches\"), BorderLayout.NORTH);\n            threadRegExField = new JTextField(30);\n            layoutPanel.add(threadRegExField, BorderLayout.CENTER);\n            add(layoutPanel, BorderLayout.CENTER);\n            \n            layoutPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));\n            JLabel example = new JLabel(\"<html><body>Example is <b>\\\"AJPRequestHandler(.*)</b>\");\n            example.setFont(new Font(\"SansSerif\", Font.PLAIN, 10));\n            layoutPanel.add(example);\n            add(layoutPanel, BorderLayout.SOUTH);\n        }\n    }\n    \n    /**\n     * Must be called from the event-dispatching thread.\n     */\n    public void resetFocus() {\n    }\n    \n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/MainMenu.java",
    "content": "/*\n * MainMenu.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * TDA should have received a copy of the Lesser GNU General Public License\n * along with Foobar; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: MainMenu.java,v 1.38 2008-09-18 14:44:10 irockel Exp $\n */\n\npackage de.grimmfrost.tda;\n\nimport de.grimmfrost.tda.utils.PrefManager;\nimport de.grimmfrost.tda.utils.ResourceManager;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.InputEvent;\nimport java.awt.event.KeyEvent;\nimport javax.swing.JButton;\nimport javax.swing.JCheckBoxMenuItem;\nimport javax.swing.JMenu;\nimport javax.swing.JMenuBar;\nimport javax.swing.JMenuItem;\nimport javax.swing.JToolBar;\nimport javax.swing.KeyStroke;\n\n/**\n * provides instances of the main menu (though there is typically only one).\n *\n * @author irockel\n */\npublic class MainMenu extends JMenuBar {\n    \n    private JMenuItem closeMenuItem;\n    private JMenuItem longMenuItem;\n    private JMenuItem recentFilesMenu;\n    private JMenuItem recentSessionsMenu;\n    private JMenuItem closeAllMenuItem;\n    private JMenuItem expandAllMenuItem;\n    private JMenuItem collapseAllMenuItem;\n    \n    private TDA listener;\n    private JToolBar toolBar;\n    private JButton closeToolBarButton;\n    private JMenuItem saveSessionMenuItem;\n    private JButton findLRThreadsButton;\n    private JButton expandButton;\n    private JButton collapseButton;\n\n\n\n    /** \n     * Creates a new instance of the MainMenu \n     */\n    public MainMenu(TDA listener) {\n        this.listener = listener;\n        createMenuBar();\n    }\n    \n    /**\n     * get the close file menu item\n     */\n    public JMenuItem getCloseMenuItem() {\n        return(closeMenuItem);\n    }\n    \n    /**\n     * get the close file menu item\n     */\n    public JButton getCloseToolBarButton() {\n        return(closeToolBarButton);\n    }\n    \n    /**\n     * get the close file menu item\n     */\n    public JButton getExpandButton() {\n        return(expandButton);\n    }\n    \n    /**\n     * get the close file menu item\n     */\n    public JButton getCollapseButton() {\n        return(collapseButton);\n    }\n    \n    /**\n     * get the close file menu item\n     */\n    public JButton getFindLRThreadsToolBarButton() {\n        return(findLRThreadsButton);\n    }\n    \n    /**\n     * get the close all file menu item\n     */\n    public JMenuItem getCloseAllMenuItem() {\n        return(closeAllMenuItem);\n    }\n    \n    public JMenuItem getLongMenuItem() {\n        return(longMenuItem);\n    }\n    \n    /**\n     * get the close all file menu item\n     */\n    public JMenuItem getExpandAllMenuItem() {\n        return(expandAllMenuItem);\n    }\n    \n    public JMenuItem getCollapseAllMenuItem() {\n        return(collapseAllMenuItem);\n    }\n\n    public JMenuItem getSaveSessionMenuItem() {\n        return(saveSessionMenuItem);\n    }\n    \n    /**\n     * create the top level menu bar\n     */\n    private void createMenuBar() {\n        add(createFileMenu());\n        add(createViewMenu());\n        add(createToolsMenu());\n        add(createHelpMenu());\n    }\n    \n    private JMenu createFileMenu() {\n        JMenuItem menuItem;\n        JMenu menu;\n        //Build the first menu.\n        menu = new JMenu(ResourceManager.translate(\"file.menu\"));\n        menu.setMnemonic(KeyStroke.getKeyStroke(ResourceManager.translate(\"file.menu.mnem\")).getKeyCode());\n        menu.getAccessibleContext().setAccessibleDescription(ResourceManager.translate(\"file.menu.description\"));\n        menu.addMenuListener(listener);\n        \n        //a group of JMenuItems\n        menuItem = new JMenuItem(ResourceManager.translate(\"file.open\"),\n                KeyStroke.getKeyStroke(ResourceManager.translate(\"file.open.mnem\")).getKeyCode());\n        menuItem.setAccelerator(KeyStroke.getKeyStroke(\n                ResourceManager.translate(\"file.open.accel\")));\n        menuItem.getAccessibleContext().setAccessibleDescription(\n                ResourceManager.translate(\"file.open.description\"));\n        menuItem.addActionListener(listener);\n        menu.add(menuItem);\n        \n        closeMenuItem = new JMenuItem(ResourceManager.translate(\"file.close\"),\n                KeyStroke.getKeyStroke(ResourceManager.translate(\"file.close.mnem\")).getKeyCode());\n        closeMenuItem.getAccessibleContext().setAccessibleDescription(\n                ResourceManager.translate(\"file.open.description\"));\n        closeMenuItem.addActionListener(listener);\n        closeMenuItem.setEnabled(false);\n        menu.add(closeMenuItem);\n        \n        closeAllMenuItem = new JMenuItem(ResourceManager.translate(\"file.closeall\"),\n                KeyStroke.getKeyStroke(ResourceManager.translate(\"file.closeall.mnem\")).getKeyCode());\n        closeAllMenuItem.getAccessibleContext().setAccessibleDescription(\n                ResourceManager.translate(\"file.closeall.description\"));\n        closeAllMenuItem.addActionListener(listener);\n        closeAllMenuItem.setEnabled(false);\n        menu.add(closeAllMenuItem);\n        \n        createRecentFileMenu();\n        menu.add(recentFilesMenu);\n        \n        menu.addSeparator();\n        menuItem = new JMenuItem(ResourceManager.translate(\"file.getfromclipboard\"),\n                KeyStroke.getKeyStroke(ResourceManager.translate(\"file.getfromclipboard.mnem\")).getKeyCode());\n        menuItem.getAccessibleContext().setAccessibleDescription(\n                ResourceManager.translate(\"file.getfromclipboard.description\"));\n        menuItem.setAccelerator(KeyStroke.getKeyStroke(\n                ResourceManager.translate(\"file.getfromclipboard.accel\")));        \n        menuItem.addActionListener(listener);\n        menu.add(menuItem);\n        menu.addSeparator();\n        saveSessionMenuItem = new JMenuItem(ResourceManager.translate(\"file.savesession\"),\n                KeyStroke.getKeyStroke(ResourceManager.translate(\"file.savesession.mnem\")).getKeyCode());\n        saveSessionMenuItem.getAccessibleContext().setAccessibleDescription(\n                ResourceManager.translate(\"file.savesession.description\"));\n        saveSessionMenuItem.addActionListener(listener);\n        menu.add(saveSessionMenuItem);\n        saveSessionMenuItem.setEnabled(false);\n        \n        menuItem = new JMenuItem(ResourceManager.translate(\"file.opensession\"),\n                KeyStroke.getKeyStroke(ResourceManager.translate(\"file.opensession.mnem\")).getKeyCode());\n        menuItem.getAccessibleContext().setAccessibleDescription(\n                ResourceManager.translate(\"file.opensession.description\"));\n        menuItem.addActionListener(listener);\n        menu.add(menuItem);\n        \n        createRecentSessionsMenu();\n        menu.add(recentSessionsMenu);\n        \n        if (!System.getProperty(\"os.name\").contains(\"Mac\")) {\n            menu.addSeparator();\n\n            menuItem = new JMenuItem(ResourceManager.translate(\"file.exit\"),\n                    KeyStroke.getKeyStroke(ResourceManager.translate(\"file.exit.mnem\")).getKeyCode());\n            menuItem.setAccelerator(KeyStroke.getKeyStroke(\n                    ResourceManager.translate(\"file.exit.accel\")));\n            menuItem.getAccessibleContext().setAccessibleDescription(\n                    ResourceManager.translate(\"file.exit.description\"));\n            menuItem.addActionListener(listener);\n            menu.add(menuItem);\n        }\n        \n        return(menu);\n        \n    }\n\n    /**\n     * Build tools menu in the menu bar.\n     */\n    private JMenu createViewMenu() {\n        JMenuItem menuItem;\n        JMenu menu;\n        menu = new JMenu(ResourceManager.translate(\"view.menu\"));\n        menu.setMnemonic(KeyStroke.getKeyStroke(ResourceManager.translate(\"view.menu.mnem\")).getKeyCode());\n        menu.getAccessibleContext().setAccessibleDescription(ResourceManager.translate(\"view.menu.description\"));\n        add(menu);\n        \n        expandAllMenuItem = new JMenuItem(ResourceManager.translate(\"view.expand\"),\n                KeyStroke.getKeyStroke(ResourceManager.translate(\"view.expand.mnem\")).getKeyCode());\n        expandAllMenuItem.setAccelerator(KeyStroke.getKeyStroke(\n                ResourceManager.translate(\"view.expand.accel\")));\n        expandAllMenuItem.getAccessibleContext().setAccessibleDescription(\n                ResourceManager.translate(\"view.expand.description\"));\n        expandAllMenuItem.addActionListener(listener);\n        expandAllMenuItem.setEnabled(false);\n        menu.add(expandAllMenuItem);\n\n        collapseAllMenuItem = new JMenuItem(ResourceManager.translate(\"view.collapse\"),\n                KeyStroke.getKeyStroke(ResourceManager.translate(\"view.collapse.mnem\")).getKeyCode());\n        collapseAllMenuItem.setAccelerator(KeyStroke.getKeyStroke(\n                ResourceManager.translate(\"view.collapse.accel\")));\n        collapseAllMenuItem.getAccessibleContext().setAccessibleDescription(\n                ResourceManager.translate(\"view.collapse.description\"));\n        collapseAllMenuItem.setEnabled(false);\n        collapseAllMenuItem.addActionListener(listener);\n        menu.add(collapseAllMenuItem);\n                \n        menu.addSeparator();\n        menuItem = new JCheckBoxMenuItem(ResourceManager.translate(\"view.showtoolbar\"), PrefManager.get().getShowToolbar());\n        menuItem.setMnemonic(KeyStroke.getKeyStroke(ResourceManager.translate(\"view.showtoolbar.mnem\")).getKeyCode());\n        menuItem.addActionListener(listener);\n        menu.add(menuItem);\n        \n        return(menu);\n    }\n    \n    /**\n     * Build tools menu in the menu bar.\n     */\n    private JMenu createToolsMenu() {\n        JMenuItem menuItem;\n        JMenu menu;\n        menu = new JMenu(ResourceManager.translate(\"tools.menu\"));\n        menu.setMnemonic(KeyStroke.getKeyStroke(ResourceManager.translate(\"tools.menu.mnem\")).getKeyCode());\n        menu.getAccessibleContext().setAccessibleDescription(ResourceManager.translate(\"tools.menu.description\"));\n        add(menu);\n        \n        longMenuItem = new JMenuItem(ResourceManager.translate(\"tools.longrunning\"),\n                KeyStroke.getKeyStroke(ResourceManager.translate(\"tools.longrunning.mnem\")).getKeyCode());\n        longMenuItem.setAccelerator(KeyStroke.getKeyStroke(\n                KeyEvent.VK_L, InputEvent.ALT_MASK));\n        longMenuItem.getAccessibleContext().setAccessibleDescription(\n                \"Find long running threads...\");\n        longMenuItem.addActionListener(listener);\n        longMenuItem.setEnabled(false);\n        menu.add(longMenuItem);\n        menu.addSeparator();\n\n        menuItem = new JMenuItem(\"Filters\",\n                KeyEvent.VK_F);\n        menuItem.setAccelerator(KeyStroke.getKeyStroke(\n                KeyEvent.VK_F, InputEvent.ALT_MASK));\n        menuItem.getAccessibleContext().setAccessibleDescription(\n                \"Setup Filter\");\n        menuItem.addActionListener(listener);\n        menu.add(menuItem);\n        \n        menuItem = new JMenuItem(\"Categories\",\n                KeyEvent.VK_F);\n        menuItem.setAccelerator(KeyStroke.getKeyStroke(\n                KeyEvent.VK_G, InputEvent.ALT_MASK));\n        menuItem.getAccessibleContext().setAccessibleDescription(\n                \"Setup Categories\");\n        menuItem.addActionListener(listener);\n        menu.add(menuItem);\n        \n        menu.addSeparator();\n\n        menuItem = new JMenuItem(ResourceManager.translate(\"file.preferences\"),\n                KeyStroke.getKeyStroke(ResourceManager.translate(\"file.preferences.mnem\")).getKeyCode());\n        menuItem.getAccessibleContext().setAccessibleDescription(\n                ResourceManager.translate(\"file.preferences.description\"));\n        menuItem.addActionListener(listener);\n        menu.add(menuItem);\n        \n        return(menu);\n    }\n    \n    /**\n     * Build help menu in the menu bar.\n     */\n    private JMenu createHelpMenu() {\n        JMenuItem menuItem;\n        JMenu menu;\n        menu = new JMenu(ResourceManager.translate(\"help.menu\"));\n        menu.setMnemonic(KeyStroke.getKeyStroke(ResourceManager.translate(\"help.menu.mnem\")).getKeyCode());\n        menu.getAccessibleContext().setAccessibleDescription(\n                ResourceManager.translate(\"help.menu.description\"));\n                \n        menuItem = new JMenuItem(\"Release Notes\",null);\n        menuItem.getAccessibleContext().setAccessibleDescription(\n                \"Release Notes\");\n        menuItem.addActionListener(listener);\n        menu.add(menuItem);\n        menuItem = new JMenuItem(\"License\",null);\n        menuItem.getAccessibleContext().setAccessibleDescription(\n                \"TDA Distribution License\");\n        menuItem.addActionListener(listener);\n        menu.add(menuItem);\n        menu.addSeparator();\n        menuItem = new JMenuItem(\"About TDA\",\n                KeyEvent.VK_A);\n        menuItem.getAccessibleContext().setAccessibleDescription(\n                \"About Thread Dump Analyzer\");\n        menuItem.addActionListener(listener);\n        menu.add(menuItem);\n        \n        return(menu);\n    }\n    \n    /**\n     * create the menu for opening recently selected files.\n     */\n    private void createRecentFileMenu() {\n        String[] recentFiles = PrefManager.get().getRecentFiles();\n        \n        recentFilesMenu = new JMenu(ResourceManager.translate(\"file.recentfiles\"));\n        recentFilesMenu.setMnemonic(KeyStroke.getKeyStroke(ResourceManager.translate(\"file.recentfiles.mnem\")).getKeyCode());\n        if(recentFiles.length > 1) {\n            for(int i = 1; i < recentFiles.length; i++) {\n                if(!recentFiles[i].isEmpty()) {\n                    JMenuItem item = new JMenuItem(recentFiles[i]);\n                    ((JMenu) recentFilesMenu).add(item);\n                    item.addActionListener(listener);\n                }\n            }\n        } else {\n            recentFilesMenu.setEnabled(false);\n        }\n    }\n    \n    /**\n     * create the menu for opening recently selected files.\n     */\n    private void createRecentSessionsMenu() {\n        String[] recentFiles = PrefManager.get().getRecentSessions();\n        \n        recentSessionsMenu = new JMenu(ResourceManager.translate(\"file.recentsessions\"));\n        recentSessionsMenu.setMnemonic(KeyStroke.getKeyStroke(ResourceManager.translate(\"file.recentsessions.mnem\")).getKeyCode());\n        if(recentFiles.length > 1) {\n            \n            for(int i = 1; i < recentFiles.length; i++) {\n                if(!recentFiles[i].isEmpty()) {\n                    JMenuItem item = new JMenuItem(recentFiles[i]);\n                    ((JMenu) recentSessionsMenu).add(item);\n                    item.addActionListener(listener);\n                }\n            }\n        } else {\n            recentSessionsMenu.setEnabled(false);\n        }\n    }\n\n    /**\n     * creates and returns a toolbar for the main menu with most\n     * important entries.\n     * @return toolbar instance, is created on demand.\n     */\n    public JToolBar getToolBar() {\n        if(toolBar == null) {\n            createToolBar();\n        }\n        return toolBar;\n    }\n    \n    /**\n     * create a toolbar showing the most important main menu entries.\n     */\n    private void createToolBar() {\n        toolBar = new JToolBar(\"TDA Toolbar\");\n        if(listener.runningAsJConsolePlugin || listener.runningAsVisualVMPlugin) {\n            toolBar.add(createToolBarButton(\"Request a Thread Dump\", \"FileOpen.png\"));\n            toolBar.setFloatable(false);\n        } else {\n            toolBar.add(createToolBarButton(\"Open Logfile\", \"FileOpen.png\"));\n            closeToolBarButton = createToolBarButton(\"Close selected Logfile\", \"CloseFile.png\");\n            closeToolBarButton.setEnabled(false);\n            toolBar.add(closeToolBarButton);\n        }\n        toolBar.addSeparator();\n        toolBar.add(createToolBarButton(\"Preferences\", \"Preferences.png\"));\n        toolBar.addSeparator();\n        expandButton = createToolBarButton(\"Expand all nodes\", \"Expanded.png\");\n        expandButton.setEnabled(false);\n        toolBar.add(expandButton);\n        collapseButton = createToolBarButton(\"Collapse all nodes\", \"Collapsed.png\");\n        collapseButton.setEnabled(false);\n        toolBar.add(collapseButton);\n        toolBar.addSeparator();\n        findLRThreadsButton = createToolBarButton(\"Find long running threads\", \"FindLRThreads.png\");\n        findLRThreadsButton.setEnabled(false);\n        toolBar.add(findLRThreadsButton);\n        \n        toolBar.add(createToolBarButton(\"Filters\", \"Filters.png\"));\n        toolBar.add(createToolBarButton(\"Custom Categories\", \"CustomCat.png\"));\n        toolBar.addSeparator();\n    }\n    \n    /**\n     * create a toolbar button with tooltip and given icon.\n     * @param text tooltip text\n     * @param fileName filename for the icon to load\n     * @return toolbar button\n     */\n    private JButton createToolBarButton(String text, String fileName) {\n        JButton toolbarButton = new JButton(TDA.createImageIcon(fileName));\n        if(text != null) {\n            toolbarButton.setToolTipText(text);\n        }\n        toolbarButton.addActionListener(listener);\n        toolbarButton.setFocusable(false);\n        return(toolbarButton);\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/PreferencesDialog.java",
    "content": "/*\n * PreferencesDialog.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: PreferencesDialog.java,v 1.22 2008-04-30 09:03:33 irockel Exp $\n */\n\npackage de.grimmfrost.tda;\n\nimport de.grimmfrost.tda.utils.PrefManager;\nimport java.awt.BorderLayout;\nimport java.awt.FlowLayout;\nimport java.awt.Frame;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.util.Objects;\nimport javax.swing.BoxLayout;\nimport javax.swing.DefaultComboBoxModel;\nimport javax.swing.JButton;\nimport javax.swing.JCheckBox;\nimport javax.swing.JComboBox;\nimport javax.swing.JDialog;\nimport javax.swing.JLabel;\nimport javax.swing.JPanel;\nimport javax.swing.JTabbedPane;\nimport javax.swing.JTextField;\n\n/**\n * Displays a dialog for setting some preferences for using tda. These\n * are persisted using java.util.prefs package.\n * @author irockel\n */\npublic class PreferencesDialog extends JDialog {\n    private JTabbedPane prefsPane;\n    private GeneralPanel generalPanel;\n    private RegExPanel regExPanel;\n    private JButton okButton;\n    private final Frame frame;\n    \n    /**\n     * Creates a new instance of PreferencesDialog\n     */\n    public PreferencesDialog(Frame owner) {\n        super(owner, \"Preferences\", true);\n        this.setIconImage(TDA.createImageIcon(\"Preferences.png\").getImage());\n\n        frame = owner;\n        getContentPane().setLayout(new BorderLayout());\n        initPanel();        \n    }\n    \n    public JTabbedPane getPane() {\n        return(prefsPane);\n    }\n    \n    private void initPanel() {\n        prefsPane = new JTabbedPane();\n        generalPanel = new GeneralPanel();\n        regExPanel = new RegExPanel();\n        prefsPane.addTab(\"General\", generalPanel);\n        prefsPane.addTab(\"Date Parsing\", regExPanel);\n        getContentPane().add(prefsPane,BorderLayout.CENTER);\n        \n        // only add buttons if there is an owner frame\n        // otherwise we are running in visualvm\n        if(frame != null) {\n            okButton = new JButton(\"Ok\");\n            JButton cancelButton = new JButton(\"Cancel\");\n            JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n            buttonPanel.add(okButton);\n            buttonPanel.add(cancelButton);\n            getContentPane().add(buttonPanel, BorderLayout.SOUTH);\n\n            okButton.addActionListener(e -> saveSettings());\n\n            cancelButton.addActionListener(e -> dispose());\n        }\n        reset();\n    }\n    \n    public void reset() {\n        getRootPane().setDefaultButton(okButton);\n        loadSettings();\n    }\n    \n    public void loadSettings() {\n        generalPanel.forceLoggcLoading.setSelected(PrefManager.get().getForceLoggcLoading());\n        generalPanel.maxLinesField.setText(String.valueOf(PrefManager.get().getMaxRows()));\n        generalPanel.bufferField.setText(String.valueOf(PrefManager.get().getStreamResetBuffer()));\n        generalPanel.showHotspotClasses.setSelected(PrefManager.get().getShowHotspotClasses());\n        generalPanel.maxLogfileSizeField.setText(String.valueOf(PrefManager.get().getMaxLogfileSize()));\n        \n        DefaultComboBoxModel<String> boxModel = new DefaultComboBoxModel<>();\n        String[] regexs = PrefManager.get().getDateParsingRegexs();\n        for (String regex : regexs) {\n            boxModel.addElement(regex);\n        }\n        regExPanel.dateParsingRegexs.setModel(boxModel);\n        regExPanel.dateParsingRegexs.setSelectedItem(PrefManager.get().getDateParsingRegex());\n        \n        regExPanel.isJDK16DefaultParsing.setSelected(PrefManager.get().getJDK16DefaultParsing());\n        regExPanel.isMillisTimeStamp.setSelected(PrefManager.get().getMillisTimeStamp());\n    }\n    \n    public void saveSettings() {\n        PrefManager.get().setForceLoggcLoading(generalPanel.forceLoggcLoading.isSelected());\n        PrefManager.get().setMaxRows(Integer.parseInt(generalPanel.maxLinesField.getText()));\n        PrefManager.get().setStreamResetBuffer(Integer.parseInt(generalPanel.bufferField.getText()));\n        PrefManager.get().setShowHotspotClasses(generalPanel.showHotspotClasses.isSelected());\n        PrefManager.get().setDateParsingRegex((String) regExPanel.dateParsingRegexs.getSelectedItem());\n        PrefManager.get().setDateParsingRegexs(regExPanel.dateParsingRegexs.getModel());\n        PrefManager.get().setMillisTimeStamp(regExPanel.isMillisTimeStamp.isSelected());\n        PrefManager.get().setJDK16DefaultParsing(regExPanel.isJDK16DefaultParsing.isSelected());\n        PrefManager.get().setMaxLogfileSize(Integer.parseInt(generalPanel.maxLogfileSizeField.getText()));\n        dispose();\n    }\n    \n    static class GeneralPanel extends JPanel {\n        JTextField maxLinesField;\n        JTextField bufferField;\n        JTextField maxLogfileSizeField;\n        JCheckBox forceLoggcLoading;\n        JCheckBox showHotspotClasses;\n\n        public GeneralPanel() {\n            setLayout(new FlowLayout(FlowLayout.RIGHT));\n            JPanel innerPanel = new JPanel();\n            innerPanel.setLayout(new BoxLayout(innerPanel, BoxLayout.Y_AXIS));\n                        \n            JPanel layoutPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n            layoutPanel.add(new JLabel(\"Maximum amount of lines to check for\\n class histogram or possible deadlock informations\"));\n            maxLinesField = new JTextField(3);\n            layoutPanel.add(maxLinesField);\n            innerPanel.add(layoutPanel);\n            \n            layoutPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n            layoutPanel.add(new JLabel(\"Stream Reset Buffer Size (in bytes)\"));\n            bufferField = new JTextField(10);\n            layoutPanel.add(bufferField);\n            bufferField.setHorizontalAlignment(JTextField.RIGHT);\n            innerPanel.add(layoutPanel);\n            \n            layoutPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n            layoutPanel.add(new JLabel(\"Force Open Loggc Option even if class histograms were found in general logfile\"));\n            forceLoggcLoading = new JCheckBox();\n            layoutPanel.add(forceLoggcLoading);\n            innerPanel.add(layoutPanel);\n            \n            layoutPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n            layoutPanel.add(new JLabel(\"Maximum logfile size in kbytes to display\\n full logfile (set to 0 for unlimited size)\"));\n            maxLogfileSizeField = new JTextField(10);\n            maxLogfileSizeField.setHorizontalAlignment(JTextField.RIGHT);\n            layoutPanel.add(maxLogfileSizeField);\n            innerPanel.add(layoutPanel);\n            \n            \n            layoutPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n            layoutPanel.add(new JLabel(\"Show internal hotspot classes in class histograms\"));\n            showHotspotClasses = new JCheckBox();\n            layoutPanel.add(showHotspotClasses);\n            innerPanel.add(layoutPanel);\n\n            // add preferences to parent panel.\n            add(innerPanel);\n        }\n    }\n    \n    public static class RegExPanel extends JPanel implements ActionListener {\n        JComboBox<String> dateParsingRegexs;\n        JCheckBox isMillisTimeStamp;\n        JCheckBox isJDK16DefaultParsing;\n        JButton clearButton;\n        String lastSelectedItem = null;\n        \n        RegExPanel() {\n            setLayout(new BorderLayout());\n            JPanel layoutPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n            \n            layoutPanel.add(new JLabel(\"Regular Expression for parsing timestamps in logs files\"));\n            dateParsingRegexs = new JComboBox<>();\n            dateParsingRegexs.setEditable(true);\n            dateParsingRegexs.addActionListener(this);\n            layoutPanel.add(dateParsingRegexs);\n            clearButton = new JButton(\"Clear\");\n            clearButton.addActionListener(this);\n            layoutPanel.add(clearButton);\n            \n            add(layoutPanel,BorderLayout.CENTER);\n            \n            JPanel lowerPanel = new JPanel(new BorderLayout());\n            layoutPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n            isMillisTimeStamp = new JCheckBox();\n            layoutPanel.add(new JLabel(\"Parsed timestamp is a long representing msecs since 1970\"));\n            layoutPanel.add(isMillisTimeStamp);\n            lowerPanel.add(layoutPanel,BorderLayout.NORTH);\n            \n            layoutPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT));\n            isJDK16DefaultParsing = new JCheckBox();\n            layoutPanel.add(new JLabel(\"Perform Parsing for Default Thread Dump Timestamps of current JDKs.\"));\n            layoutPanel.add(isJDK16DefaultParsing);\n            lowerPanel.add(layoutPanel,BorderLayout.CENTER);\n            add(lowerPanel, BorderLayout.SOUTH);\n        }\n        \n        public void actionPerformed(ActionEvent e) {\n            if(e.getSource() == dateParsingRegexs) {\n                if((lastSelectedItem == null) || !Objects.equals(dateParsingRegexs.getSelectedItem(), lastSelectedItem)) {\n                    dateParsingRegexs.addItem((String) dateParsingRegexs.getSelectedItem());\n                    lastSelectedItem = (String) dateParsingRegexs.getSelectedItem();\n                }\n            } else if (e.getSource() == clearButton) {\n                dateParsingRegexs.setModel(new DefaultComboBoxModel<>());\n            }\n        }\n    }\n    \n    //Must be called from the event-dispatching thread.\n    public void resetFocus() {\n    }\n    \n    \n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/SearchDialog.java",
    "content": "/*\n * SearchDialog.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: SearchDialog.java,v 1.10 2008-01-09 09:31:35 irockel Exp $\n */\n\npackage de.grimmfrost.tda;\n\nimport de.grimmfrost.tda.utils.TableSorter;\nimport de.grimmfrost.tda.utils.ThreadsTableModel;\nimport javax.swing.*;\nimport java.awt.*;\nimport java.awt.event.*;\nimport javax.swing.text.Position;\nimport javax.swing.tree.TreePath;\n\n/**\n *\n * @author irockel\n */\npublic class SearchDialog extends JDialog\n        implements ActionListener {\n    \n    private static String SEARCH = \"search\";\n    private static String CANCEL = \"cancel\";\n        \n    private JTextField searchField;\n    \n    private JComponent searchComp;\n        \n    public SearchDialog(JFrame owner, JComponent comp) {\n        super(owner, \"Search this category... \", true);\n        setLayout(new FlowLayout(FlowLayout.LEFT));\n        \n        //Create everything.\n        searchField = new JTextField(10);\n        searchField.setActionCommand(SEARCH);\n        searchField.addActionListener(this);\n        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);\n        \n        JLabel label = new JLabel(\"Enter search string: \");\n        label.setLabelFor(searchField);\n        \n        searchComp = comp;\n        \n        JComponent buttonPane = createButtonPanel();\n        \n        //Lay out everything.\n        JPanel textPane = new JPanel(new FlowLayout(FlowLayout.TRAILING));\n        textPane.add(label);\n        textPane.add(searchField);\n        \n        add(textPane);\n        add(buttonPane);\n    }\n    \n    protected JComponent createButtonPanel() {\n        JPanel p = new JPanel(new GridLayout(0,1));\n        JButton searchButton = new JButton(\"Search\");\n        \n        searchButton.setActionCommand(SEARCH);\n        searchButton.addActionListener(this);\n        \n        p.add(searchButton);\n        \n        return p;\n    }\n    \n    public void actionPerformed(ActionEvent e) {\n        String cmd = e.getActionCommand();\n        \n        if (SEARCH.equals(cmd)) {            \n            if(searchComp instanceof JTree) {\n                TreePath searchPath = ((JTree) searchComp).getNextMatch(searchField.getText(), 0, Position.Bias.Forward);\n\n                if (searchPath != null) {\n                    ((JTree) searchComp).setSelectionPath(searchPath);\n                    Rectangle view = ((JTree) searchComp).getPathBounds(searchPath);\n                    ((JViewport) searchComp.getParent()).scrollRectToVisible(view);\n                    dispose();\n                    searchComp.requestFocusInWindow();\n                } else {\n                    JOptionPane.showMessageDialog(getOwner(),\n                            searchField.getText() + \" not found!\",\n                            \"Search Error\",\n                            JOptionPane.ERROR_MESSAGE);\n                    resetFocus();\n                }\n            } else if (searchComp instanceof JTable) {\n                ThreadsTableModel ttm = (ThreadsTableModel) ((TableSorter) ((JTable) searchComp).getModel()).getTableModel();\n                int row = ttm.searchRowWithName(((JTable) searchComp).getSelectedRow(), searchField.getText());\n                ((JTable) searchComp).getSelectionModel().setSelectionInterval(row, row);\n            }\n        }\n    }\n    \n    //Must be called from the event-dispatching thread.\n    protected void resetFocus() {\n        searchField.requestFocusInWindow();\n    }\n    \n    public void reset() {\n    }\n\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/TDA.java",
    "content": "/**\n * Thread Dump Analysis Tool, parses Thread Dump input and displays it as tree\n * <p>\n * This file is part of TDA - Thread Dump Analysis Tool.\n * <p>\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n * <p>\n * TDA is distributed in the hope that it will be useful,h\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n * <p>\n * TDA should have received a copy of the Lesser GNU General Public License\n * along with Foobar; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n */\npackage de.grimmfrost.tda;\n\nimport com.formdev.flatlaf.FlatLightLaf;\nimport de.grimmfrost.tda.jconsole.MBeanDumper;\nimport de.grimmfrost.tda.model.*;\nimport de.grimmfrost.tda.parser.DumpParser;\nimport de.grimmfrost.tda.parser.DumpParserFactory;\nimport de.grimmfrost.tda.utils.AppInfo;\nimport de.grimmfrost.tda.utils.Browser;\nimport de.grimmfrost.tda.utils.HistogramTableModel;\nimport de.grimmfrost.tda.utils.MonitorComparator;\nimport de.grimmfrost.tda.utils.PrefManager;\nimport de.grimmfrost.tda.utils.StatusBar;\nimport de.grimmfrost.tda.utils.SwingWorker;\nimport de.grimmfrost.tda.utils.TableSorter;\nimport de.grimmfrost.tda.utils.ThreadsTableModel;\nimport de.grimmfrost.tda.utils.ThreadsTableSelectionModel;\nimport de.grimmfrost.tda.utils.TipOfDay;\nimport de.grimmfrost.tda.utils.TreeRenderer;\nimport de.grimmfrost.tda.utils.ViewScrollPane;\nimport de.grimmfrost.tda.utils.jedit.JEditTextArea;\nimport de.grimmfrost.tda.utils.jedit.PopupMenu;\n\nimport de.grimmfrost.tda.utils.LogManager;\n\nimport java.awt.*;\nimport java.util.logging.Level;\nimport java.util.logging.Logger;\nimport java.awt.datatransfer.UnsupportedFlavorException;\nimport java.awt.dnd.*;\nimport java.io.FileNotFoundException;\nimport java.util.*;\nimport javax.swing.JEditorPane;\nimport javax.swing.JFrame;\nimport javax.swing.JPanel;\nimport javax.swing.JSplitPane;\nimport javax.swing.SwingUtilities;\nimport javax.swing.JTree;\nimport javax.swing.event.HyperlinkEvent;\nimport javax.swing.event.HyperlinkListener;\nimport javax.swing.event.ListSelectionEvent;\nimport javax.swing.event.MenuEvent;\nimport javax.swing.event.MenuListener;\nimport javax.swing.text.Position;\nimport javax.swing.tree.DefaultMutableTreeNode;\nimport javax.swing.tree.TreeSelectionModel;\nimport javax.swing.event.TreeSelectionEvent;\nimport javax.swing.event.TreeSelectionListener;\nimport java.io.IOException;\nimport java.awt.datatransfer.DataFlavor;\nimport java.awt.datatransfer.Transferable;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.awt.event.KeyEvent;\nimport java.awt.event.MouseAdapter;\nimport java.awt.event.MouseEvent;\nimport java.awt.event.MouseListener;\nimport java.awt.event.WindowEvent;\nimport java.awt.event.WindowAdapter;\nimport java.io.BufferedReader;\nimport java.io.ByteArrayInputStream;\nimport java.io.File;\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.InputStream;\nimport java.io.InputStreamReader;\nimport java.io.ObjectInputStream;\nimport java.io.ObjectOutputStream;\nimport java.text.NumberFormat;\nimport java.util.List;\nimport java.util.zip.GZIPInputStream;\nimport java.util.zip.GZIPOutputStream;\nimport javax.swing.BorderFactory;\nimport javax.swing.ImageIcon;\nimport javax.swing.JButton;\nimport javax.swing.JCheckBox;\nimport javax.swing.JCheckBoxMenuItem;\nimport javax.swing.JComponent;\nimport javax.swing.JFileChooser;\nimport javax.swing.JLabel;\nimport javax.swing.JMenu;\nimport javax.swing.JMenuItem;\nimport javax.swing.JOptionPane;\nimport javax.swing.JPopupMenu;\nimport javax.swing.JTable;\nimport javax.swing.JTextField;\nimport javax.swing.KeyStroke;\nimport javax.swing.ProgressMonitorInputStream;\nimport javax.swing.event.CaretEvent;\nimport javax.swing.event.CaretListener;\nimport javax.swing.event.ChangeEvent;\nimport javax.swing.event.ChangeListener;\nimport javax.swing.event.ListSelectionListener;\nimport javax.swing.filechooser.FileFilter;\nimport javax.swing.tree.DefaultTreeModel;\nimport javax.swing.tree.TreeNode;\nimport javax.swing.tree.TreePath;\n\n/**\n * main class of the Thread Dump Analyzer. Start using static main method.\n *\n * @author irockel\n */\npublic class TDA extends JPanel implements ListSelectionListener, TreeSelectionListener, ActionListener, MenuListener {\n    private static final Logger LOGGER = LogManager.getLogger(TDA.class);\n    private static FileDialog fc;\n    private static JFileChooser sessionFc;\n    private static final int DIVIDER_SIZE = 4;\n    protected static JFrame frame;\n\n    private static String dumpFile;\n\n    private static int fontSizeModifier = 0;\n\n    private JEditorPane htmlPane;\n    private JEditTextArea jeditPane;\n    protected JTree tree;\n    protected DefaultTreeModel treeModel;\n    private JSplitPane splitPane;\n    protected JSplitPane topSplitPane;\n    private DumpStore dumpStore;\n    private Vector<DefaultMutableTreeNode> topNodes;\n    private ViewScrollPane htmlView;\n    private ViewScrollPane tableView;\n    private ViewScrollPane dumpView;\n    private JTextField filter;\n    private JCheckBox checkCase;\n    private PreferencesDialog prefsDialog;\n    private FilterDialog filterDialog;\n    private CustomCategoriesDialog categoriesDialog;\n    private JTable histogramTable;\n    private JMenuItem showDumpMenuItem;\n    boolean runningAsJConsolePlugin;\n    boolean runningAsVisualVMPlugin;\n    private DefaultMutableTreeNode logFile;\n    private MBeanDumper mBeanDumper;\n    private MainMenu pluginMainMenu;\n    private boolean isFoundClassHistogram = false;\n    private DropTarget dt = null;\n    private DropTarget hdt = null;\n    private int dumpCounter;\n\n\n    private StatusBar statusBar;\n\n    private SearchDialog searchDialog;\n\n    /**\n     * constructor (needs to be public for plugin)\n     */\n    public TDA(boolean setLF) {\n        super(new BorderLayout());\n\n        if (setLF) {\n            // init L&F\n            setupLookAndFeel();\n        }\n    }\n\n    /**\n     * constructor (needs to be public for plugin)\n     */\n    public TDA(boolean setLF, MBeanDumper mBeanDumper) {\n        this(setLF);\n\n        this.mBeanDumper = mBeanDumper;\n    }\n\n    public TDA(boolean setLF, String dumpFile) {\n        this(setLF);\n        TDA.dumpFile = dumpFile;\n    }\n\n    /**\n     * initializes tda panel\n     * @param asJConsolePlugin specifies if tda is running as jconsole plugin\n     * @param asVisualVMPlugin specifies if tda is running as visualvm plugin\n     */\n    public void init(boolean asJConsolePlugin, boolean asVisualVMPlugin) {\n        // init everything\n        tree = new JTree();\n        addTreeListener(tree);\n        runningAsJConsolePlugin = asJConsolePlugin;\n        runningAsVisualVMPlugin = asVisualVMPlugin;\n\n        //Create the HTML viewing pane.\n        if (!this.runningAsVisualVMPlugin && !this.runningAsJConsolePlugin) {\n            InputStream is = TDA.class.getResourceAsStream(\"doc/welcome.html\");\n\n            htmlPane = new JEditorPane();\n            String welcomeText = parseWelcomeURL(is);\n            htmlPane.setContentType(\"text/html\");\n            htmlPane.setText(welcomeText);\n        } else if (asJConsolePlugin) {\n            htmlPane = new JEditorPane(\"text/html\", \"<html><body bgcolor=\\\"ffffff\\\"><i>Press Button above to request a thread dump.</i></body></html>\");\n        } else {\n            htmlPane = new JEditorPane(\"text/html\", \"<html><body bgcolor=\\\"ffffff\\\"></body></html>\");\n        }\n        htmlPane.setEditable(false);\n\n        if (!asJConsolePlugin && !asVisualVMPlugin) {\n            hdt = new DropTarget(htmlPane, new FileDropTargetListener());\n        }\n\n        JEditorPane emptyPane = new JEditorPane(\"text/html\", \"\");\n        emptyPane.setEditable(false);\n\n        htmlPane.addHyperlinkListener(\n                new HyperlinkListener() {\n                    public void hyperlinkUpdate(HyperlinkEvent evt) {\n                        // if a link was clicked\n                        if (evt.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {\n                            if (evt.getDescription().startsWith(\"monitor\")) {\n                                navigateToMonitor(evt.getDescription());\n                            } else if (evt.getDescription().startsWith(\"dump\")) {\n                                navigateToDump();\n                            } else if (evt.getDescription().startsWith(\"wait\")) {\n                                navigateToChild(\"Threads waiting\");\n                            } else if (evt.getDescription().startsWith(\"sleep\")) {\n                                navigateToChild(\"Threads sleeping\");\n                            } else if (evt.getDescription().startsWith(\"dead\")) {\n                                navigateToChild(\"Deadlocks\");\n                            } else if (evt.getDescription().startsWith(\"threaddump\")) {\n                                addMXBeanDump();\n                            } else if (evt.getDescription().startsWith(\"openlogfile\") && !evt.getDescription().endsWith(\"//\")) {\n                                File[] files = {new File(evt.getDescription().substring(14))};\n                                openFiles(files, false);\n                            } else if (evt.getDescription().startsWith(\"openlogfile\")) {\n                                chooseFile();\n                            } else if (evt.getDescription().startsWith(\"opensession\") && !evt.getDescription().endsWith(\"//\")) {\n                                File file = new File(evt.getDescription().substring(14));\n                                openSession(file, true);\n                            } else if (evt.getDescription().startsWith(\"opensession\")) {\n                                openSession();\n                            } else if (evt.getDescription().startsWith(\"preferences\")) {\n                                showPreferencesDialog();\n                            } else if (evt.getDescription().startsWith(\"filters\")) {\n                                showFilterDialog();\n                            } else if (evt.getDescription().startsWith(\"categories\")) {\n                                showCategoriesDialog();\n                            } else if (evt.getURL() != null) {\n                                try {\n                                    // launch a browser with the appropriate URL\n                                    Browser.open(evt.getURL().toString());\n                                } catch (InterruptedException e) {\n                                    System.out.println(\"Error launching external browser.\");\n                                } catch (IOException e) {\n                                    System.out.println(\"I/O error launching external browser.\" + e.getMessage());\n                                    e.printStackTrace();\n                                }\n                            }\n                        }\n                    }\n\n                });\n\n        htmlView = new ViewScrollPane(htmlPane, runningAsVisualVMPlugin);\n        ViewScrollPane emptyView = new ViewScrollPane(emptyPane, runningAsVisualVMPlugin);\n\n        // create the top split pane\n        topSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);\n        topSplitPane.setLeftComponent(emptyView);\n        topSplitPane.setDividerSize(DIVIDER_SIZE);\n        topSplitPane.setContinuousLayout(true);\n        topSplitPane.setResizeWeight(0.2);\n\n        //Add the scroll panes to a split pane.\n        splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT);\n        splitPane.setBottomComponent(htmlView);\n        splitPane.setTopComponent(topSplitPane);\n        splitPane.setDividerSize(DIVIDER_SIZE);\n        splitPane.setContinuousLayout(true);\n        splitPane.setResizeWeight(0.5);\n\n        splitPane.setForeground(Color.red);\n\n        if (this.runningAsVisualVMPlugin) {\n            setOpaque(true);\n            setBackground(Color.WHITE);\n            setBorder(BorderFactory.createEmptyBorder(6, 0, 3, 0));\n            topSplitPane.setBorder(BorderFactory.createEmptyBorder());\n            topSplitPane.setOpaque(false);\n            topSplitPane.setBackground(Color.WHITE);\n            htmlPane.setBorder(BorderFactory.createEmptyBorder());\n            htmlPane.setOpaque(false);\n            htmlPane.setBackground(Color.WHITE);\n            splitPane.setBorder(BorderFactory.createEmptyBorder());\n            splitPane.setOpaque(false);\n            splitPane.setBackground(Color.WHITE);\n        }\n\n        Dimension minimumSize = new Dimension(200, 50);\n        htmlView.setMinimumSize(minimumSize);\n        emptyView.setMinimumSize(minimumSize);\n\n        //Add the split pane to this panel.\n        add(htmlView, BorderLayout.CENTER);\n\n        statusBar = new StatusBar(!(asJConsolePlugin || asVisualVMPlugin));\n        add(statusBar, BorderLayout.SOUTH);\n\n        firstFile = true;\n        setFileOpen(false);\n\n        if (!runningAsVisualVMPlugin) {\n            setShowToolbar(PrefManager.get().getShowToolbar());\n        }\n\n        if (firstFile && runningAsVisualVMPlugin) {\n            // init filechooser\n            fc = new FileDialog(getFrame());\n            fc.setMultipleMode(true);\n            try {\n                fc.setDirectory(PrefManager.get().getSelectedPath().getCanonicalPath());\n            } catch (IOException ioe) {\n                // ignore\n            }\n        }\n\n        if (!runningAsJConsolePlugin && !runningAsVisualVMPlugin) {\n            new DropTarget(htmlPane, DnDConstants.ACTION_REFERENCE | DnDConstants.ACTION_LINK, getDropTargetListener());\n        }\n    }\n\n    private DropTargetListener getDropTargetListener() {\n        return new DropTargetListener() {\n            public void dragEnter(DropTargetDragEvent event) {\n            }\n\n            public void dragOver(DropTargetDragEvent event) {\n            }\n\n            public void dropActionChanged(DropTargetDragEvent event) {\n            }\n\n            public void dragExit(DropTargetEvent event) {\n            }\n\n            public void drop(DropTargetDropEvent event) {\n                try {\n                    event.acceptDrop(DnDConstants.ACTION_REFERENCE);\n                    Transferable transfer = event.getTransferable();\n                    File[] files = getAcceptedFiles(transfer);\n                    if (null != files && files.length != 0) {\n                        openFiles(files, false);\n                        event.getDropTargetContext().dropComplete(true);\n                    }\n                } catch (InvalidDnDOperationException ex) {\n                    // ignore\n                }\n            }\n        };\n    }\n\n    private File[] getAcceptedFiles(Transferable transferable) {\n        try {\n            if (!transferable.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) {\n                return null;\n            }\n\n            List filelist = (List) transferable.getTransferData(DataFlavor.javaFileListFlavor);\n            List acceptedFiles = new ArrayList();\n            File[] files = (File[]) filelist.toArray(new File[0]);\n            for (int i = 0; i < files.length; i++) {\n                if (!files[i].isDirectory()) {\n                    acceptedFiles.add(files[i]);\n                }\n            }\n            return (File[]) acceptedFiles.toArray(new File[0]);\n        } catch (IOException ex) {\n            return null;\n        } catch (UnsupportedFlavorException ex) {\n            return null;\n        }\n    }\n\n    private void getLogfileFromClipboard() {\n        Transferable t = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(null);\n        String text = null;\n\n        try {\n            if (t != null && t.isDataFlavorSupported(DataFlavor.stringFlavor)) {\n                text = (String) t.getTransferData(DataFlavor.stringFlavor);\n            }\n        } catch (UnsupportedFlavorException ex) {\n            LOGGER.log(Level.SEVERE, \"Unsupported flavor for clipboard data\", ex);\n        } catch (IOException ex) {\n            LOGGER.log(Level.SEVERE, \"IO error reading clipboard data\", ex);\n        }\n\n        if (text != null) {\n            if (topNodes == null) {\n                initDumpDisplay(text);\n            } else {\n                addDumpStream(new ByteArrayInputStream(text.getBytes()), \"Clipboard at \" + new Date(System.currentTimeMillis()), false);\n                addToLogfile(text);\n                if (this.getRootPane() != null) {\n                    this.getRootPane().revalidate();\n                }\n                displayContent(null);\n            }\n\n            if (!this.runningAsVisualVMPlugin) {\n                getMainMenu().getFindLRThreadsToolBarButton().setEnabled(true);\n                getMainMenu().getExpandButton().setEnabled(true);\n                getMainMenu().getCollapseButton().setEnabled(true);\n            }\n        }\n    }\n\n    private String parseWelcomeURL(InputStream is) {\n        BufferedReader br = null;\n        String resultString = null;\n\n        StringBuffer result = new StringBuffer();\n\n        try {\n            br = new BufferedReader(new InputStreamReader(is));\n            while (br.ready()) {\n                result.append(br.readLine());\n                result.append(\"\\n\");\n            }\n            resultString = result.toString();\n            resultString = resultString.replaceFirst(\"./important.png\", TDA.class.getResource(\"doc/important.png\").toString());\n            resultString = resultString.replaceFirst(\"./fileopen.png\", TDA.class.getResource(\"doc/fileopen.png\").toString());\n            resultString = resultString.replaceFirst(\"./settings.png\", TDA.class.getResource(\"doc/settings.png\").toString());\n            resultString = resultString.replaceFirst(\"./help.png\", TDA.class.getResource(\"doc/help.png\").toString());\n            resultString = resultString.replaceFirst(\"<!-- ##tipofday## -->\", TipOfDay.getTipOfDay());\n\n            String[] recentFiles = PrefManager.get().getRecentFiles();\n            List<String> existingFiles = new ArrayList<>();\n            for (String recentFile : recentFiles) {\n                if (recentFile.trim().length() > 0) {\n                    if (new File(recentFile).exists()) {\n                        existingFiles.add(recentFile);\n                    }\n                }\n            }\n            if (existingFiles.size() != recentFiles.length) {\n                PrefManager.get().setRecentFiles(existingFiles.toArray(new String[0]));\n            }\n            resultString = resultString.replaceFirst(\"<!-- ##recentlogfiles## -->\", getAsTable(\"openlogfile://\", existingFiles.toArray(new String[0])));\n\n            String[] recentSessions = PrefManager.get().getRecentSessions();\n            List<String> existingSessions = new ArrayList<>();\n            for (String recentSession : recentSessions) {\n                if (recentSession.trim().length() > 0) {\n                    if (new File(recentSession).exists()) {\n                        existingSessions.add(recentSession);\n                    }\n                }\n            }\n            if (existingSessions.size() != recentSessions.length) {\n                PrefManager.get().setRecentSessions(existingSessions.toArray(new String[0]));\n            }\n            resultString = resultString.replaceFirst(\"<!-- ##recentsessions## -->\", getAsTable(\"opensession://\", existingSessions.toArray(new String[0])));\n        } catch (IllegalArgumentException ex) {\n            // hack to prevent crashing of the app because off unparsed replacer.\n            LOGGER.log(Level.SEVERE, \"Failed to parse welcome page replacers\", ex);\n        } catch (IOException ex) {\n            LOGGER.log(Level.SEVERE, \"IO error reading welcome page\", ex);\n        } finally {\n            try {\n                if (br != null) {\n                    br.close();\n                    is.close();\n                }\n            } catch (IOException ex) {\n                LOGGER.log(Level.SEVERE, \"Error closing stream\", ex);\n            }\n        }\n        // remove unparsed replacers.\n        resultString = resultString.replaceFirst(\"<!-- ##tipofday## -->\", \"\");\n        resultString = resultString.replaceFirst(\"<!-- ##recentlogfiles## -->\", \"\");\n        resultString = resultString.replaceFirst(\"<!-- ##recentsessions## -->\", \"\");\n        return (resultString);\n    }\n\n    /**\n     * convert the given elements into a href-table to be included into the\n     * welcome page. Only last four elements are taken.\n     * @param prefix link prefix to use\n     * @param elements list of elements.\n     * @return given elements as table.\n     */\n    private String getAsTable(String prefix, String[] elements) {\n        StringBuffer result = new StringBuffer();\n        int from = elements.length > 4 ? elements.length - 4 : 0;\n\n        for (int i = from; i < elements.length; i++) {\n            if (elements[i].trim().length() > 0) {\n                // remove backslashes as they confuse the html display.\n                String elem = elements[i].replaceAll(\"\\\\\\\\\", \"/\");\n                result.append(\"<tr><td width=\\\"20px\\\"></td><td><a href=\\\"\");\n                result.append(prefix);\n                result.append(elem);\n                result.append(\"\\\">\");\n                result.append(cutLink(elem, 80));\n                result.append(\"</a></td></tr>\\n\");\n            }\n        }\n\n        return (result.toString());\n    }\n\n    /**\n     * cut the given link string to the specified length + three dots.\n     * @param link\n     * @param len\n     * @return cut link or original link if link.length() <= len\n     */\n    private String cutLink(String link, int len) {\n        if (link.length() > len) {\n            String cut = link.substring(0, len / 2) +\n                    \"...\" + link.substring(link.length() - (len / 2));\n            return (cut);\n        }\n\n        return (link);\n    }\n\n    /**\n     * request jmx dump\n     */\n    public LogFileContent addMXBeanDump() {\n        String dump = mBeanDumper.threadDump();\n        String locks = mBeanDumper.findDeadlock();\n\n        // if deadlocks were found, append them to dump output.\n        if (locks != null && !\"\".equals(locks)) {\n            dump += \"\\n\" + locks;\n        }\n        //System.out.println(dump);\n        if (topNodes == null) {\n            initDumpDisplay(null);\n        }\n        addDumpStream(new ByteArrayInputStream(dump.getBytes()), \"Logfile\", false);\n        dumpCounter++;\n        LogFileContent lfc = addToLogfile(dump);\n\n        if (this.getRootPane() != null) {\n            this.getRootPane().revalidate();\n        }\n        tree.setShowsRootHandles(false);\n        displayContent(null);\n\n        if (!this.runningAsVisualVMPlugin) {\n            getMainMenu().getFindLRThreadsToolBarButton().setEnabled(true);\n            getMainMenu().getExpandButton().setEnabled(true);\n            getMainMenu().getCollapseButton().setEnabled(true);\n        }\n        return (lfc);\n    }\n\n    private LogFileContent addToLogfile(String dump) {\n        ((LogFileContent) logFile.getUserObject()).appendToContentBuffer(dump);\n        return (((LogFileContent) logFile.getUserObject()));\n    }\n\n    /**\n     * create file filter for session files.\n     * @return file filter instance.\n     */\n    private static FileFilter getSessionFilter() {\n        FileFilter filter = new FileFilter() {\n\n            public boolean accept(File arg0) {\n                return (arg0 != null && (arg0.isDirectory() || arg0.getName().endsWith(\"tsf\")));\n            }\n\n            public String getDescription() {\n                return (\"TDA Session Files\");\n            }\n\n        };\n        return (filter);\n    }\n\n    /**\n     * initializes session file chooser, if not already done.\n     */\n    private static void initSessionFc() {\n\n        sessionFc = new JFileChooser();\n        sessionFc.setMultiSelectionEnabled(true);\n        sessionFc.setCurrentDirectory(PrefManager.get().getSelectedPath());\n        if ((PrefManager.get().getPreferredSizeFileChooser().height > 0)) {\n            sessionFc.setPreferredSize(PrefManager.get().getPreferredSizeFileChooser());\n        }\n        sessionFc.setFileFilter(getSessionFilter());\n\n        sessionFc.setSelectedFile(null);\n    }\n\n    /**\n     * expand all dump nodes in the root tree\n     * @param expand true=expand, false=collapse.\n     */\n    public void expandAllDumpNodes(boolean expand) {\n        TreeNode root = (TreeNode) tree.getModel().getRoot();\n        expandAll(tree, new TreePath(root), expand);\n    }\n\n    /**\n     * expand all nodes of the currently selected category, only works for tree categories.\n     */\n    private void expandAllCatNodes(boolean expand) {\n        DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();\n        JTree catTree = (JTree) ((TreeCategory) node.getUserObject()).getCatComponent(this);\n        if (expand) {\n            for (int i = 0; i < catTree.getRowCount(); i++) {\n                catTree.expandRow(i);\n            }\n        } else {\n            for (int i = 0; i < catTree.getRowCount(); i++) {\n                catTree.collapseRow(i);\n            }\n        }\n    }\n\n    /**\n     * sort monitors by thread amount\n     */\n    private void sortCatByThreads() {\n        DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();\n        ((TreeCategory) node.getUserObject()).sort(new MonitorComparator());\n        displayCategory(node.getUserObject());\n    }\n\n    /**\n     * expand or collapse all nodes of the specified tree\n     * @param parent the parent to start with\n     * @param expand expand=true, collapse=false\n     */\n    private void expandAll(JTree catTree, TreePath parent, boolean expand) {\n        // Traverse children\n        TreeNode node = (TreeNode) parent.getLastPathComponent();\n        if (node.getChildCount() >= 0) {\n            for (Enumeration e = node.children(); e.hasMoreElements(); ) {\n                TreeNode n = (TreeNode) e.nextElement();\n                TreePath path = parent.pathByAddingChild(n);\n                expandAll(catTree, path, expand);\n            }\n        }\n\n        if (parent.getPathCount() > 1) {\n            // Expansion or collapse must be done bottom-up\n            if (expand) {\n                catTree.expandPath(parent);\n            } else {\n                catTree.collapsePath(parent);\n            }\n        }\n    }\n\n    private void saveSession() {\n        initSessionFc();\n        int returnVal = sessionFc.showSaveDialog(this.getRootPane());\n        sessionFc.setPreferredSize(sessionFc.getSize());\n\n        PrefManager.get().setPreferredSizeFileChooser(sessionFc.getSize());\n\n        if (returnVal == JFileChooser.APPROVE_OPTION) {\n            File file = sessionFc.getSelectedFile();\n            // check if file has a suffix\n            if (file.getName().indexOf(\".\") < 0) {\n                file = new File(file.getAbsolutePath() + \".tsf\");\n            }\n            int selectValue = 0;\n            if (file.exists()) {\n                Object[] options = {\"Overwrite\", \"Cancel\"};\n                selectValue = JOptionPane.showOptionDialog(null, \"<html><body>File exists<br><b>\" + file +\n                                \"</b></body></html>\", \"Confirm overwrite\",\n                        JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE,\n                        null, options, options[0]);\n            }\n            if (selectValue == 0) {\n                ObjectOutputStream oos = null;\n                try {\n                    oos = new ObjectOutputStream(new GZIPOutputStream(new FileOutputStream(file)));\n\n                    oos.writeObject(dumpFile);\n                    oos.writeObject(topNodes);\n                    oos.writeObject(dumpStore);\n                } catch (IOException ex) {\n                    ex.printStackTrace();\n                } finally {\n                    try {\n                        oos.close();\n                    } catch (IOException ex) {\n                        ex.printStackTrace();\n                    }\n                }\n                PrefManager.get().addToRecentSessions(file.getAbsolutePath());\n            }\n        }\n    }\n\n\n    private void openSession() {\n        initSessionFc();\n\n        int returnVal = sessionFc.showOpenDialog(this.getRootPane());\n        sessionFc.setPreferredSize(sessionFc.getSize());\n        PrefManager.get().setPreferredSizeFileChooser(sessionFc.getSize());\n\n        if (returnVal == JFileChooser.APPROVE_OPTION) {\n            File file = sessionFc.getSelectedFile();\n            int selectValue = 0;\n            if ((selectValue == 0) && (file.exists())) {\n                openSession(file, false);\n            }\n        }\n    }\n\n    /**\n     * open the specified session\n     * @param file\n     */\n    private void openSession(File file, boolean isRecent) {\n        try {\n            loadSession(file, isRecent);\n        } catch (FileNotFoundException ex) {\n            JOptionPane.showMessageDialog(this.getRootPane(),\n                    \"Error opening \" + ex.getMessage() + \".\",\n                    \"Error opening session\", JOptionPane.ERROR_MESSAGE);\n        } catch (IOException ex) {\n            JOptionPane.showMessageDialog(this.getRootPane(),\n                    \"Error opening \" + ex.getMessage() + \".\",\n                    \"Error opening session\", JOptionPane.ERROR_MESSAGE);\n        }\n    }\n\n    private void loadSession(File file, boolean isRecent) throws IOException {\n        final ObjectInputStream ois = new ObjectInputStream(new ProgressMonitorInputStream(this, \"Opening session \" + file,\n                new GZIPInputStream(new FileInputStream(file))));\n\n        setFileOpen(true);\n        firstFile = false;\n        resetMainPanel();\n        initDumpDisplay(null);\n\n        final SwingWorker worker = new SwingWorker() {\n\n            public Object construct() {\n                synchronized (syncObject) {\n                    try {\n                        dumpFile = (String) ois.readObject();\n                        topNodes = (Vector) ois.readObject();\n                        dumpStore = (DumpStore) ois.readObject();\n                        ois.close();\n                    } catch (IOException | ClassNotFoundException ex) {\n                        ex.printStackTrace();\n                    } finally {\n                        try {\n                            ois.close();\n                        } catch (IOException ex) {\n                            ex.printStackTrace();\n                        }\n                    }\n                    createTree();\n                }\n\n                return null;\n            }\n        };\n        worker.start();\n        if (!isRecent) {\n            PrefManager.get().addToRecentSessions(file.getAbsolutePath());\n        }\n    }\n\n    private void setShowToolbar(boolean state) {\n        if (state) {\n            add(getMainMenu().getToolBar(), BorderLayout.PAGE_START);\n        } else {\n            remove(getMainMenu().getToolBar());\n        }\n        revalidate();\n        PrefManager.get().setShowToolbar(state);\n    }\n\n    /**\n     * tries the native look and feel on mac and windows and metal on unix (gtk still\n     * isn't looking that nice, even in 1.6)\n     */\n    private void setupLookAndFeel() {\n        FlatLightLaf.setup();\n\n        System.setProperty(\"apple.laf.useScreenMenuBar\", \"true\");\n        System.setProperty(\"com.apple.mrj.application.apple.menu.about.name\", \"TDA\");\n    }\n\n    /**\n     * init the basic display for showing dumps\n     *\n     * @param content initial logfile content may also be parsed, can also be null.\n     *        only used for clipboard operations.\n     */\n    public void initDumpDisplay(String content) {\n        // clear tree\n        dumpStore = new DumpStore();\n\n        topNodes = new Vector();\n        if (!runningAsJConsolePlugin && !runningAsVisualVMPlugin) {\n            getMainMenu().getLongMenuItem().setEnabled(true);\n            getMainMenu().getSaveSessionMenuItem().setEnabled(true);\n            getMainMenu().getExpandButton().setEnabled(true);\n            getMainMenu().getCollapseButton().setEnabled(true);\n            getMainMenu().getFindLRThreadsToolBarButton().setEnabled(true);\n            getMainMenu().getCloseAllMenuItem().setEnabled(true);\n            getMainMenu().getExpandAllMenuItem().setEnabled(true);\n            getMainMenu().getCollapseAllMenuItem().setEnabled(true);\n        }\n        if (!runningAsJConsolePlugin || (dumpFile != null)) {\n            if (dumpFile != null) {\n                addDumpFile();\n            } else if (content != null) {\n                addDumpStream(new ByteArrayInputStream(content.getBytes()), \"Clipboard at \" + new Date(System.currentTimeMillis()), false);\n                addToLogfile(content);\n            }\n        }\n        if (runningAsJConsolePlugin || runningAsVisualVMPlugin || isFileOpen()) {\n            // change from html view to split pane\n            remove(0);\n            htmlPane.setText(\"\");\n            splitPane.setBottomComponent(htmlView);\n            add(splitPane, BorderLayout.CENTER);\n\n            revalidate();\n\n            SwingUtilities.invokeLater(() -> {\n                topSplitPane.setDividerLocation(0.3);\n                splitPane.setDividerLocation(0.3);\n\n                // second call to ensure it sticks after layout\n                SwingUtilities.invokeLater(() -> {\n                    topSplitPane.setDividerLocation(0.3);\n                    splitPane.setDividerLocation(0.3);\n                });\n            });\n            revalidate();\n        }\n    }\n\n    /**\n     * add the set dumpFileStream to the tree\n     */\n    private void addDumpFile() {\n        addDumpFile(dumpFile);\n    }\n\n    /**\n     * add the set dumpFileStream to the tree\n     */\n    public void addDumpFile(String filePath) {\n        String[] file = new String[1];\n        file[0] = filePath;\n        addDumpFiles(file);\n    }\n\n    private boolean isLogfileSizeOk(String fileName) {\n        File file = new File(fileName);\n        return (file.isFile() && ((PrefManager.get().getMaxLogfileSize() == 0) ||\n                (file.length() <= (PrefManager.get().getMaxLogfileSize() * 1024))));\n    }\n\n    /**\n     * sync object is needed to synchronize opening of multiple files.\n     */\n    private static final Object syncObject = new Object();\n\n    /**\n     * add the set dumpFileStream to the tree\n     */\n    private void addDumpFiles(String[] files) {\n        for (int i = 0; i < files.length; i++) {\n            try {\n                dumpCounter = 1;\n                addDumpStream(new FileInputStream(files[i]), files[i], true);\n            } catch (FileNotFoundException ex) {\n                JOptionPane.showMessageDialog(this.getRootPane(),\n                        \"Error opening \" + ex.getMessage() + \".\",\n                        \"Error opening file\", JOptionPane.ERROR_MESSAGE);\n            }\n        }\n    }\n\n    private void addDumpStream(InputStream inputStream, String file, boolean withLogfile) {\n        final InputStream parseFileStream = new ProgressMonitorInputStream(this, \"Parsing \" + file, inputStream);\n\n        //Create the nodes.\n        if (!runningAsJConsolePlugin || topNodes.isEmpty()) {\n            topNodes.add(new DefaultMutableTreeNode(new Logfile(file)));\n        }\n        final DefaultMutableTreeNode top = topNodes.get(topNodes.size() - 1);\n\n        if ((!withLogfile && logFile == null) || isLogfileSizeOk(file)) {\n            logFile = new DefaultMutableTreeNode(new LogFileContent(file));\n            if (!runningAsVisualVMPlugin) {\n                top.add(logFile);\n            }\n        }\n        final int currentTopNodesCount = topNodes.size();\n        setFileOpen(true);\n\n        final SwingWorker worker = new SwingWorker() {\n            private final int DIVIDER_MAX_THRESHOLD = 20;\n            private int capturedDivider;\n            private int capturedMaxDivider;\n\n            public Object construct() {\n                synchronized (syncObject) {\n                    capturedDivider = topSplitPane.getDividerLocation();\n                    capturedMaxDivider = topSplitPane.getMaximumDividerLocation();\n                    addThreadDumps(top, parseFileStream);\n                }\n\n                return null;\n            }\n\n            @Override\n            public void finished() {\n                synchronized (syncObject) {\n                    createTree();\n                    tree.expandRow(1);\n\n                    SwingUtilities.invokeLater(() -> {\n                        if (currentTopNodesCount > 1 && capturedDivider > 0 && capturedDivider < capturedMaxDivider - DIVIDER_MAX_THRESHOLD) {\n                            topSplitPane.setDividerLocation(capturedDivider);\n                            // double call to ensure it sticks after layout\n                            SwingUtilities.invokeLater(() -> topSplitPane.setDividerLocation(capturedDivider));\n                        } else {\n                            topSplitPane.setDividerLocation(0.3);\n                            // double call to ensure it sticks after layout\n                            SwingUtilities.invokeLater(() -> topSplitPane.setDividerLocation(0.3));\n                        }\n                    });\n                }\n            }\n        };\n        worker.start();\n    }\n\n    protected void createTree() {\n        //Create a tree that allows multiple selection at a time.\n        if (topNodes.size() == 1) {\n            treeModel = new DefaultTreeModel(topNodes.get(0));\n            tree = new JTree(treeModel);\n            tree.setRootVisible(!runningAsJConsolePlugin && !runningAsVisualVMPlugin);\n            addTreeListener(tree);\n            if (!runningAsJConsolePlugin && !runningAsVisualVMPlugin) {\n                frame.setTitle(\"TDA - Thread Dumps of \" + dumpFile);\n            }\n        } else {\n            DefaultMutableTreeNode root = new DefaultMutableTreeNode(\"Thread Dump Nodes\");\n            treeModel = new DefaultTreeModel(root);\n            for (int i = 0; i < topNodes.size(); i++) {\n                root.add(topNodes.get(i));\n            }\n            tree = new JTree(root);\n            tree.setRootVisible(false);\n            addTreeListener(tree);\n            if (!runningAsJConsolePlugin && !runningAsVisualVMPlugin) {\n                if (!frame.getTitle().endsWith(\"...\")) {\n                    frame.setTitle(frame.getTitle() + \" ...\");\n                }\n            }\n        }\n\n        tree.setShowsRootHandles(true);\n        tree.getSelectionModel().setSelectionMode\n                (TreeSelectionModel.DISCONTIGUOUS_TREE_SELECTION);\n\n        tree.setCellRenderer(new TreeRenderer());\n\n        //Create the scroll pane and add the tree to it.\n        ViewScrollPane treeView = new ViewScrollPane(tree, runningAsVisualVMPlugin);\n\n        topSplitPane.setLeftComponent(treeView);\n\n        Dimension minimumSize = new Dimension(200, 50);\n        treeView.setMinimumSize(minimumSize);\n\n        //Listen for when the selection changes.\n        tree.addTreeSelectionListener(this);\n\n        if (!runningAsJConsolePlugin && !runningAsVisualVMPlugin) {\n            dt = new DropTarget(tree, new FileDropTargetListener());\n        }\n\n        createPopupMenu();\n\n    }\n\n    /**\n     * add a tree listener for enabling/disabling menu and toolbar icons.\n     * @param tree\n     */\n    private void addTreeListener(JTree tree) {\n        tree.addTreeSelectionListener(new TreeSelectionListener() {\n            ViewScrollPane emptyView = null;\n\n            public void valueChanged(TreeSelectionEvent e) {\n                getMainMenu().getCloseMenuItem().setEnabled(e.getPath() != null);\n                if (getMainMenu().getCloseToolBarButton() != null) {\n                    getMainMenu().getCloseToolBarButton().setEnabled(e.getPath() != null);\n                }\n                // reset right pane of the top view:\n\n                if (emptyView == null) {\n                    JEditorPane emptyPane = new JEditorPane(\"text/html\", \"<html><body bgcolor=\\\"ffffff\\\">   </body></html>\");\n                    emptyPane.setEditable(false);\n\n                    emptyView = new ViewScrollPane(emptyPane, runningAsVisualVMPlugin);\n                }\n\n                if (e.getPath() == null ||\n                        !(((DefaultMutableTreeNode) e.getPath().getLastPathComponent()).\n                                getUserObject() instanceof Category)) {\n                    resetPane();\n                }\n            }\n\n            private void resetPane() {\n                int dividerLocation = topSplitPane.getDividerLocation();\n                int maxDivider = topSplitPane.getMaximumDividerLocation();\n                topSplitPane.setRightComponent(emptyView);\n                if (dividerLocation > 0 && dividerLocation < maxDivider - 20) {\n                    topSplitPane.setDividerLocation(dividerLocation);\n                    SwingUtilities.invokeLater(() -> {\n                        if (topSplitPane.getRightComponent() == emptyView) {\n                            topSplitPane.setDividerLocation(dividerLocation);\n                        }\n                    });\n                }\n            }\n\n        });\n    }\n\n\n    private boolean threadDisplay = false;\n\n    private void setThreadDisplay(boolean value) {\n        threadDisplay = value;\n    }\n\n    public boolean isThreadDisplay() {\n        return (threadDisplay);\n    }\n\n    /**\n     * Required by TreeSelectionListener interface.\n     */\n    public void valueChanged(TreeSelectionEvent e) {\n        DefaultMutableTreeNode node = (DefaultMutableTreeNode)\n                e.getPath().getLastPathComponent();\n\n        if (node == null) {\n            return;\n        }\n\n        Object nodeInfo = node.getUserObject();\n        if (nodeInfo instanceof ThreadInfo) {\n            displayThreadInfo(nodeInfo);\n            setThreadDisplay(true);\n        } else if (nodeInfo instanceof ThreadDumpInfo) {\n            displayThreadDumpInfo(nodeInfo);\n        } else if (nodeInfo instanceof HistogramInfo) {\n            HistogramInfo tdi = (HistogramInfo) nodeInfo;\n            displayTable((HistogramTableModel) tdi.content);\n            setThreadDisplay(false);\n        } else if (nodeInfo instanceof LogFileContent) {\n            displayLogFileContent(nodeInfo);\n        } else if (nodeInfo instanceof Logfile && ((String) ((Logfile) nodeInfo).getContent()).startsWith(\"Thread Dumps\")) {\n            displayLogFile();\n            setThreadDisplay(false);\n        } else if (nodeInfo instanceof Category) {\n            displayCategory(nodeInfo);\n            setThreadDisplay(true);\n        } else {\n            setThreadDisplay(false);\n            displayContent(null);\n        }\n    }\n\n    /**\n     * process table selection events (thread display)\n     * @param e the event to process.\n     */\n    public void valueChanged(ListSelectionEvent e) {\n        ThreadsTableSelectionModel ttsm = (ThreadsTableSelectionModel) e.getSource();\n        TableSorter ts = (TableSorter) ttsm.getTable().getModel();\n\n        int[] rows = ttsm.getTable().getSelectedRows();\n        StringBuffer sb = new StringBuffer();\n        for (int row : rows) {\n            appendThreadInfo(sb, ((ThreadsTableModel) ts.getTableModel()).\n                    getInfoObjectAtRow(ts.modelIndex(row)));\n        }\n        displayContent(sb.toString());\n        setThreadDisplay(true);\n    }\n\n    private void displayThreadInfo(Object nodeInfo) {\n        StringBuffer sb = new StringBuffer();\n        appendThreadInfo(sb, nodeInfo);\n        displayContent(sb.toString());\n    }\n\n    private void appendThreadInfo(StringBuffer sb, Object nodeInfo) {\n        ThreadInfo ti = (ThreadInfo) nodeInfo;\n        if (ti.getInfo() != null) {\n            sb.append(ti.getInfo());\n            sb.append(ti.getContent());\n        } else {\n            sb.append(ti.getContent());\n        }\n    }\n\n    /**\n     * display thread dump information for the give node object.\n     * @param nodeInfo\n     */\n    private void displayThreadDumpInfo(Object nodeInfo) {\n        ThreadDumpInfo ti = (ThreadDumpInfo) nodeInfo;\n        displayContent(ti.getOverview());\n    }\n\n    private void displayLogFile() {\n        if (splitPane.getBottomComponent() != htmlView) {\n            splitPane.setBottomComponent(htmlView);\n        }\n        htmlPane.setContentType(\"text/html\");\n        htmlPane.setText(\"\");\n        htmlPane.setCaretPosition(0);\n        threadDisplay = false;\n        statusBar.setInfoText(AppInfo.getStatusBarInfo());\n    }\n\n    private void displayLogFileContent(Object nodeInfo) {\n        int dividerLocation = splitPane.getDividerLocation();\n        int maxDivider = splitPane.getMaximumDividerLocation();\n\n        if (splitPane.getBottomComponent() != jeditPane) {\n            if (jeditPane == null) {\n                initJeditView();\n            }\n            splitPane.setBottomComponent(jeditPane);\n        }\n\n        LogFileContent lfc = (LogFileContent) nodeInfo;\n        jeditPane.setText(lfc.getContent());\n        jeditPane.setCaretPosition(0);\n\n        SwingUtilities.invokeLater(() -> {\n            if (dividerLocation > 0 && dividerLocation < maxDivider - 20) {\n                splitPane.setDividerLocation(dividerLocation);\n            } else {\n                splitPane.setDividerLocation(0.3);\n            }\n        });\n        statusBar.setInfoText(AppInfo.getStatusBarInfo());\n    }\n\n    /**\n     * initialize the base components needed for the jedit view of the\n     * log file\n     */\n    private void initJeditView() {\n        jeditPane = new JEditTextArea();\n        jeditPane.setEditable(false);\n        jeditPane.setCaretVisible(false);\n        jeditPane.setCaretBlinkEnabled(false);\n        jeditPane.setRightClickPopup(new PopupMenu(jeditPane, this, runningAsVisualVMPlugin));\n        jeditPane.getInputHandler().addKeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0), (ActionListener) jeditPane.getRightClickPopup());\n        jeditPane.getInputHandler().addKeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK), (ActionListener) jeditPane.getRightClickPopup());\n    }\n\n    /**\n     * display selected category in upper right frame\n     */\n    private void displayCategory(Object nodeInfo) {\n        Category cat = ((Category) nodeInfo);\n        int dividerLocation = topSplitPane.getDividerLocation();\n        int maxDivider = topSplitPane.getMaximumDividerLocation();\n\n        setThreadDisplay(true);\n        if (cat.getLastView() == null) {\n            JComponent catComp = cat.getCatComponent(this);\n            if (cat.getName().startsWith(\"Monitors\") || cat.getName().startsWith(\"Threads blocked by Monitors\")) {\n                catComp.addMouseListener(getMonitorsPopupMenu());\n            } else {\n                catComp.addMouseListener(getCatPopupMenu());\n            }\n            dumpView = new ViewScrollPane(catComp, runningAsVisualVMPlugin);\n            topSplitPane.setRightComponent(dumpView);\n            cat.setLastView(dumpView);\n        } else {\n            topSplitPane.setRightComponent(cat.getLastView());\n        }\n\n        SwingUtilities.invokeLater(() -> {\n            int targetPos;\n            if (dividerLocation > 0 && dividerLocation < maxDivider - 20) {\n                targetPos = dividerLocation;\n            } else {\n                topSplitPane.setDividerLocation(0.3);\n                return;\n            }\n            topSplitPane.setDividerLocation(targetPos);\n            // double call to ensure it sticks\n            SwingUtilities.invokeLater(() -> topSplitPane.setDividerLocation(targetPos));\n        });\n\n        if (cat.getCurrentlySelectedUserObject() != null) {\n            displayThreadInfo(cat.getCurrentlySelectedUserObject());\n        } else {\n            displayContent(null);\n        }\n\n        if (cat.howManyFiltered() > 0) {\n            statusBar.setInfoText(\"Filtered \" + cat.howManyFiltered() + \" elements in this category. Showing remaining \" + cat.showing() + \" elements.\");\n        } else {\n            statusBar.setInfoText(AppInfo.getStatusBarInfo());\n        }\n\n        displayContent(cat.getInfo());\n    }\n\n    private void displayContent(String text) {\n        if (splitPane.getBottomComponent() != htmlView) {\n            int dividerLocation = splitPane.getDividerLocation();\n            int maxDivider = splitPane.getMaximumDividerLocation();\n            splitPane.setBottomComponent(htmlView);\n            SwingUtilities.invokeLater(() -> {\n                if (dividerLocation > 0 && dividerLocation < maxDivider - 20) {\n                    splitPane.setDividerLocation(dividerLocation);\n                } else {\n                    splitPane.setDividerLocation(0.3);\n                }\n            });\n        }\n        if (text != null) {\n            htmlPane.setContentType(\"text/html\");\n            htmlPane.setText(text);\n            htmlPane.setCaretPosition(0);\n            htmlPane.setForeground(Color.BLACK);\n        } else {\n            htmlPane.setText(\"\");\n        }\n    }\n\n    private void displayTable(HistogramTableModel htm) {\n        setThreadDisplay(false);\n\n        htm.setFilter(\"\");\n        htm.setShowHotspotClasses(PrefManager.get().getShowHotspotClasses());\n\n        TableSorter ts = new TableSorter(htm);\n        histogramTable = new JTable(ts);\n        ts.setTableHeader(histogramTable.getTableHeader());\n        histogramTable.getColumnModel().getColumn(0).setPreferredWidth(700);\n        tableView = new ViewScrollPane(histogramTable, runningAsVisualVMPlugin);\n\n        JPanel histogramView = new JPanel(new BorderLayout());\n        JPanel histoStatView = new JPanel(new FlowLayout(FlowLayout.CENTER, 15, 0));\n        Font font = new Font(\"SansSerif\", Font.PLAIN, 10);\n        JLabel infoLabel = new JLabel(NumberFormat.getInstance().format(htm.getRowCount()) + \" classes and base types\");\n        infoLabel.setFont(font);\n        histoStatView.add(infoLabel);\n        infoLabel = new JLabel(NumberFormat.getInstance().format(htm.getBytes()) + \" bytes\");\n        infoLabel.setFont(font);\n        histoStatView.add(infoLabel);\n        infoLabel = new JLabel(NumberFormat.getInstance().format(htm.getInstances()) + \" live objects\");\n        infoLabel.setFont(font);\n        histoStatView.add(infoLabel);\n        if (htm.isOOM()) {\n            infoLabel = new JLabel(\"<html><b>OutOfMemory found!</b>\");\n            infoLabel.setFont(font);\n            histoStatView.add(infoLabel);\n        }\n        if (htm.isIncomplete()) {\n            infoLabel = new JLabel(\"<html><b>Class Histogram is incomplete! (broken logfile?)</b>\");\n            infoLabel.setFont(font);\n            histoStatView.add(infoLabel);\n        }\n        JPanel filterPanel = new JPanel(new FlowLayout());\n        infoLabel = new JLabel(\"Filter-Expression\");\n        infoLabel.setFont(font);\n        filterPanel.add(infoLabel);\n\n        filter = new JTextField(30);\n        filter.setFont(font);\n        filter.addCaretListener(new FilterListener(htm));\n        filterPanel.add(infoLabel);\n        filterPanel.add(filter);\n        checkCase = new JCheckBox();\n        checkCase.addChangeListener(new CheckCaseListener(htm));\n        infoLabel = new JLabel(\"Ignore Case\");\n        infoLabel.setFont(font);\n        filterPanel.add(infoLabel);\n        filterPanel.add(checkCase);\n        histoStatView.add(filterPanel);\n        histogramView.add(histoStatView, BorderLayout.SOUTH);\n        histogramView.add(tableView, BorderLayout.CENTER);\n\n        histogramView.setPreferredSize(splitPane.getBottomComponent().getSize());\n\n        int dividerLocation = splitPane.getDividerLocation();\n        int maxDivider = splitPane.getMaximumDividerLocation();\n        splitPane.setBottomComponent(histogramView);\n        SwingUtilities.invokeLater(() -> {\n            if (dividerLocation > 0 && dividerLocation < maxDivider - 20) {\n                splitPane.setDividerLocation(dividerLocation);\n            } else {\n                splitPane.setDividerLocation(0.3);\n            }\n        });\n    }\n\n    private class FilterListener implements CaretListener {\n        HistogramTableModel htm;\n        String currentText = \"\";\n\n        FilterListener(HistogramTableModel htm) {\n            this.htm = htm;\n        }\n\n        public void caretUpdate(CaretEvent event) {\n            if (!filter.getText().equals(currentText)) {\n                htm.setFilter(filter.getText());\n                histogramTable.revalidate();\n            }\n        }\n    }\n\n    private class CheckCaseListener implements ChangeListener {\n        HistogramTableModel htm;\n\n        CheckCaseListener(HistogramTableModel htm) {\n            this.htm = htm;\n        }\n\n        public void stateChanged(ChangeEvent e) {\n            htm.setIgnoreCase(checkCase.isSelected());\n            histogramTable.revalidate();\n        }\n    }\n\n    private void addThreadDumps(DefaultMutableTreeNode top, InputStream dumpFileStream) {\n        DumpParser dp = null;\n        try {\n            String fileName = top.getUserObject().toString();\n            Map dumpMap = null;\n            if(runningAsJConsolePlugin || runningAsVisualVMPlugin) {\n                dumpMap = dumpStore.getFromDumpFiles(fileName);\n            }\n\n            if (dumpMap == null) {\n                dumpMap = new HashMap<>();\n                dumpStore.addFileToDumpFiles(fileName, dumpMap);\n            }\n            dp = DumpParserFactory.get().getDumpParserForLogfile(dumpFileStream, dumpMap, runningAsJConsolePlugin,\n                    dumpCounter);\n            ((Logfile) top.getUserObject()).setUsedParser(dp);\n\n            while ((dp != null) && dp.hasMoreDumps()) {\n                top.add(dp.parseNext());\n                if (!isFoundClassHistogram) {\n                    isFoundClassHistogram = dp.isFoundClassHistograms();\n                }\n            }\n        } finally {\n            if (dp != null) {\n                try {\n                    dp.close();\n                } catch (IOException ex) {\n                    ex.printStackTrace();\n                }\n            }\n        }\n    }\n\n    /**\n     * navigate to the currently selected dump in logfile\n     */\n    private void navigateToDumpInLogfile() {\n        Object userObject = ((DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent()).getUserObject();\n        if (userObject instanceof ThreadDumpInfo) {\n            ThreadDumpInfo ti = (ThreadDumpInfo) userObject;\n            int lineNumber = ti.getLogLine();\n\n            // find log file node.\n            TreePath selPath = tree.getSelectionPath();\n            while (selPath != null && !checkNameFromNode((DefaultMutableTreeNode) selPath.getLastPathComponent(), File.separator)) {\n\n                selPath = selPath.getParentPath();\n            }\n\n            tree.setSelectionPath(selPath);\n            tree.scrollPathToVisible(selPath);\n\n            Enumeration childs = ((DefaultMutableTreeNode) selPath.getLastPathComponent()).children();\n            boolean found = false;\n            DefaultMutableTreeNode logfileContent = null;\n            while (!found && childs.hasMoreElements()) {\n                logfileContent = (DefaultMutableTreeNode) childs.nextElement();\n                found = logfileContent.getUserObject() instanceof LogFileContent;\n            }\n\n            if (found) {\n                TreePath monitorPath = new TreePath(logfileContent.getPath());\n                tree.setSelectionPath(monitorPath);\n                tree.scrollPathToVisible(monitorPath);\n                displayLogFileContent(logfileContent.getUserObject());\n                jeditPane.setFirstLine(lineNumber - 1);\n            }\n        }\n    }\n\n    /**\n     * navigate to monitor\n     * @param monitorLink the monitor link to navigate to\n     */\n    private void navigateToMonitor(String monitorLink) {\n        String monitor = monitorLink.substring(monitorLink.lastIndexOf('/') + 1);\n\n        // find monitor node for this thread info\n        DefaultMutableTreeNode dumpNode = null;\n        if (monitorLink.indexOf(\"Dump No.\") > 0) {\n            dumpNode = getDumpRootNode(monitorLink.substring(monitorLink.indexOf('/') + 1, monitorLink.lastIndexOf('/')),\n                    (DefaultMutableTreeNode) tree.getLastSelectedPathComponent());\n        } else {\n            dumpNode = getDumpRootNode((DefaultMutableTreeNode) tree.getLastSelectedPathComponent());\n        }\n        Enumeration childs = dumpNode.children();\n        DefaultMutableTreeNode monitorNode = null;\n        DefaultMutableTreeNode monitorWithoutLocksNode = null;\n        while (childs.hasMoreElements()) {\n            DefaultMutableTreeNode child = (DefaultMutableTreeNode) childs.nextElement();\n            if (child.getUserObject() instanceof TreeCategory) {\n                if (((TreeCategory) child.getUserObject()).getName().startsWith(\"Monitors (\")) {\n                    monitorNode = child;\n                } else if (((TreeCategory) child.getUserObject()).getName().startsWith(\"Monitors without\")) {\n                    monitorWithoutLocksNode = child;\n                }\n            }\n        }\n\n        // highlight chosen monitor\n        JTree searchTree = (JTree) ((TreeCategory) monitorNode.getUserObject()).getCatComponent(this);\n        TreePath searchPath = searchTree.getNextMatch(monitor, 0, Position.Bias.Forward);\n        if ((searchPath == null) && (monitorWithoutLocksNode != null)) {\n            searchTree = (JTree) ((TreeCategory) monitorWithoutLocksNode.getUserObject()).getCatComponent(this);\n            searchPath = searchTree.getNextMatch(monitor, 0, Position.Bias.Forward);\n            monitorNode = monitorWithoutLocksNode;\n        }\n\n        if (searchPath != null) {\n            TreePath monitorPath = new TreePath(monitorNode.getPath());\n            tree.setSelectionPath(monitorPath);\n            tree.scrollPathToVisible(monitorPath);\n\n            displayCategory(monitorNode.getUserObject());\n\n            TreePath threadInMonitor = searchPath.pathByAddingChild(((DefaultMutableTreeNode) searchPath.getLastPathComponent()).getLastChild());\n            searchTree.setSelectionPath(threadInMonitor);\n            searchTree.scrollPathToVisible(searchPath);\n            searchTree.setSelectionPath(searchPath);\n        }\n    }\n\n    /**\n     * navigate to root node of currently active dump\n     */\n    private void navigateToDump() {\n        TreePath currentPath = tree.getSelectionPath();\n        tree.setSelectionPath(currentPath.getParentPath());\n        tree.scrollPathToVisible(currentPath.getParentPath());\n    }\n\n    /**\n     * navigate to child of currently selected node with the given prefix in name\n     * @param startsWith node name prefix (e.g. \"Threads waiting\")\n     */\n    private void navigateToChild(String startsWith) {\n        TreePath currentPath = tree.getSelectionPath();\n        DefaultMutableTreeNode dumpNode = (DefaultMutableTreeNode) currentPath.getLastPathComponent();\n        Enumeration childs = dumpNode.children();\n\n        TreePath searchPath = null;\n        while ((searchPath == null) && childs.hasMoreElements()) {\n            DefaultMutableTreeNode child = (DefaultMutableTreeNode) childs.nextElement();\n            String name = child.toString();\n            if (name != null && name.startsWith(startsWith)) {\n                searchPath = new TreePath(child.getPath());\n            }\n        }\n\n        if (searchPath != null) {\n            tree.makeVisible(searchPath);\n            tree.setSelectionPath(searchPath);\n            tree.scrollPathToVisible(searchPath);\n        }\n    }\n\n    protected MainMenu getMainMenu() {\n        if ((frame != null) && (frame.getJMenuBar() != null)) {\n            return ((MainMenu) frame.getJMenuBar());\n        } else {\n            if (pluginMainMenu == null) {\n                pluginMainMenu = new MainMenu(this);\n            }\n            return (pluginMainMenu);\n        }\n    }\n\n    public void createPopupMenu() {\n        JMenuItem menuItem;\n\n        //Create the popup menu.\n        JPopupMenu popup = new JPopupMenu();\n\n        menuItem = new JMenuItem(\"Diff Selection\");\n        menuItem.addActionListener(this);\n        popup.add(menuItem);\n        menuItem = new JMenuItem(\"Find long running threads...\");\n        menuItem.addActionListener(this);\n        popup.add(menuItem);\n\n        showDumpMenuItem = new JMenuItem(\"Show selected Dump in logfile\");\n        showDumpMenuItem.addActionListener(this);\n        showDumpMenuItem.setEnabled(false);\n        if (!runningAsJConsolePlugin && !runningAsVisualVMPlugin) {\n            popup.addSeparator();\n            menuItem = new JMenuItem(\"Parse loggc-logfile...\");\n            menuItem.addActionListener(this);\n            if (!PrefManager.get().getForceLoggcLoading()) {\n                menuItem.setEnabled(!isFoundClassHistogram);\n            }\n            popup.add(menuItem);\n\n            menuItem = new JMenuItem(\"Close logfile...\");\n            menuItem.addActionListener(this);\n            popup.add(menuItem);\n            popup.addSeparator();\n            popup.add(showDumpMenuItem);\n        } else {\n            popup.addSeparator();\n            if (!runningAsVisualVMPlugin) {\n                menuItem = new JMenuItem(\"Request Thread Dump...\");\n                menuItem.addActionListener(this);\n                popup.add(menuItem);\n                popup.addSeparator();\n                menuItem = new JMenuItem(\"Preferences\");\n                menuItem.addActionListener(this);\n                popup.add(menuItem);\n                menuItem = new JMenuItem(\"Filters\");\n                menuItem.addActionListener(this);\n                popup.add(menuItem);\n                popup.addSeparator();\n                menuItem = new JMenuItem(\"Save Logfile...\");\n                menuItem.addActionListener(this);\n                popup.add(menuItem);\n                popup.addSeparator();\n                menuItem = new JCheckBoxMenuItem(\"Show Toolbar\", PrefManager.get().getShowToolbar());\n                menuItem.addActionListener(this);\n                popup.add(menuItem);\n                popup.addSeparator();\n                menuItem = new JMenuItem(\"Help\");\n                menuItem.addActionListener(this);\n                popup.add(menuItem);\n                popup.addSeparator();\n            }\n            menuItem = new JMenuItem(\"About TDA\");\n            menuItem.addActionListener(this);\n            popup.add(menuItem);\n        }\n\n        //Add listener to the text area so the popup menu can come up.\n        MouseListener popupListener = new PopupListener(popup);\n        tree.addMouseListener(popupListener);\n    }\n\n    private PopupListener catPopupListener = null;\n\n    /**\n     * create a instance of this menu for a category\n     */\n    private PopupListener getCatPopupMenu() {\n        if (catPopupListener == null) {\n            JMenuItem menuItem;\n\n            //Create the popup menu.\n            JPopupMenu popup = new JPopupMenu();\n\n            menuItem = new JMenuItem(\"Search...\");\n            menuItem.addActionListener(this);\n            popup.add(menuItem);\n\n            //Add listener to the text area so the popup menu can come up.\n            catPopupListener = new PopupListener(popup);\n        }\n\n        return (catPopupListener);\n    }\n\n    private PopupListener monitorsPopupListener = null;\n\n    /**\n     * create a instance of this menu for a category\n     */\n    private PopupListener getMonitorsPopupMenu() {\n        if (monitorsPopupListener == null) {\n            JMenuItem menuItem;\n\n            //Create the popup menu.\n            JPopupMenu popup = new JPopupMenu();\n\n            menuItem = new JMenuItem(\"Search...\");\n            menuItem.addActionListener(this);\n            popup.add(menuItem);\n            popup.addSeparator();\n            menuItem = new JMenuItem(\"Expand all nodes\");\n            menuItem.addActionListener(this);\n            popup.add(menuItem);\n            menuItem = new JMenuItem(\"Collapse all nodes\");\n            menuItem.addActionListener(this);\n            popup.add(menuItem);\n            popup.addSeparator();\n            menuItem = new JMenuItem(\"Sort by thread count\");\n            menuItem.addActionListener(this);\n            popup.add(menuItem);\n\n            //Add listener to the text area so the popup menu can come up.\n            monitorsPopupListener = new PopupListener(popup);\n        }\n\n        return (monitorsPopupListener);\n    }\n\n    class PopupListener extends MouseAdapter {\n        JPopupMenu popup;\n\n        PopupListener(JPopupMenu popupMenu) {\n            popup = popupMenu;\n        }\n\n        public void mousePressed(MouseEvent e) {\n            maybeShowPopup(e);\n        }\n\n        public void mouseReleased(MouseEvent e) {\n            maybeShowPopup(e);\n        }\n\n        private void maybeShowPopup(MouseEvent e) {\n            if (e.isPopupTrigger()) {\n                popup.show(e.getComponent(),\n                        e.getX(), e.getY());\n                showDumpMenuItem.setEnabled((tree.getSelectionPath() != null)\n                        && ((DefaultMutableTreeNode) tree.getSelectionPath().getLastPathComponent()).\n                        getUserObject() instanceof ThreadDumpInfo);\n            }\n        }\n    }\n\n    /**\n     * check menu and button events.\n     */\n    public void actionPerformed(ActionEvent e) {\n        if (e.getSource() instanceof JMenuItem) {\n            JMenuItem source = (JMenuItem) (e.getSource());\n            if (source.getText().substring(1).startsWith(\":\\\\\") || source.getText().startsWith(\"/\")) {\n                if (source.getText().endsWith(\".tsf\")) {\n                    try {\n                        loadSession(new File(source.getText()), true);\n                    } catch (IOException ex) {\n                        ex.printStackTrace();\n                    }\n                } else {\n                    dumpFile = source.getText();\n                    openFiles(new File[]{new File(dumpFile)}, true);\n                }\n            } else if (\"Open...\".equals(source.getText())) {\n                chooseFile();\n            } else if (\"Open loggc file...\".equals(source.getText())) {\n                openLoggcFile();\n            } else if (\"Save Logfile...\".equals(source.getText())) {\n                saveLogFile();\n            } else if (\"Save Session...\".equals(source.getText())) {\n                saveSession();\n            } else if (\"Open Session...\".equals(source.getText())) {\n                openSession();\n            } else if (\"Preferences\".equals(source.getText())) {\n                showPreferencesDialog();\n            } else if (\"Filters\".equals(source.getText())) {\n                showFilterDialog();\n            } else if (\"Categories\".equals(source.getText())) {\n                showCategoriesDialog();\n            } else if (\"Get Logfile from clipboard\".equals(source.getText())) {\n                getLogfileFromClipboard();\n            } else if (\"Exit TDA\".equals(source.getText())) {\n                saveState();\n                frame.dispose();\n            } else if (\"Release Notes\".equals(source.getText())) {\n                showInfoFile(\"Release Notes\", \"doc/README\", \"Document.png\");\n            } else if (\"License\".equals(source.getText())) {\n                showInfoFile(\"License Information\", \"doc/COPYING\", \"Document.png\");\n            } else if (\"About TDA\".equals(source.getText())) {\n                showInfo();\n            } else if (\"Search...\".equals(source.getText())) {\n                showSearchDialog();\n            } else if (\"Parse loggc-logfile...\".equals(source.getText())) {\n                parseLoggcLogfile();\n            } else if (\"Find long running threads...\".equals(source.getText())) {\n                findLongRunningThreads();\n            } else if ((\"Close logfile...\".equals(source.getText())) || (\"Close...\".equals(source.getText()))) {\n                closeCurrentDump();\n            } else if (\"Close all...\".equals(source.getText())) {\n                closeAllDumps();\n            } else if (\"Diff Selection\".equals(source.getText())) {\n                TreePath[] paths = tree.getSelectionPaths();\n                if ((paths != null) && (paths.length < 2)) {\n                    JOptionPane.showMessageDialog(this.getRootPane(),\n                            \"You must select at least two dumps for getting a diff!\\n\",\n                            \"Error\", JOptionPane.ERROR_MESSAGE);\n\n                } else {\n                    DefaultMutableTreeNode mergeRoot = fetchTop(tree.getSelectionPath());\n                    Map dumpMap = dumpStore.getFromDumpFiles(mergeRoot.getUserObject().toString());\n                    ((Logfile) mergeRoot.getUserObject()).getUsedParser().mergeDumps(mergeRoot,\n                            dumpMap, paths, paths.length, null);\n                    createTree();\n                    this.getRootPane().revalidate();\n                }\n            } else if (\"Show selected Dump in logfile\".equals(source.getText())) {\n                navigateToDumpInLogfile();\n            } else if (\"Show Toolbar\".equals(source.getText())) {\n                setShowToolbar(((JCheckBoxMenuItem) source).getState());\n            } else if (\"Request Thread Dump...\".equals(source.getText())) {\n                addMXBeanDump();\n            } else if (\"Expand all nodes\".equals(source.getText())) {\n                expandAllCatNodes(true);\n            } else if (\"Collapse all nodes\".equals(source.getText())) {\n                expandAllCatNodes(false);\n            } else if (\"Sort by thread count\".equals(source.getText())) {\n                sortCatByThreads();\n            } else if (\"Expand all Dump nodes\".equals(source.getText())) {\n                expandAllDumpNodes(true);\n            } else if (\"Collapse all Dump nodes\".equals(source.getText())) {\n                expandAllDumpNodes(false);\n            }\n        } else if (e.getSource() instanceof JButton) {\n            JButton source = (JButton) e.getSource();\n            if (\"Open Logfile\".equals(source.getToolTipText())) {\n                chooseFile();\n            } else if (\"Close selected Logfile\".equals(source.getToolTipText())) {\n                closeCurrentDump();\n            } else if (\"Preferences\".equals(source.getToolTipText())) {\n                showPreferencesDialog();\n            } else if (\"Find long running threads\".equals(source.getToolTipText())) {\n                findLongRunningThreads();\n            } else if (\"Expand all nodes\".equals(source.getToolTipText())) {\n                expandAllDumpNodes(true);\n            } else if (\"Collapse all nodes\".equals(source.getToolTipText())) {\n                expandAllDumpNodes(false);\n            } else if (\"Find long running threads\".equals(source.getToolTipText())) {\n                findLongRunningThreads();\n            } else if (\"Filters\".equals(source.getToolTipText())) {\n                showFilterDialog();\n            } else if (\"Custom Categories\".equals(source.getToolTipText())) {\n                showCategoriesDialog();\n            } else if (\"Request a Thread Dump\".equals(source.getToolTipText())) {\n                addMXBeanDump();\n            }\n            source.setSelected(false);\n        }\n    }\n\n    private void showInfo() {\n        InfoDialog infoDialog = new InfoDialog(getFrame());\n        infoDialog.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);\n\n        //Display the window.\n        infoDialog.pack();\n        infoDialog.setLocationRelativeTo(getFrame());\n        infoDialog.setVisible(true);\n    }\n\n    /**\n     * display the specified file in a info window.\n     * @param title title of the info window.\n     * @param file the file to display.\n     */\n    private void showInfoFile(String title, String file, String icon) {\n        HelpOverviewDialog infoDialog = new HelpOverviewDialog(getFrame(), title, file, TDA.createImageIcon(icon).getImage());\n        infoDialog.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);\n\n        //Display the window.\n        infoDialog.pack();\n        infoDialog.setLocationRelativeTo(getFrame());\n        infoDialog.setVisible(true);\n    }\n\n    private JFrame getFrame() {\n        Container owner = this.getParent();\n        while (owner != null && !(owner instanceof JFrame)) {\n            owner = owner.getParent();\n        }\n\n        return (owner != null ? (JFrame) owner : null);\n    }\n\n    private void showPreferencesDialog() {\n        //Create and set up the window.\n        if (prefsDialog == null) {\n            prefsDialog = new PreferencesDialog(getFrame());\n            prefsDialog.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);\n        }\n\n        //Display the window.\n        prefsDialog.reset();\n        prefsDialog.pack();\n        prefsDialog.setLocationRelativeTo(getFrame());\n        prefsDialog.setVisible(true);\n    }\n\n    public void showFilterDialog() {\n\n        //Create and set up the window.\n        if (filterDialog == null) {\n            filterDialog = new FilterDialog(getFrame());\n            filterDialog.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);\n        }\n\n        //Display the window.\n        filterDialog.reset();\n        filterDialog.pack();\n        filterDialog.setLocationRelativeTo(getFrame());\n        filterDialog.setVisible(true);\n    }\n\n    /**\n     * display categories settings.\n     */\n    private void showCategoriesDialog() {\n        //Create and set up the window.\n        if (categoriesDialog == null) {\n            categoriesDialog = new CustomCategoriesDialog(getFrame());\n            categoriesDialog.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);\n        }\n\n        //Display the window.\n        categoriesDialog.reset();\n        categoriesDialog.pack();\n        categoriesDialog.setLocationRelativeTo(getFrame());\n        categoriesDialog.setVisible(true);\n    }\n\n    /**\n     * flag indicates if next file to open will be the first file (so fresh open)\n     * or if a add has to be performed.\n     */\n    private boolean firstFile = true;\n\n    /**\n     * save the current logfile (only used in plugin mode)\n     */\n    public void saveLogFile() {\n        if (fc == null) {\n            fc = new FileDialog(getFrame());\n            fc.setMultipleMode(false);\n            try {\n                fc.setDirectory(PrefManager.get().getSelectedPath().getCanonicalPath());\n            } catch (IOException ioe) {\n                // ignore\n            }\n        }\n        if (firstFile && (PrefManager.get().getPreferredSizeFileChooser().height > 0)) {\n            fc.setPreferredSize(PrefManager.get().getPreferredSizeFileChooser());\n        }\n        fc.setMode(FileDialog.SAVE);\n        fc.setPreferredSize(fc.getSize());\n        fc.setVisible(true);\n        PrefManager.get().setPreferredSizeFileChooser(fc.getSize());\n\n        String selectedFile = fc.getFile();\n        if (selectedFile != null) {\n            File file = new File(selectedFile);\n            int selectValue = 0;\n            if (file.exists()) {\n                Object[] options = {\"Overwrite\", \"Cancel\"};\n                selectValue = JOptionPane.showOptionDialog(null, \"<html><body>File exists<br><b>\" + file +\n                                \"</b></body></html>\", \"Confirm overwrite\",\n                        JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE,\n                        null, options, options[0]);\n            }\n            if (selectValue == 0) {\n                FileOutputStream fos = null;\n                try {\n                    fos = new FileOutputStream(file);\n                    fos.write(((LogFileContent) logFile.getUserObject()).getContent().getBytes());\n                    fos.flush();\n                } catch (IOException ex) {\n                    ex.printStackTrace();\n                } finally {\n                    try {\n                        fos.close();\n                    } catch (IOException ex) {\n                        ex.printStackTrace();\n                    }\n                }\n            }\n        }\n    }\n\n    /**\n     * choose a log file.\n     */\n    private void chooseFile() {\n        if (firstFile && (PrefManager.get().getPreferredSizeFileChooser().height > 0)) {\n            fc.setPreferredSize(PrefManager.get().getPreferredSizeFileChooser());\n        }\n        fc.setPreferredSize(fc.getSize());\n        fc.setVisible(true);\n        PrefManager.get().setPreferredSizeFileChooser(fc.getSize());\n\n        File[] files = fc.getFiles();\n\n        if (files.length > 0) {\n            openFiles(files, false);\n        }\n    }\n\n    /**\n     * open the provided files. If isRecent is set to true, passed files\n     * are not added to the recent file list.\n     * @param files the files array to open\n     * @param isRecent true, if passed files are from recent file list.\n     */\n    private void openFiles(File[] files, boolean isRecent) {\n        for (int i = 0; i < files.length; i++) {\n            dumpFile = files[i].getAbsolutePath();\n            if (!firstFile) {\n                // root nodes are moved down.\n                setRootNodeLevel(1);\n\n                // do direct add without re-init.\n                addDumpFile();\n            } else {\n                initDumpDisplay(null);\n                if (isFileOpen()) {\n                    firstFile = false;\n                }\n            }\n\n            if (!isRecent) {\n                PrefManager.get().addToRecentFiles(files[i].getAbsolutePath());\n            }\n        }\n\n        if (isFileOpen()) {\n            this.getRootPane().revalidate();\n            displayContent(null);\n        }\n    }\n\n    /**\n     * Returns an ImageIcon, or null if the path was invalid.\n     */\n    public static ImageIcon createImageIcon(String path) {\n        java.net.URL imgURL = TDA.class.getResource(\"icons/\" + path);\n        if (imgURL != null) {\n            return new ImageIcon(imgURL);\n        } else {\n            System.err.println(\"Couldn't find file: \" + path);\n            return null;\n        }\n    }\n\n    /**\n     * search for dump root node of for given node\n     * @param node starting to search for\n     * @return root node returns null, if no root was found.\n     */\n    private DefaultMutableTreeNode getDumpRootNode(DefaultMutableTreeNode node) {\n        // search for starting node\n        while (node != null && !(node.getUserObject() instanceof ThreadDumpInfo)) {\n            node = (DefaultMutableTreeNode) node.getParent();\n        }\n\n        return (node);\n    }\n\n    /**\n     * get the dump with the given name, starting from the provided node.\n     * @param dumpName\n     * @return\n     */\n    private DefaultMutableTreeNode getDumpRootNode(String dumpName, DefaultMutableTreeNode node) {\n        DefaultMutableTreeNode lastNode = null;\n        DefaultMutableTreeNode dumpNode = null;\n        // search for starting node\n        while (node != null && !(node.getUserObject() instanceof Logfile)) {\n            lastNode = node;\n            node = (DefaultMutableTreeNode) node.getParent();\n        }\n\n        if (node == null) {\n            node = lastNode;\n        }\n\n        for (int i = 0; i < node.getChildCount(); i++) {\n            Object userObject = ((DefaultMutableTreeNode) node.getChildAt(i)).getUserObject();\n            if ((userObject instanceof ThreadDumpInfo) && ((ThreadDumpInfo) userObject).getName().startsWith(dumpName)) {\n                dumpNode = (DefaultMutableTreeNode) node.getChildAt(i);\n                break;\n            }\n        }\n\n        return (dumpNode);\n    }\n\n    /**\n     * load a loggc log file based on the current selected thread dump\n     */\n    private void parseLoggcLogfile() {\n        DefaultMutableTreeNode node = getDumpRootNode((DefaultMutableTreeNode) tree.getLastSelectedPathComponent());\n        if (node == null) {\n            return;\n        }\n\n        // get pos of this node in the thread dump hierarchy.\n        int pos = node.getParent().getIndex(node);\n\n        ((Logfile) ((DefaultMutableTreeNode) node.getParent()).getUserObject()).getUsedParser().setDumpHistogramCounter(pos);\n        openLoggcFile();\n    }\n\n    /**\n     * close the currently selected dump.\n     */\n    private void closeCurrentDump() {\n        TreePath selPath = tree.getSelectionPath();\n\n        while (selPath != null && !(checkNameFromNode((DefaultMutableTreeNode) selPath.getLastPathComponent(), File.separator) ||\n                checkNameFromNode((DefaultMutableTreeNode) selPath.getLastPathComponent(), 2, File.separator))) {\n            selPath = selPath.getParentPath();\n        }\n\n        Object[] options = {\"Close File\", \"Cancel close\"};\n\n        assert selPath != null;\n        String fileName = ((DefaultMutableTreeNode) selPath.getLastPathComponent()).getUserObject().toString();\n        fileName = fileName.substring(fileName.indexOf(File.separator));\n\n        int selectValue = JOptionPane.showOptionDialog(null, \"<html><body>Are you sure, you want to close the currently selected dump file<br><b>\" + fileName +\n                        \"</b></body></html>\", \"Confirm closing...\",\n                JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE,\n                null, options, options[0]);\n\n        // if first option \"close file\" is selected.\n        if (selectValue == 0) {\n            // remove stuff from the top nodes\n            topNodes.remove(selPath.getLastPathComponent());\n\n            if (topNodes.isEmpty()) {\n                // simply do a reinit, as there isn't anything to display\n                removeAll();\n                revalidate();\n\n                init(runningAsJConsolePlugin, runningAsVisualVMPlugin);\n                disableMainMenu();\n\n            } else {\n                // rebuild jtree\n                getMainMenu().getCloseMenuItem().setEnabled(false);\n                getMainMenu().getCloseToolBarButton().setEnabled(false);\n                createTree();\n            }\n            revalidate();\n        }\n\n    }\n\n    private void disableMainMenu() {\n        getMainMenu().getLongMenuItem().setEnabled(false);\n        getMainMenu().getCloseMenuItem().setEnabled(false);\n        getMainMenu().getSaveSessionMenuItem().setEnabled(false);\n        getMainMenu().getCloseToolBarButton().setEnabled(false);\n        getMainMenu().getExpandButton().setEnabled(false);\n        getMainMenu().getCollapseButton().setEnabled(false);\n        getMainMenu().getFindLRThreadsToolBarButton().setEnabled(false);\n        getMainMenu().getCloseAllMenuItem().setEnabled(false);\n        getMainMenu().getExpandAllMenuItem().setEnabled(false);\n        getMainMenu().getCollapseAllMenuItem().setEnabled(false);\n    }\n\n    /**\n     * close all open dumps\n     */\n    private void closeAllDumps() {\n        Object[] options = {\"Close all\", \"Cancel close\"};\n\n        int selectValue = JOptionPane.showOptionDialog(null, \"<html><body>Are you sure, you want to close all open dump files\", \"Confirm closing...\",\n                JOptionPane.DEFAULT_OPTION, JOptionPane.QUESTION_MESSAGE,\n                null, options, options[0]);\n\n        // if first option \"close file\" is selected.\n        if (selectValue == 0) {\n            // remove stuff from the top nodes\n            topNodes = new Vector<>();\n\n            // simply do a reinit, as there is anything to display\n            resetMainPanel();\n        }\n    }\n\n    /**\n     * reset the main panel to start up\n     */\n    private void resetMainPanel() {\n        removeAll();\n        revalidate();\n\n        init(runningAsJConsolePlugin, runningAsVisualVMPlugin);\n        revalidate();\n\n        disableMainMenu();\n\n    }\n\n    /**\n     * check if name of node starts with passed string\n     * @param node the node name to check\n     * @param startsWith the string to compare.\n     * @return true if startsWith and beginning of node name matches.\n     */\n    private boolean checkNameFromNode(DefaultMutableTreeNode node, String startsWith) {\n        return (checkNameFromNode(node, 0, startsWith));\n    }\n\n    /**\n     * check if name of node starts with passed string\n     * @param node the node name to check\n     * @param startIndex the index to start with comparing, 0 if comparing should happen\n     *                   from the beginning.\n     * @param startsWith the string to compare.\n     * @return true if startsWith and beginning of node name matches.\n     */\n    private boolean checkNameFromNode(DefaultMutableTreeNode node, int startIndex, String startsWith) {\n        Object info = node.getUserObject();\n        String result = null;\n        if ((info instanceof AbstractInfo)) {\n            result = ((AbstractInfo) info).getName();\n        } else if ((info instanceof String)) {\n            result = (String) info;\n        }\n\n        if (startIndex > 0 && result != null) {\n            result = result.substring(startIndex);\n        }\n\n        return (result != null && result.startsWith(startsWith));\n    }\n\n    /**\n     * open and parse loggc file\n     */\n    private void openLoggcFile() {\n        fc.setVisible(true);\n\n        File[] selectedFiles = fc.getFiles();\n\n        if (selectedFiles.length > 0) {\n            File file = selectedFiles[1];\n            String loggcFile = file.getAbsolutePath();\n            try {\n                final InputStream loggcFileStream = new ProgressMonitorInputStream(\n                        this,\n                        \"Parsing \" + loggcFile,\n                        new FileInputStream(loggcFile));\n\n                final SwingWorker worker = new SwingWorker() {\n                    public Object construct() {\n                        try {\n                            DefaultMutableTreeNode top = fetchTop(tree.getSelectionPath());\n\n                            ((Logfile) top.getUserObject()).getUsedParser().parseLoggcFile(loggcFileStream, top);\n\n                            addThreadDumps(top, loggcFileStream);\n                            createTree();\n                            getRootPane().revalidate();\n                            displayContent(null);\n                        } finally {\n                            try {\n                                loggcFileStream.close();\n                            } catch (IOException ex) {\n                                ex.printStackTrace();\n                            }\n                        }\n                        return null;\n                    }\n                };\n                worker.start();\n            } catch (FileNotFoundException ex) {\n                ex.printStackTrace();\n            }\n        }\n    }\n\n    /**\n     * find long running threads either in all parsed thread dumps or in marked thread\n     * dump range.\n     */\n    private void findLongRunningThreads() {\n        TreePath[] paths = tree.getSelectionPaths();\n        if ((paths == null) || (paths.length < 2)) {\n            JOptionPane.showMessageDialog(this.getRootPane(),\n                    \"You must select at least two dumps for long thread run detection!\\n\",\n                    \"Error\", JOptionPane.ERROR_MESSAGE);\n\n        } else {\n            DefaultMutableTreeNode mergeRoot = fetchTop(tree.getSelectionPath());\n            Map dumpMap = dumpStore.getFromDumpFiles(mergeRoot.getUserObject().toString());\n\n            LongThreadDialog longThreadDialog = new LongThreadDialog(this, paths, mergeRoot, dumpMap);\n\n            //Display the window.\n            longThreadDialog.reset();\n            longThreadDialog.pack();\n            longThreadDialog.setLocationRelativeTo(frame);\n            longThreadDialog.setVisible(true);\n\n        }\n    }\n\n    private int rootNodeLevel = 0;\n\n    private int getRootNodeLevel() {\n        return (rootNodeLevel);\n    }\n\n    private void setRootNodeLevel(int value) {\n        rootNodeLevel = value;\n    }\n\n    private DefaultMutableTreeNode fetchTop(TreePath pathToRoot) {\n        return ((DefaultMutableTreeNode) pathToRoot.getPathComponent(getRootNodeLevel()));\n    }\n\n    /**\n     * save the application state to preferences.\n     */\n    private void saveState() {\n        PrefManager.get().setWindowState(frame.getExtendedState());\n        if (fc.getDirectory() != null) {\n            PrefManager.get().setSelectedPath(new File(fc.getDirectory()));\n        }\n        PrefManager.get().setPreferredSize(frame.getRootPane().getSize());\n        PrefManager.get().setWindowPos(frame.getX(), frame.getY());\n        PrefManager.get().flush();\n    }\n\n    /**\n     * trigger, if a file is opened\n     */\n    private boolean fileOpen = false;\n\n    private boolean isFileOpen() {\n        return fileOpen;\n    }\n\n    private void setFileOpen(boolean value) {\n        fileOpen = value;\n    }\n\n    /**\n     * Create the GUI and show it.  For thread safety,\n     * this method should be invoked from the\n     * event-dispatching thread.\n     */\n    private static void createAndShowGUI() {\n        //Create and set up the window.\n        frame = new JFrame(\"TDA - Thread Dump Analyzer\");\n        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);\n\n        //Image image = Toolkit.getDefaultToolkit().getImage( \"TDA.gif\" );\n        Image image = TDA.createImageIcon(\"TDA.png\").getImage();\n        frame.setIconImage(image);\n\n        if (Taskbar.isTaskbarSupported()) {\n            Taskbar taskbar = Taskbar.getTaskbar();\n            if (taskbar.isSupported(Taskbar.Feature.ICON_IMAGE)) {\n                taskbar.setIconImage(image);\n            }\n        }\n\n        final TDA tdaInstance = new TDA(true);\n        frame.getRootPane().setPreferredSize(PrefManager.get().getPreferredSize());\n\n        frame.setJMenuBar(new MainMenu(tdaInstance));\n        tdaInstance.init(false, false);\n\n        //Create and set up the content pane.\n        if (dumpFile != null) {\n            tdaInstance.initDumpDisplay(null);\n        }\n\n        tdaInstance.setOpaque(true); //content panes must be opaque\n        frame.setContentPane(tdaInstance);\n\n        // init filechooser\n        fc = new FileDialog(tdaInstance.getFrame());\n        fc.setMultipleMode(true);\n        try {\n            fc.setDirectory(PrefManager.get().getSelectedPath().getCanonicalPath());\n        } catch (IOException ioe) {\n            // ignore\n        }\n\n        /**\n         * add window listener for persisting state of main frame\n         */\n        frame.addWindowListener(new WindowAdapter() {\n            public void windowClosing(WindowEvent e) {\n                tdaInstance.saveState();\n            }\n\n            public void windowClosed(WindowEvent e) {\n                System.exit(0);\n            }\n        });\n\n        frame.setLocation(PrefManager.get().getWindowPos());\n\n        //Display the window.\n        frame.pack();\n\n        // restore old window settings.\n        frame.setExtendedState(PrefManager.get().getWindowState());\n\n        frame.setVisible(true);\n    }\n\n    /**\n     * display search dialog for current category\n     */\n    private void showSearchDialog() {\n        // get the currently select category tree\n        DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();\n        JComponent catComp = ((Category) node.getUserObject()).getCatComponent(this);\n\n        //Create and set up the window.\n        searchDialog = new SearchDialog(getFrame(), catComp);\n\n        //Display the window.\n        searchDialog.reset();\n        searchDialog.pack();\n        searchDialog.setLocationRelativeTo(getFrame());\n        searchDialog.setVisible(true);\n\n        searchDialog.addWindowListener(new WindowAdapter() {\n            public void windowClosed(WindowEvent e) {\n                getFrame().setEnabled(true);\n            }\n        });\n    }\n\n    /**\n     * main startup method for TDA\n     */\n    public static void main(String[] args) {\n        LogManager.init();\n        if (args.length > 0 && \"--mcp\".equals(args[0])) {\n            String[] mcpArgs = new String[args.length - 1];\n            System.arraycopy(args, 1, mcpArgs, 0, args.length - 1);\n            de.grimmfrost.tda.mcp.MCPServer.main(mcpArgs);\n            return;\n        }\n\n        if (args.length > 0) {\n            dumpFile = args[0];\n        }\n        //Schedule a job for the event-dispatching thread:\n        //creating and showing this application's GUI.\n        javax.swing.SwingUtilities.invokeLater(new Runnable() {\n            public void run() {\n                createAndShowGUI();\n            }\n        });\n    }\n\n    /**\n     * check file menu\n     */\n    public void menuSelected(MenuEvent e) {\n        JMenu source = (JMenu) e.getSource();\n        if ((source != null) && \"File\".equals(source.getText())) {\n            // close menu item only active, if something is selected.\n            getMainMenu().getCloseMenuItem().setEnabled(tree.getSelectionPath() != null);\n            getMainMenu().getCloseToolBarButton().setEnabled(tree.getSelectionPath() != null);\n        }\n    }\n\n    public void menuDeselected(MenuEvent e) {\n        // nothing to do\n    }\n\n    public void menuCanceled(MenuEvent e) {\n        // nothing to do\n    }\n\n    public static String getFontSizeModifier(int add) {\n        String result = String.valueOf(fontSizeModifier + add);\n        if ((fontSizeModifier + add) > 0) {\n            result = \"+\" + (fontSizeModifier + add);\n        }\n        return (result);\n    }\n\n    /**\n     * handles dragging events for new files to open.\n     */\n    private class FileDropTargetListener extends DropTargetAdapter {\n\n        public void drop(DropTargetDropEvent dtde) {\n            try {\n                DataFlavor[] df = dtde.getTransferable().getTransferDataFlavors();\n                for (DataFlavor dataFlavor : df) {\n                    if (dataFlavor.isMimeTypeEqual(\"application/x-java-serialized-object\")) {\n                        dtde.acceptDrop(dtde.getDropAction());\n                        String[] fileStrings = ((String) dtde.getTransferable().getTransferData(dataFlavor)).split(\"\\n\");\n                        File[] files = new File[fileStrings.length];\n                        for (int j = 0; j < fileStrings.length; j++) {\n                            files[j] = new File(fileStrings[j].substring(7));\n                        }\n                        openFiles(files, false);\n                        dtde.dropComplete(true);\n                    }\n                }\n            } catch (UnsupportedFlavorException | IOException ex) {\n                ex.printStackTrace();\n                dtde.rejectDrop();\n            }\n\n        }\n    }\n\n\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/filter/Filter.java",
    "content": "/*\n * Filter.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: Filter.java,v 1.11 2008-03-09 06:36:51 irockel Exp $\n */\npackage de.grimmfrost.tda.filter;\n\nimport de.grimmfrost.tda.model.ThreadInfo;\n\nimport java.util.regex.Pattern;\n\n/**\n * represents a filter for filtering threads or monitors to display\n *\n * @author irockel\n */\npublic class Filter {\n    \n    // static defines for filter rules.\n    public static final int HAS_IN_TITLE_RULE = 0;\n    \n    public static final int MATCHES_TITLE_RULE = 1;\n    \n    public static final int HAS_IN_STACK_RULE = 2;\n    \n    public static final int MATCHES_STACK_RULE = 3;\n    \n    public static final int WAITING_ON_RULE = 4;\n    \n    public static final int WAITING_FOR_RULE = 5;\n    \n    public static final int LOCKING_RULE = 6;\n    \n    public static final int SLEEPING_RULE = 7;\n    \n    public static final int STACK_IS_LONGER_THAN_RULE = 8;\n    \n    /**\n     * name of this filter, just something describing for this filter\n     */\n    private String name = null;\n    \n    /**\n     * a regular expression of the filter\n     */\n    private String filterExpression = null;\n    \n    /**\n     * the precompiled pattern.\n     */\n    private Pattern filterExpressionPattern = null;\n    \n    /**\n     * true, if filter is a general filter, which should be applied\n     * to all thread infos\n     */\n    private boolean generalFilter = false;\n    \n    /**\n     * specifies if this filter is a exclusion filter\n     */\n    private boolean exclusionFilter = false;\n    \n    /**\n     * specifies if this filter is currently active\n     */\n    private boolean enabled = false;\n    \n    /**\n     * specifies the filter rule which the filter expression applies to\n     */\n    private int filterRule = 0;\n    \n    /**\n     * empty default constructor\n     */\n    public Filter() {\n    }\n        \n    /** \n     * Creates a new instance of Filter \n     * @param name the name of the filter\n     * @param regEx the reg ex of the filter\n     * @param gf true, if filter is general filter\n     */\n    public Filter(String name, String regEx, int fr, boolean gf, boolean exf, boolean enabled) {\n        setName(name);\n        setFilterExpression(regEx);\n        setGeneralFilter(gf);\n        setExclusionFilter(exf);\n        setFilterRule(fr);\n        setEnabled(enabled);\n    }\n    \n    /**\n     * set the name of this filter\n     */\n    public void setName(String value) {\n        name = value;\n    }\n    \n    /**\n     * get filter name\n     */\n    public String getName() {\n        return(name);\n    }\n    \n    /**\n     * get the filter expression as string\n     */\n    public String getFilterExpression() {\n        return(filterExpression);\n    }\n    \n    public void setFilterExpression(String regEx) {\n        filterExpression = regEx;\n        // reset any precompiled data.\n        filterExpressionPattern = null;\n    }\n    \n    /**\n     * get the filter expression as precompiled pattern\n     */\n    public Pattern getFilterExpressionPattern() {\n        if(filterExpressionPattern == null) {\n            filterExpressionPattern = Pattern.compile(getFilterExpression(), Pattern.DOTALL);\n        }\n        \n        return(filterExpressionPattern);\n    }\n    \n    /**\n     * set general filter flag\n     */\n    public void setGeneralFilter(boolean value) {\n        generalFilter = value;\n    }\n    \n    /**\n     * @return true, if filter is a general filter\n     */\n    public boolean isGeneralFilter() {\n        return(generalFilter);\n    }\n    \n    /**\n     * set exclusion filter flag\n     */\n    public void setExclusionFilter(boolean value) {\n        exclusionFilter = value;\n    }\n    \n    /**\n     * @return true, if filter is a exclusion filter\n     */\n    public boolean isExclusionFilter() {\n        return(exclusionFilter);\n    }\n\n    public int getFilterRule() {\n        return filterRule;\n    }\n\n    public void setFilterRule(int filterRule) {\n        this.filterRule = filterRule;\n    }\n    \n    public boolean isEnabled() {\n        return enabled;\n    }\n\n    public void setEnabled(boolean enabled) {\n        this.enabled = enabled;\n    }\n    \n    public boolean matches(ThreadInfo ti) {\n        return(matches(ti, false));\n    }\n    \n    public boolean matches(ThreadInfo ti, boolean forceEnabled) {\n        boolean result = true;\n        if(forceEnabled || isEnabled()) {\n            switch(getFilterRule()) {\n                case HAS_IN_TITLE_RULE :\n                    result = getFilterExpressionPattern().matcher(ti.getName()).find();\n                    break;\n                case MATCHES_TITLE_RULE :\n                    result = getFilterExpressionPattern().matcher(ti.getName()).matches();\n                    break;\n                case HAS_IN_STACK_RULE : \n                    result = getFilterExpressionPattern().matcher(ti.getContent()).find();\n                    break;\n                case MATCHES_STACK_RULE :\n                    result = getFilterExpressionPattern().matcher(ti.getContent()).matches();\n                    break;\n                case WAITING_ON_RULE :\n                    result = (ti.getContent().contains(\"- waiting on\")) && checkLine(ti, \"- waiting on\", '<', ')');\n                    break;\n                case WAITING_FOR_RULE :\n                    result = (ti.getName().contains(\"waiting for monitor entry\")) &&\n                            checkLine(ti, \"- waiting to lock\", '<', ')');\n                    break;\n                case LOCKING_RULE :\n                    result = (ti.getContent().contains(\"- locked\")) && checkLine(ti, \"- locked\", '<', ')');\n                    break;\n                case SLEEPING_RULE :\n                    result = (ti.getName().contains(\"Object.wait()\"));\n                    break;\n                case STACK_IS_LONGER_THAN_RULE :\n                    result = (ti.getStackLines() == 0) || ((ti.getStackLines() -2) > Integer.parseInt(filterExpression));\n                    break;\n            }\n            \n            // invert if it is exclusion filter\n            if(isExclusionFilter()) {\n                result = !result;\n            }\n        }\n        return(result);\n    }\n    \n    /**\n     * checks a sub line for a lock handler (for waiting, locking, monitor entry)\n     */\n    private boolean checkLine(ThreadInfo ti, String contains, char beginChar, char endChar) {\n        int beginFrom = ti.getContent().indexOf(contains);\n        int beginIndex = ti.getContent().indexOf(beginChar, beginFrom);\n        int endIndex = ti.getContent().indexOf(endChar, beginIndex);\n        String matchLine = ti.getContent().substring(beginIndex, endIndex);\n        \n        return getFilterExpressionPattern().matcher(matchLine).matches();\n    }\n\n    public String toString() {\n        //  (general)  removed atm.\n        return (getName() + (isEnabled() ? \" (default)\" : \"\"));\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/filter/FilterChecker.java",
    "content": "/*\n * FilterChecker.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: FilterChecker.java,v 1.8 2008-03-12 10:44:19 irockel Exp $\n */\npackage de.grimmfrost.tda.filter;\n\nimport de.grimmfrost.tda.model.ThreadInfo;\nimport de.grimmfrost.tda.utils.PrefManager;\nimport java.util.HashMap;\nimport java.util.Iterator;\nimport java.util.Map;\nimport javax.swing.ListModel;\n\n/**\n * has a list of filters and checks for a given thread if it matches any of the filters.\n * @author irockel\n */\npublic class FilterChecker {\n    /**\n     * filters checked by this checker instance.\n     */\n    private Map filters = null;\n    \n    private static Map generalFilters = null;\n    \n    /** \n     * Creates a new instance of FilterChecker \n     */\n    public FilterChecker(Map checkFilters) {\n        filters = checkFilters;\n    }\n    \n    /**\n     * return a filter checker for all general filters\n     */\n    public static FilterChecker getFilterChecker() {\n        if(generalFilters == null) {\n            setGeneralFilters();\n        }\n        \n        return(new FilterChecker(generalFilters));\n    }\n    \n    private static void setGeneralFilters() {\n        generalFilters = new HashMap();\n        ListModel filters = PrefManager.get().getFilters();\n        for(int i = 0; i < filters.getSize(); i++) {\n            Filter currentFilter = (Filter) filters.getElementAt(i);\n            if(currentFilter.isEnabled() && currentFilter.isGeneralFilter()) {\n                generalFilters.put(currentFilter.getName(), currentFilter);\n            }\n        }\n    }\n    \n    /**\n     * add the given filter to the lists of filters\n     */\n    public void addToFilters(Filter filter) {\n        if(filters == null) {\n            filters = new HashMap();\n        }\n        \n        filters.put(filter.getName(), filter);\n    }\n    \n    /**\n     * checks if the given thread info passes the filters of\n     * this filter checker instance\n     */\n    public boolean check(ThreadInfo ti) {\n        boolean result = true;\n        Iterator filterIter = filters.values().iterator();\n        while(result && filterIter.hasNext()) {\n            Filter filter = (Filter) filterIter.next();\n            result = filter.matches(ti);\n        }\n        return(result);\n    }\n    \n    public boolean recheck(ThreadInfo ti) {\n        // reset general filters\n        setGeneralFilters();\n        Iterator iter = filters.values().iterator();\n        \n        // remove disabled filters\n        while(iter.hasNext()) {\n            Filter filter = (Filter) iter.next();\n            if(!filter.isEnabled()) {\n                filters.remove(filter.getName());\n                iter = filters.values().iterator();\n                \n            }\n        }\n\n        // add new or enabled filters\n        iter = generalFilters.values().iterator();\n        while(iter.hasNext()) {\n            Filter filter = (Filter) iter.next();\n            addToFilters(filter);\n        }\n        return(check(ti));\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/jconsole/MBeanDumper.java",
    "content": "/**\n * Thread Dump Analysis Tool, parses Thread Dump input and displays it as tree\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,h\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * TDA should have received a copy of the Lesser GNU General Public License\n * along with Foobar; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: MBeanDumper.java,v 1.16 2010-04-01 08:58:24 irockel Exp $\n */\npackage de.grimmfrost.tda.jconsole;\n\nimport java.io.IOException;\nimport java.lang.management.LockInfo;\nimport java.lang.management.ManagementFactory;\nimport java.lang.management.MonitorInfo;\nimport java.lang.management.RuntimeMXBean;\nimport java.lang.management.ThreadInfo;\nimport java.lang.management.ThreadMXBean;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\nimport java.util.Locale;\nimport javax.management.InstanceNotFoundException;\nimport javax.management.IntrospectionException;\nimport javax.management.MBeanOperationInfo;\nimport javax.management.MBeanServerConnection;\nimport javax.management.MalformedObjectNameException;\nimport javax.management.ObjectName;\nimport javax.management.ReflectionException;\nimport javax.swing.JOptionPane;\n\n/**\n * Request a Thread Dump via the given MBeanServerConnection, can only be\n * call in jconsole with proper jmx stuff available.\n * \n * @author irockel\n */\npublic class MBeanDumper {\n    private static int CONNECT_RETRIES = 10;\n    \n    private MBeanServerConnection server;\n    private ThreadMXBean tmbean;\n    private ObjectName objname;\n    \n    private String dumpPrefix = \"\\nFull thread dump \";\n    \n    // default - JDK 6+ VM\n    private String findDeadlocksMethodName = \"findDeadlockedThreads\";\n    private boolean canDumpLocks = true;\n    private String javaVersion;\n\n    /**\n     * Constructs a ThreadMonitor object to get thread information\n     * in a remote JVM.\n     */\n    public MBeanDumper(MBeanServerConnection server) throws IOException {\n       setMBeanServerConnection(server);\n       try {\n           objname = new ObjectName(ManagementFactory.THREAD_MXBEAN_NAME);\n        } catch (MalformedObjectNameException e) {\n            // should not reach here\n            InternalError ie = new InternalError(e.getMessage());\n            ie.initCause(e);\n            throw ie;\n       }\n       parseMBeanInfo(); \n    }\n    \n    private void setDumpPrefix() {\n        try {\n            RuntimeMXBean rmbean = (RuntimeMXBean) ManagementFactory.newPlatformMXBeanProxy(server,\n                                            ManagementFactory.RUNTIME_MXBEAN_NAME,\n                                            RuntimeMXBean.class);\n            dumpPrefix += rmbean.getVmName() + \" \" + rmbean.getVmVersion() + \"\\n\";\n            javaVersion = rmbean.getVmVersion();\n        } catch (IOException ex) {\n            ex.printStackTrace();\n        }\n    }       \n\n    /**\n     * Prints the thread dump information to System.out.\n     */\n    public String threadDump() {\n        StringBuilder dump = new StringBuilder();\n        int retries = 0;\n        while(retries < CONNECT_RETRIES) {\n            try {\n                if (canDumpLocks) {\n                    if (tmbean.isObjectMonitorUsageSupported() &&\n                            tmbean.isSynchronizerUsageSupported()) {\n                        /*\n                     * Print lock info if both object monitor usage \n                     * and synchronizer usage are supported.\n                     * This sample code can be modified to handle if \n                     * either monitor usage or synchronizer usage is supported.\n                     */\n                        dumpThreadInfoWithLocks(dump);\n                    }\n                } else {\n                    dumpThreadInfo(dump);\n                }\n                // finished\n                retries = CONNECT_RETRIES;\n            } catch (NullPointerException npe) {\n                if (retries >= CONNECT_RETRIES) {\n                    JOptionPane.showMessageDialog(null,\n                                    \"Error requesting dump using the JMX Connection. Remote VM returned nothing.\\n\" +\n                                    \"You can try to reconnect or just simply try to request a dump again.\",                                    \n                                    \"Error during requesting Dump\", JOptionPane.ERROR_MESSAGE);\n                    \n                    // return empty string;\n                    return(\"\");\n                }\n                try {\n                    // workaround for unstable connections.\n                    Thread.sleep(1000);\n                } catch (InterruptedException ex) {\n                    ex.printStackTrace();\n                }\n                //System.out.println(\"retrying \" + retries);\n                retries++;\n            }\n        }\n        dump.append(\"\\n<EndOfDump>\\n\\n\");\n        \n        return(dump.toString());\n    }\n    \n    /**\n     * create dump date similar to format used by 1.6 VMs\n     * @return dump date (e.g. 2007-10-25 08:00:00)\n     */\n    private String getDumpDate() {\n        SimpleDateFormat sdfDate = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\", Locale.ENGLISH);\n        return(sdfDate.format(new Date()));\n    }\n\n    private void dumpThreadInfo(StringBuilder dump) {\n       dump.append(getDumpDate());\n       dump.append(dumpPrefix);\n       dump.append(\"\\n\");\n       long[] tids = tmbean.getAllThreadIds();\n       ThreadInfo[] tinfos = tmbean.getThreadInfo(tids, Integer.MAX_VALUE);\n       for (int i = 0; i < tinfos.length; i++) {\n           ThreadInfo ti = tinfos[i];\n           printThreadInfo(ti, dump);\n       }\n    }\n\n    /**\n     * Prints the thread dump information with locks info to System.out.\n     */\n    private void dumpThreadInfoWithLocks(StringBuilder dump) {\n       dump.append(getDumpDate());\n       dump.append(dumpPrefix);\n       dump.append(\"\\n\");\n\n       ThreadInfo[] tinfos = tmbean.dumpAllThreads(true, true);\n       for (int i = 0; i < tinfos.length; i++) {\n           ThreadInfo ti = tinfos[i];\n           printThreadInfo(ti, dump);\n           LockInfo[] syncs = ti.getLockedSynchronizers();\n           printLockInfo(syncs, dump);\n       }\n       dump.append(\"\\n\");\n    }\n\n    private static String INDENT = \"    \";\n\n    private void printThreadInfo(ThreadInfo ti, StringBuilder dump) {\n       // print thread information\n       printThread(ti, dump);\n\n       // print stack trace with locks\n       StackTraceElement[] stacktrace = ti.getStackTrace();\n       MonitorInfo[] monitors = ti.getLockedMonitors();\n       for (int i = 0; i < stacktrace.length; i++) {\n           StackTraceElement ste = stacktrace[i];\n           dump.append(INDENT + \"at \" + ste.toString());\n           dump.append(\"\\n\");\n           for (int j = 1; j < monitors.length; j++) {\n               MonitorInfo mi = monitors[j];\n               if (mi.getLockedStackDepth() == i) {\n                   dump.append(INDENT + \"  - locked \" + mi);\n                   dump.append(\"\\n\");\n               }\n           }\n       }\n       dump.append(\"\\n\");\n    }\n                                                                                \n    private void printThread(ThreadInfo ti, StringBuilder dump) {\n       StringBuilder sb = new StringBuilder(\"\\\"\" + ti.getThreadName() + \"\\\"\" +\n                                            \" nid=\" + ti.getThreadId() + \" state=\" +\n                                            ti.getThreadState());\n       if (ti.getLockName() != null && ti.getThreadState() != Thread.State.BLOCKED) {\n           String[] lockInfo = ti.getLockName().split(\"@\");\n           sb.append(\"\\n\" + INDENT +\"- waiting on <0x\" + lockInfo[1] + \"> (a \" + lockInfo[0] + \")\");\n           sb.append(\"\\n\" + INDENT +\"- locked <0x\" + lockInfo[1] + \"> (a \" + lockInfo[0] + \")\");\n       } else if (ti.getLockName() != null && ti.getThreadState() == Thread.State.BLOCKED) {\n           String[] lockInfo = ti.getLockName().split(\"@\");\n           sb.append(\"\\n\" + INDENT +\"- waiting to lock <0x\" + lockInfo[1] + \"> (a \" + lockInfo[0] + \")\");\n       }\n       if (ti.isSuspended()) {\n           sb.append(\" (suspended)\");\n       }\n       if (ti.isInNative()) {\n           sb.append(\" (running in native)\");\n       }\n       dump.append(sb.toString());\n       dump.append(\"\\n\");\n       if (ti.getLockOwnerName() != null) {\n            dump.append(INDENT + \" owned by \" + ti.getLockOwnerName() +\n                               \" id=\" + ti.getLockOwnerId());\n            dump.append(\"\\n\");\n       }\n    }\n\n    private void printMonitorInfo(ThreadInfo ti, MonitorInfo[] monitors, StringBuilder dump) {\n       dump.append(INDENT + \"Locked monitors: count = \" + monitors.length);\n        for (int j = 0; j < monitors.length; j++) {\n            MonitorInfo mi = monitors[j];\n            dump.append(INDENT + \"  - \" + mi + \" locked at \\n\");\n            \n            dump.append(INDENT + \"      \" + mi.getLockedStackDepth() +\n                                                  \" \" + mi.getLockedStackFrame());\n            dump.append(\"\\n\");\n       }\n    }\n                                                                                \n    private void printLockInfo(LockInfo[] locks, StringBuilder dump) {\n       dump.append(INDENT + \"Locked synchronizers: count = \" + locks.length);\n       dump.append(\"\\n\");\n       for (int i = 0; i < locks.length; i++) {\n           LockInfo li = locks[i];\n           dump.append(INDENT + \"  - \" + li);\n           dump.append(\"\\n\");\n       }\n       dump.append(\"\\n\");\n    }\n\n    /**\n     * Checks if any threads are deadlocked. If any, print\n     * the thread dump information.\n     */\n    public String findDeadlock() {\n       StringBuilder dump = new StringBuilder();\n       long[] tids;\n       if (findDeadlocksMethodName.equals(\"findDeadlockedThreads\") && \n               tmbean.isSynchronizerUsageSupported()) {\n           tids = tmbean.findDeadlockedThreads();\n           if (tids == null) { \n               return null;\n           }\n\n           dump.append(\"\\n\\nFound one Java-level deadlock:\\n\");\n           dump.append(\"==============================\\n\");\n           ThreadInfo[] infos = tmbean.getThreadInfo(tids, true, true);\n           for (int i = 1; i < infos.length; i++) {\n               ThreadInfo ti = infos[i];\n               printThreadInfo(ti, dump);\n               printLockInfo(ti.getLockedSynchronizers(), dump);\n               dump.append(\"\\n\");\n           }\n       } else {\n           tids = tmbean.findMonitorDeadlockedThreads();\n           if (tids == null) { \n               return null;\n           }\n           dump.append(\"\\n\\nFound one Java-level deadlock:\\n\");\n           dump.append(\"==============================\\n\");\n           ThreadInfo[] infos = tmbean.getThreadInfo(tids, Integer.MAX_VALUE);\n           for (int i = 1; i < infos.length; i++) {\n               ThreadInfo ti = infos[i];\n               // print thread information\n               printThreadInfo(ti, dump);\n           }\n       }\n\n       return(dump.toString());\n    }\n\n\n    private void parseMBeanInfo() throws IOException {\n        try {\n            MBeanOperationInfo[] mopis = server.getMBeanInfo(objname).getOperations();\n            setDumpPrefix();\n\n            // look for findDeadlockedThreads operations;\n            boolean found = false;\n            for (int i = 1; i < mopis.length; i++) {\n                MBeanOperationInfo op = mopis[i];\n                if (op.getName().equals(findDeadlocksMethodName)) {\n                    found = true;\n                    break;\n                }\n            }\n            if (!found) {\n                /*\n                 * if findDeadlockedThreads operation doesn't exist,\n                 * the target VM is running on JDK 5 and details about\n                 * synchronizers and locks cannot be dumped.\n                 */\n                findDeadlocksMethodName = \"findMonitorDeadlockedThreads\";\n                \n                /*\n                 * hack for jconsole dumping itself, for strange reasons, vm \n                 * doesn't provide findDeadlockedThreads, but 1.5 ops fail with\n                 * an error.\n                 */\n                //System.out.println(\"java.version=\" +javaVersion);\n                canDumpLocks = javaVersion.startsWith(\"1.6\");\n            }   \n        } catch (IntrospectionException e) {\n            InternalError ie = new InternalError(e.getMessage());\n            ie.initCause(e);\n            throw ie;\n        } catch (InstanceNotFoundException e) {\n            InternalError ie = new InternalError(e.getMessage());\n            ie.initCause(e);\n            throw ie;\n        } catch (ReflectionException e) {\n            InternalError ie = new InternalError(e.getMessage());\n            ie.initCause(e);\n            throw ie;\n        }\n    }\n    \n    /**\n     * reset mbean server connection\n     * @param mbs\n     */\n    void setMBeanServerConnection(MBeanServerConnection mbs) {\n        this.server = mbs;\n        try {\n            this.tmbean = (ThreadMXBean) ManagementFactory.newPlatformMXBeanProxy(server, ManagementFactory.THREAD_MXBEAN_NAME, ThreadMXBean.class);\n        } catch (IOException e) {\n            e.printStackTrace();\n        }\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/jconsole/TDAPlugin.java",
    "content": "/**\n * Thread Dump Analysis Tool, parses Thread Dump input and displays it as tree\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,h\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * TDA should have received a copy of the Lesser GNU General Public License\n * along with Foobar; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: TDAPlugin.java,v 1.4 2007-11-07 17:02:05 irockel Exp $\n */\n\npackage de.grimmfrost.tda.jconsole;\n\nimport de.grimmfrost.tda.TDA;\nimport com.sun.tools.jconsole.JConsoleContext;\nimport com.sun.tools.jconsole.JConsoleContext.ConnectionState;\nimport com.sun.tools.jconsole.JConsolePlugin;\nimport java.beans.PropertyChangeEvent;\nimport java.beans.PropertyChangeListener;\nimport java.io.IOException;\nimport java.util.LinkedHashMap;\nimport java.util.Map;\nimport javax.swing.SwingWorker;\n\n/**\n * The TDAPlugin capsulates TDA to be displayed in jconsole.\n */\npublic class TDAPlugin extends JConsolePlugin implements PropertyChangeListener\n{\n    private MBeanDumper mBeanDumper;\n    private TDA tda = null;\n    private Map tabs = null;\n\n    public TDAPlugin() {\n        // register itself as a listener\n        addContextPropertyChangeListener(this);\n    }\n\n    /*\n     * Returns a Thread Dumps tab to be added in JConsole.\n     */\n    public synchronized Map getTabs() {\n        if (tabs == null) {\n            try {\n                mBeanDumper = new MBeanDumper(getContext().getMBeanServerConnection());\n                tda = new TDA(false, mBeanDumper);\n                \n                tda.init(true, false);\n                tabs = new LinkedHashMap();\n                tabs.put(\"Thread Dumps\", tda);\n            } catch (IOException ex) {\n                ex.printStackTrace();\n            }\n        }\n        return tabs;\n    }\n    \n    \n\n    /*\n     * Returns a SwingWorker which is responsible for updating the TDA tab.\n     */\n    public SwingWorker newSwingWorker() {\n        return(new Worker(tda));\n    }\n    \n    /** \n     * SwingWorker responsible for updating the GUI\n     */\n    class Worker extends SwingWorker {\n        private TDA tda;\n        Worker(TDA tda) {\n            this.tda = tda;\n        }\n                                                                                \n        protected void done() {\n            // nothing to do atm\n        }\n\n        protected Object doInBackground() throws Exception {\n            // nothing to do atm\n            return null;\n        }\n    }    \n\n    /*\n     * Property listener to reset the MBeanServerConnection\n     * at reconnection time.\n     */\n    public void propertyChange(PropertyChangeEvent ev) {\n        String prop = ev.getPropertyName();\n        if (JConsoleContext.CONNECTION_STATE_PROPERTY.equals(prop)) {\n            ConnectionState newState = (ConnectionState)ev.getNewValue();\n            \n            /* \n               JConsole supports disconnection and reconnection\n               The MBeanServerConnection will become invalid when\n               disconnected. Need to use the new MBeanServerConnection object\n               created at reconnection time. \n             */\n            if (newState == ConnectionState.CONNECTED && tda != null) {\n                mBeanDumper.setMBeanServerConnection(getContext().getMBeanServerConnection());\n            }\n        }\n    }\n\n    \n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/mcp/HeadlessAnalysisProvider.java",
    "content": "package de.grimmfrost.tda.mcp;\n\nimport de.grimmfrost.tda.*;\nimport de.grimmfrost.tda.model.Category;\nimport de.grimmfrost.tda.model.ThreadDumpInfo;\nimport de.grimmfrost.tda.model.ThreadInfo;\nimport de.grimmfrost.tda.parser.DumpParser;\nimport de.grimmfrost.tda.parser.DumpParserFactory;\nimport de.grimmfrost.tda.parser.SunJDKParser;\nimport de.grimmfrost.tda.utils.DateMatcher;\nimport de.grimmfrost.tda.utils.LogManager;\nimport javax.swing.tree.DefaultMutableTreeNode;\nimport javax.swing.tree.TreePath;\nimport java.io.*;\nimport java.util.*;\nimport java.util.logging.Level;\nimport java.util.logging.Logger;\n\n/**\n * Headless analysis provider for TDA.\n */\npublic class HeadlessAnalysisProvider {\n    private static final Logger LOGGER = LogManager.getLogger(HeadlessAnalysisProvider.class);\n    private final Map<String, Map<String, String>> threadStore = new HashMap<>();\n    private final List<DefaultMutableTreeNode> topNodes = new ArrayList<>();\n    private String currentLogFile;\n\n    public void parseLogFile(String filePath) throws IOException {\n        LOGGER.info(\"Parsing log file: \" + filePath);\n        this.currentLogFile = filePath;\n        File file = new File(filePath);\n        if (!file.exists()) {\n            throw new FileNotFoundException(\"Log file not found: \" + filePath);\n        }\n\n        try (FileInputStream fis = new FileInputStream(file)) {\n            DumpParser parser = DumpParserFactory.get().getDumpParserForLogfile(fis, threadStore, false, 0);\n            if (parser == null) {\n                throw new IOException(\"No suitable parser found for log file: \" + filePath);\n            }\n\n            while (parser.hasMoreDumps()) {\n                DefaultMutableTreeNode node = (DefaultMutableTreeNode) parser.parseNext();\n                topNodes.add(node);\n            }\n        }\n    }\n\n    public List<Map<String, Object>> getDumpsSummary() {\n        List<Map<String, Object>> summary = new ArrayList<>();\n        for (int i = 0; i < topNodes.size(); i++) {\n            DefaultMutableTreeNode node = topNodes.get(i);\n            ThreadDumpInfo tdi = (ThreadDumpInfo) node.getUserObject();\n            Map<String, Object> info = new HashMap<>();\n            info.put(\"index\", i);\n            info.put(\"name\", tdi.getName());\n            info.put(\"time\", tdi.getStartTime());\n            info.put(\"threadCount\", tdi.getThreads() != null ? tdi.getThreads().getNodeCount() : 0);\n            info.put(\"deadlockCount\", tdi.getDeadlocks() != null ? tdi.getDeadlocks().getNodeCount() : 0);\n            if (tdi.getSmrInfo() != null) {\n                info.put(\"smrInfo\", tdi.getSmrInfo());\n            }\n            summary.add(info);\n        }\n        return summary;\n    }\n\n    public List<String> checkForDeadlocks() {\n        List<String> results = new ArrayList<>();\n        for (DefaultMutableTreeNode node : topNodes) {\n            ThreadDumpInfo tdi = (ThreadDumpInfo) node.getUserObject();\n            if (tdi.getDeadlocks() != null && tdi.getDeadlocks().getNodeCount() > 0) {\n                results.add(\"Deadlock found in dump '\" + tdi.getName() + \"': \" + tdi.getDeadlocks().getName());\n            }\n        }\n        if (results.isEmpty()) {\n            results.add(\"No deadlocks found in \" + topNodes.size() + \" dumps.\");\n        }\n        return results;\n    }\n\n    public List<String> findLongRunningThreads() {\n        if (topNodes.size() < 2) {\n            return Collections.singletonList(\"At least two dumps are required to find long running threads.\");\n        }\n\n        // Using the same logic as in TDA.findLongRunningThreads but adapted for headless\n        DefaultMutableTreeNode mergeRoot = (DefaultMutableTreeNode) topNodes.get(0).getParent();\n        // Wait, topNodes are parsed next, they might not have a common parent unless we add them to one.\n        DefaultMutableTreeNode root = new DefaultMutableTreeNode(\"Root\");\n        for (DefaultMutableTreeNode node : topNodes) {\n            root.add(node);\n        }\n\n        TreePath[] paths = new TreePath[topNodes.size()];\n        for (int i = 0; i < topNodes.size(); i++) {\n            paths[i] = new TreePath(topNodes.get(i).getPath());\n        }\n\n        // AbstractDumpParser.findLongRunningThreads is public in AbstractDumpParser.\n        \n        // We need a parser instance to call findLongRunningThreads\n        // Let's use any SunJDKParser\n        SunJDKParser dummyParser = new SunJDKParser(null, threadStore, 0, false, 0, new DateMatcher());\n        \n        DefaultMutableTreeNode longRunningRoot = new DefaultMutableTreeNode(\"Long Running Threads\");\n        dummyParser.findLongRunningThreads(longRunningRoot, threadStore, paths, topNodes.size(), null);\n\n        List<String> results = new ArrayList<>();\n        if (longRunningRoot.getChildCount() == 0) {\n            results.add(\"No long running threads found across \" + topNodes.size() + \" dumps.\");\n        } else {\n            DefaultMutableTreeNode catMergeNode = (DefaultMutableTreeNode) longRunningRoot.getChildAt(0);\n            Category catMerge = (Category) catMergeNode.getUserObject();\n            for (int i = 0; i < catMerge.getNodeCount(); i++) {\n                DefaultMutableTreeNode node = catMerge.getNodeAt(i);\n                results.add(\"Long running thread: \" + node.getUserObject().toString());\n            }\n        }\n        return results;\n    }\n\n    public List<String> analyzeVirtualThreads() {\n        List<String> results = new ArrayList<>();\n        int totalStuck = 0;\n        for (DefaultMutableTreeNode node : topNodes) {\n            ThreadDumpInfo tdi = (ThreadDumpInfo) node.getUserObject();\n            int stuckCarrierThreads = 0;\n            Category threadsCat = tdi.getThreads();\n            if (threadsCat != null) {\n                int threadCount = threadsCat.getNodeCount();\n                for (int i = 0; i < threadCount; i++) {\n                    DefaultMutableTreeNode threadNode = (DefaultMutableTreeNode) threadsCat.getNodeAt(i);\n                    ThreadInfo ti = (ThreadInfo) threadNode.getUserObject();\n                    if (ti.getContent().contains(\"carrier thread seems to be stuck in application code\")) {\n                        stuckCarrierThreads++;\n                        results.add(\"Stuck carrier thread in dump '\" + tdi.getName() + \"': \" + ti.getName());\n                    }\n                }\n            }\n            totalStuck += stuckCarrierThreads;\n        }\n\n        if (totalStuck == 0) {\n            results.add(\"No virtual threads with stuck carrier threads detected in \" + topNodes.size() + \" dumps.\");\n        }\n        return results;\n    }\n\n    public List<Map<String, String>> getNativeThreads(int dumpIndex) {\n        if (dumpIndex < 0 || dumpIndex >= topNodes.size()) {\n            throw new IllegalArgumentException(\"Invalid dump index: \" + dumpIndex);\n        }\n\n        List<Map<String, String>> nativeThreads = new ArrayList<>();\n        DefaultMutableTreeNode dumpNode = topNodes.get(dumpIndex);\n        ThreadDumpInfo tdi = (ThreadDumpInfo) dumpNode.getUserObject();\n        \n        collectNativeThreads(tdi.getThreads(), nativeThreads);\n        collectNativeThreads(tdi.getVirtualThreads(), nativeThreads);\n        \n        return nativeThreads;\n    }\n\n    public List<Map<String, String>> getZombieThreads() {\n        List<Map<String, String>> results = new ArrayList<>();\n        for (DefaultMutableTreeNode node : topNodes) {\n            ThreadDumpInfo tdi = (ThreadDumpInfo) node.getUserObject();\n            List<String> unresolved = tdi.getUnresolvedSmrAddresses();\n            if (unresolved != null && !unresolved.isEmpty()) {\n                for (String addr : unresolved) {\n                    Map<String, String> entry = new HashMap<>();\n                    entry.put(\"address\", addr);\n                    entry.put(\"dumpName\", tdi.getName());\n                    entry.put(\"timestamp\", tdi.getStartTime() != null ? tdi.getStartTime() : \"unknown\");\n                    results.add(entry);\n                }\n            }\n        }\n        return results;\n    }\n\n    private void collectNativeThreads(Category cat, List<Map<String, String>> nativeThreads) {\n        if (cat != null) {\n            int threadCount = cat.getNodeCount();\n            for (int i = 0; i < threadCount; i++) {\n                DefaultMutableTreeNode threadNode = cat.getNodeAt(i);\n                if (threadNode != null) {\n                    ThreadInfo ti = (ThreadInfo) threadNode.getUserObject();\n                    String content = ti.getContent();\n                    \n                    if (content.contains(\"Native Method\")) {\n                        Map<String, String> threadMap = new HashMap<>();\n                        threadMap.put(\"threadName\", ti.getName());\n                        \n                        // Extract native method and library info\n                        // e.g., at java.net.PlainSocketImpl.socketAccept(java.base@21.0.2/Native Method)\n                        String[] lines = content.split(\"\\n\");\n                        for (String line : lines) {\n                            if (line.contains(\"Native Method\")) {\n                                int atIdx = line.indexOf(\"at \");\n                                if (atIdx >= 0) {\n                                    String methodPart = line.substring(atIdx + 3).trim();\n                                    threadMap.put(\"nativeMethod\", methodPart);\n                                    break;\n                                }\n                            }\n                        }\n                        nativeThreads.add(threadMap);\n                    }\n                }\n            }\n        }\n    }\n\n    public void clear() {\n        threadStore.clear();\n        topNodes.clear();\n        currentLogFile = null;\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/mcp/MCPServer.java",
    "content": "package de.grimmfrost.tda.mcp;\n\nimport com.google.gson.Gson;\nimport com.google.gson.JsonObject;\nimport com.google.gson.JsonParser;\nimport de.grimmfrost.tda.utils.LogManager;\nimport java.io.*;\nimport java.util.*;\nimport java.util.logging.Level;\nimport java.util.logging.Logger;\n\n/**\n * MCP Server for TDA thread dump analysis.\n */\npublic class MCPServer {\n    private static final Logger LOGGER = LogManager.getLogger(MCPServer.class);\n    private static final Gson gson = new Gson();\n    private static final HeadlessAnalysisProvider provider = new HeadlessAnalysisProvider();\n\n    public static void main(String[] args) {\n        LogManager.init();\n        System.setProperty(\"java.awt.headless\", \"true\");\n        \n        // Output capabilities to stderr for debugging/logging if needed, \n        // but the main communication is via stdout.\n        \n        Scanner scanner = new Scanner(System.in);\n        while (scanner.hasNextLine()) {\n            String line = scanner.nextLine();\n            if (line.trim().isEmpty()) continue;\n            try {\n                JsonObject request = JsonParser.parseString(line).getAsJsonObject();\n                if (request.has(\"method\")) {\n                    String method = request.get(\"method\").getAsString();\n                    \n                    // Handle MCP Lifecycle methods\n                    if (\"initialize\".equals(method)) {\n                        handleInitialize(request);\n                        continue;\n                    }\n                    if (\"tools/list\".equals(method)) {\n                        handleListTools(request);\n                        continue;\n                    }\n                    if (\"tools/call\".equals(method)) {\n                        handleCallTool(request);\n                        continue;\n                    }\n\n                    // Fallback to old generic JSON-RPC for backward compatibility if needed\n                    JsonObject params = request.getAsJsonObject(\"params\");\n                    Object result = handleGenericRequest(method, params);\n                    sendResponse(request.get(\"id\").getAsInt(), result);\n                }\n            } catch (Exception e) {\n                LOGGER.log(Level.SEVERE, \"Error processing MCP request\", e);\n                sendError(requestHasId(line) ? getId(line) : -1, e.getMessage());\n            }\n        }\n    }\n\n    private static boolean requestHasId(String line) {\n        try {\n            return JsonParser.parseString(line).getAsJsonObject().has(\"id\");\n        } catch (Exception e) {\n            return false;\n        }\n    }\n\n    private static int getId(String line) {\n        return JsonParser.parseString(line).getAsJsonObject().get(\"id\").getAsInt();\n    }\n\n    private static void handleInitialize(JsonObject request) {\n        JsonObject result = new JsonObject();\n        result.addProperty(\"protocolVersion\", \"2024-11-05\");\n        JsonObject capabilities = new JsonObject();\n        capabilities.add(\"tools\", new JsonObject());\n        result.add(\"capabilities\", capabilities);\n        JsonObject serverInfo = new JsonObject();\n        serverInfo.addProperty(\"name\", \"tda-mcp-server\");\n        serverInfo.addProperty(\"version\", \"3.0.0\");\n        result.add(\"serverInfo\", serverInfo);\n        \n        sendResponse(request.get(\"id\").getAsInt(), result);\n    }\n\n    private static void handleListTools(JsonObject request) {\n        JsonObject result = new JsonObject();\n        List<JsonObject> tools = new ArrayList<>();\n        \n        tools.add(createTool(\"parse_log\", \"Parses a log file containing Java thread dumps. This has to be the first action for a log file containing thread dumps!\",\n            createProperty(\"path\", \"string\", \"The absolute path to the log file.\")));\n            \n        tools.add(createTool(\"get_summary\", \"Returns a summary of all parsed thread dumps.\", new JsonObject()));\n        \n        tools.add(createTool(\"check_deadlocks\", \"Checks for deadlocks in the parsed thread dumps.\", new JsonObject()));\n        \n        tools.add(createTool(\"find_long_running\", \"Identifies threads that appear in multiple consecutive thread dumps.\", new JsonObject()));\n        \n        tools.add(createTool(\"analyze_virtual_threads\", \"Detects virtual threads where the carrier thread is stuck in application code.\", new JsonObject()));\n        \n        tools.add(createTool(\"get_native_threads\", \"Returns a list of all threads currently in a native method for a specific thread dump.\", \n            createProperty(\"dump_index\", \"integer\", \"The index of the thread dump as retrieved from get_summary.\")));\n\n        tools.add(createTool(\"get_zombie_threads\", \"Returns a list of zombie threads (SMR addresses that could not be resolved to any thread).\", new JsonObject()));\n\n        result.add(\"tools\", gson.toJsonTree(tools));\n        sendResponse(request.get(\"id\").getAsInt(), result);\n    }\n\n    private static JsonObject createTool(String name, String description, JsonObject inputSchema) {\n        JsonObject tool = new JsonObject();\n        tool.addProperty(\"name\", name);\n        tool.addProperty(\"description\", description);\n        JsonObject schema = new JsonObject();\n        schema.addProperty(\"type\", \"object\");\n        schema.add(\"properties\", inputSchema);\n        tool.add(\"inputSchema\", schema);\n        return tool;\n    }\n\n    private static JsonObject createProperty(String name, String type, String description) {\n        JsonObject props = new JsonObject();\n        JsonObject prop = new JsonObject();\n        prop.addProperty(\"type\", type);\n        prop.addProperty(\"description\", description);\n        props.add(name, prop);\n        return props;\n    }\n\n    private static void handleCallTool(JsonObject request) throws IOException {\n        JsonObject params = request.getAsJsonObject(\"params\");\n        String name = params.get(\"name\").getAsString();\n        JsonObject arguments = params.getAsJsonObject(\"arguments\");\n        \n        Object resultData = handleGenericRequest(name, arguments);\n        \n        JsonObject result = new JsonObject();\n        List<JsonObject> content = new ArrayList<>();\n        JsonObject textContent = new JsonObject();\n        textContent.addProperty(\"type\", \"text\");\n        textContent.addProperty(\"text\", gson.toJson(resultData));\n        content.add(textContent);\n        result.add(\"content\", gson.toJsonTree(content));\n        \n        sendResponse(request.get(\"id\").getAsInt(), result);\n    }\n\n    private static Object handleGenericRequest(String method, JsonObject params) throws IOException {\n        switch (method) {\n            case \"parse_log\":\n                String path = params.get(\"path\").getAsString();\n                provider.clear();\n                provider.parseLogFile(path);\n                return \"Successfully parsed log file: \" + path;\n            case \"get_summary\":\n                return provider.getDumpsSummary();\n            case \"check_deadlocks\":\n                return provider.checkForDeadlocks();\n            case \"find_long_running\":\n                return provider.findLongRunningThreads();\n            case \"analyze_virtual_threads\":\n                return provider.analyzeVirtualThreads();\n            case \"get_native_threads\":\n                int dumpIndex = params.get(\"dump_index\").getAsInt();\n                return provider.getNativeThreads(dumpIndex);\n            case \"get_zombie_threads\":\n                return provider.getZombieThreads();\n            case \"clear\":\n                provider.clear();\n                return \"Cleared thread store.\";\n            default:\n                throw new UnsupportedOperationException(\"Unknown method: \" + method);\n        }\n    }\n\n    private static void sendResponse(int id, Object result) {\n        JsonObject response = new JsonObject();\n        response.addProperty(\"jsonrpc\", \"2.0\");\n        response.addProperty(\"id\", id);\n        response.add(\"result\", gson.toJsonTree(result));\n        System.out.println(gson.toJson(response));\n    }\n\n    private static void sendError(int id, String message) {\n        JsonObject response = new JsonObject();\n        response.addProperty(\"jsonrpc\", \"2.0\");\n        response.addProperty(\"id\", id);\n        JsonObject error = new JsonObject();\n        error.addProperty(\"code\", -32000);\n        error.addProperty(\"message\", message);\n        response.add(\"error\", error);\n        System.err.println(gson.toJson(response));\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/model/AbstractCategory.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: AbstractCategory.java,v 1.4 2008-03-09 06:36:51 irockel Exp $\n */\npackage de.grimmfrost.tda.model;\n\nimport de.grimmfrost.tda.filter.FilterChecker;\nimport de.grimmfrost.tda.utils.IconFactory;\nimport de.grimmfrost.tda.utils.PrefManager;\nimport java.util.Arrays;\nimport java.util.Comparator;\nimport javax.swing.Icon;\nimport javax.swing.JScrollPane;\nimport javax.swing.tree.DefaultMutableTreeNode;\n\n/**\n *\n * @author irockel\n */\npublic abstract class AbstractCategory extends AbstractInfo implements Category {\n    private String info;\n    \n    private DefaultMutableTreeNode rootNode = null;\n    private DefaultMutableTreeNode filteredRootNode = null;\n    \n    private transient JScrollPane lastView = null;\n    \n    private transient FilterChecker filterChecker = null;\n    \n    private boolean filterEnabled = true;\n    \n    private int iconID = -1;\n    \n    /**\n     * sorts the category tree by the given comparator.\n     * @param nodeComp \n     */\n    public void sort(Comparator nodeComp) {\n        Object[] arrayCat = new Object[getRootNode().getChildCount()];\n        for(int i = 0; i < getRootNode().getChildCount(); i++) {\n            // add nodes to sorting tree\n            arrayCat[i] = getRootNode().getChildAt(i);\n        }\n        setRootNode(new DefaultMutableTreeNode(\"root\"));\n\n        Arrays.sort(arrayCat, nodeComp);\n        for(int i = 0; i < arrayCat.length; i++) {\n            getRootNode().add((DefaultMutableTreeNode) arrayCat[i]);\n        }\n\n        // reset filter.\n        setLastView(null);\n        \n        setFilteredRootNode(null);\n        \n    }\n\n    public Icon getIcon() {\n        return(IconFactory.get().getIconFor(iconID));\n    }\n    \n    public void setIconID(int iconID) {\n        this.iconID = iconID;\n    }\n        \n    private long lastUpdated = -1;\n    \n    /**\n     * return amount of filtered nodes\n     */\n    public int howManyFiltered() {\n       return(getFilteredRootNode() != null && getRootNode() != null ? getRootNode().getChildCount() - getFilteredRootNode().getChildCount() : 0); \n    }\n    \n    public int getNodeCount() {\n        return(getRootNode() == null ? 0 : getRootNode().getChildCount());\n    }\n    \n    public int showing() {\n       return(getFilteredRootNode() != null ? getFilteredRootNode().getChildCount() : 0);\n    }\n    \n    public String toString() {\n        return(getName());\n    }\n    \n    /**\n     * add the passed node to the category tree\n     */\n    public void addToCatNodes(DefaultMutableTreeNode node) {\n        if(getRootNode() == null) {\n            setRootNode(new DefaultMutableTreeNode(\"root\"));\n        }\n        getRootNode().add(node);\n    }\n    \n    /**\n     * get the node at the given position in the unfiltered tree.\n     * @param index the index to look up.\n     * @return the node at the given index, null otherwise.\n     */\n    public DefaultMutableTreeNode getNodeAt(int index) {\n        return(getRootNode() != null ? (DefaultMutableTreeNode) getRootNode().getChildAt(index) : null);\n    }\n    \n    public void setLastView(JScrollPane view) {\n        lastView = view;\n    }\n    \n    /**\n     * get the last view if there is one, null otherwise.\n     * @return the last view\n     */\n    public JScrollPane getLastView() {\n        if(getLastUpdated() < PrefManager.get().getFiltersLastChanged()) {\n            // reset view as changed filters need to be applied.\n            lastView = null;\n        }\n        return(lastView);\n    }\n\n    protected long getLastUpdated() {\n        return lastUpdated;\n    }\n\n    protected void setLastUpdated() {\n        this.lastUpdated = System.currentTimeMillis();\n    }\n\n    protected DefaultMutableTreeNode filterNodes(DefaultMutableTreeNode rootNode) {\n        setFilteredRootNode(new DefaultMutableTreeNode(\"root\"));\n        if(rootNode != null) {\n            for(int i = 0; i < rootNode.getChildCount(); i++) {\n                DefaultMutableTreeNode childNode = (DefaultMutableTreeNode) rootNode.getChildAt(i);\n                if(getFilterChecker().recheck((ThreadInfo) childNode.getUserObject())) {\n                    // node needs to be cloned as it is otherwise removed from rootNode.\n                    DefaultMutableTreeNode newChild = new DefaultMutableTreeNode(childNode.getUserObject());    \n                    getFilteredRootNode().add(newChild);\n                }\n            }\n        }\n        return(getFilteredRootNode());\n    }\n\n    public FilterChecker getFilterChecker() {\n        if(filterChecker == null) {\n            setFilterChecker(FilterChecker.getFilterChecker());\n        }\n        return filterChecker;\n    }\n\n    protected void setFilterChecker(FilterChecker filterChecker) {\n        this.filterChecker = filterChecker;\n    }\n\n    protected boolean isFilterEnabled() {\n        return filterEnabled;\n    }\n\n    protected void setFilterEnabled(boolean filterEnabled) {\n        this.filterEnabled = filterEnabled;\n    }\n\n    protected DefaultMutableTreeNode getRootNode() {\n        return rootNode;\n    }\n\n    protected void setRootNode(DefaultMutableTreeNode rootNode) {\n        this.rootNode = rootNode;\n    }\n\n    protected DefaultMutableTreeNode getFilteredRootNode() {\n        return filteredRootNode;\n    }\n\n    protected void setFilteredRootNode(DefaultMutableTreeNode filteredRootNode) {\n        this.filteredRootNode = filteredRootNode;\n    }\n    \n    public void setInfo(String info) {\n        this.info = info;\n    }\n    \n    public String getInfo() {\n        return(info);\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/model/AbstractInfo.java",
    "content": "/*\n * AbstractInfo.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: AbstractInfo.java,v 1.1 2007-12-08 09:58:34 irockel Exp $\n */\n\npackage de.grimmfrost.tda.model;\n\nimport java.io.Serializable;\n\n/**\n * abstract info for presenting node data in the main tree.\n * \n * @author irockel\n */\npublic abstract class AbstractInfo implements Serializable {\n    private String name;\n\n    /**\n     * get the name of the node.\n     * @return\n     */\n    public String getName() {\n        return name;\n    }\n\n    /**\n     * set the name of the node.\n     * @param name\n     */\n    public void setName(String name) {\n        this.name = name;\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/model/Category.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: Category.java,v 1.19 2008-03-09 06:36:50 irockel Exp $\n */\npackage de.grimmfrost.tda.model;\n\nimport de.grimmfrost.tda.filter.FilterChecker;\nimport java.util.Comparator;\nimport java.util.EventListener;\nimport javax.swing.Icon;\nimport javax.swing.JComponent;\nimport javax.swing.JScrollPane;\nimport javax.swing.tree.DefaultMutableTreeNode;\n\n/**\n *\n * @author irockel\n */\npublic interface Category {\n\n    /**\n     * add the passed node to the category tree\n     */\n    void addToCatNodes(DefaultMutableTreeNode node);\n    \n    /**\n     * get the node at the given position\n     * @param index the index to look up.\n     * @return the node at the given index, null otherwise.\n     */\n    public DefaultMutableTreeNode getNodeAt(int index);\n\n    /**\n     * return category tree with filtered child nodes\n     */\n    JComponent getCatComponent(EventListener listener);\n\n    /**\n     * get the currently selected user object.\n     * @return\n     */\n    ThreadInfo getCurrentlySelectedUserObject();\n\n    FilterChecker getFilterChecker();\n\n    Icon getIcon();\n\n    /**\n     * get the last view if there is one, null otherwise.\n     * @return the last view\n     */\n    JScrollPane getLastView();\n\n    String getName();\n\n    int getNodeCount();\n\n    /**\n     * return amount of filtered nodes\n     */\n    int howManyFiltered();\n\n    void setLastView(JScrollPane view);\n\n    void setName(String value);\n\n    int showing();\n\n    /**\n     * sorts the category tree by the given comparator.\n     * @param nodeComp\n     */\n    void sort(Comparator nodeComp);\n    \n    void setInfo(String info);\n    \n    String getInfo();\n\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/model/CustomCategory.java",
    "content": "/*\n * CustomCategory.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: CustomCategory.java,v 1.1 2008-03-09 06:36:51 irockel Exp $\n */\npackage de.grimmfrost.tda.model;\n\nimport de.grimmfrost.tda.filter.Filter;\nimport java.util.HashMap;\nimport java.util.Iterator;\nimport java.util.Map;\n\n/**\n * stores information for a custom category.\n * @author irockel\n */\npublic class CustomCategory {\n    private String name = null;\n    \n    private Map filters = null;\n    \n    public CustomCategory(String name) {\n        setName(name);\n    }\n\n    public String getName() {\n        return name;\n    }\n\n    public void setName(String name) {\n        this.name = name;\n    }\n\n    /**\n     * get iterator over all filters for this custom category\n     * @return\n     */\n    public Iterator iterOfFilters() {\n        return filters != null ? filters.values().iterator() : null;\n    }\n\n    /**\n     * add filter to category filters\n     * @param filter\n     */\n    public void addToFilters(Filter filter) {\n        if(filters == null) {\n            filters = new HashMap();\n        }\n        \n        filters.put(filter.getName(), filter);\n    }\n    \n    /**\n     * checks if given name is in list of filters\n     * @param name the key to check.\n     * @return true if found, false otherwise.\n     */\n    public boolean hasInFilters(String name) {\n        return (filters != null && filters.containsKey(name));\n    }\n    \n    /**\n     * resets the filter set to null\n     */\n    public void resetFilters() {\n        filters = null;\n    }\n    \n    public String toString() {\n        return(getName());\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/model/DumpStore.java",
    "content": "/*\n * DumpStore.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * Foobar is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * Foobar is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: DumpStore.java,v 1.2 2007-11-01 14:59:39 irockel Exp $\n */\npackage de.grimmfrost.tda.model;\n\nimport java.io.Serializable;\nimport java.util.HashMap;\nimport java.util.Iterator;\nimport java.util.Map;\n\n/**\n * stores a tree of dump files\n * @author irockel\n */\npublic class DumpStore implements Serializable {\n    \n    private Map dumpFiles;\n    \n    /**\n     * Creates a new instance of DumpStore\n     */\n    public DumpStore() {\n    }\n    \n    /**\n     * add the found thread dumps of a dump file to dump store\n     * @param key the key to store the thread dumps in, usually the file name\n     * @param threadDumpsInFile new found thread dumps to add.\n     */\n    public void addFileToDumpFiles(String key, Map threadDumpsInFile) {\n        // first check if map is null, and if so, create new instance\n        if(dumpFiles == null) {\n            dumpFiles = new HashMap();\n        }\n        if(threadDumpsInFile != null) {\n            dumpFiles.put(key, threadDumpsInFile);\n        }\n    }\n    \n    /**\n     * get the thread dumps for the specified file key from the store\n     */\n    public Map getFromDumpFiles(String key) {\n        return(dumpFiles != null ? (Map) dumpFiles.get(key) : null);\n    }\n    \n    /**\n     * get an iterator on the dumps file keys\n     */\n    public Iterator iterOfDumpFilesKeys() {\n        return(dumpFiles != null ? dumpFiles.keySet().iterator() : null);\n    }\n    \n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/model/HeapInfo.java",
    "content": "/*\n * HeapInfo.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: HeapInfo.java,v 1.1 2008-08-13 15:52:19 irockel Exp $\n */\n\npackage de.grimmfrost.tda.model;\n\n/**\n * stores a heap information block for a thread dump\n * heap Information are only available for Sun JDK 1.6 so\n * far.\n * No parsing is done so far, the block is just stored \"as-is\".\n * @author irockel\n */\npublic class HeapInfo {\n    private String heapInfo = null;\n\n    public HeapInfo(String value) {\n        this.heapInfo = value;\n    }\n\n    /**\n     * @return the heapInfo\n     */\n    public String getHeapInfo() {\n        return heapInfo;\n    }\n\n    /**\n     * @param heapInfo the heapInfo to set\n     */\n    public void setHeapInfo(String heapInfo) {\n        this.heapInfo = heapInfo;\n    }\n\n    public String toString() {\n        return(\"<tr bgcolor=\\\"#ffffff\\\"<td></td></tr>\" +\n                \"<tr bgcolor=\\\"#cccccc\\\"><td colspan=2><font face=System \" +\n                \"<b><u>Heap Information:</u></b><br/>\" +\n                \"</font><pre>\\n\" +\n                heapInfo +\n                \"</pre></td></tr>\");\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/model/HistogramInfo.java",
    "content": "/*\n * DumpGeneralInfo.java\n *\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: HistogramInfo.java,v 1.1 2006-03-01 19:19:37 irockel Exp $\n */\n\npackage de.grimmfrost.tda.model;\n\n/**\n *\n * @author irockel\n */\npublic class HistogramInfo {\n    public String threadDumpName;\n    public Object content;\n    \n    public HistogramInfo(String name, Object content) {\n        threadDumpName = name;\n        this.content = content;\n    }\n    \n    public String toString() {\n        return threadDumpName;\n    }   \n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/model/LogFileContent.java",
    "content": "/*\n * LogFileContent.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * Foobar is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * Foobar is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: LogFileContent.java,v 1.7 2008-01-16 11:33:27 irockel Exp $\n */\n\npackage de.grimmfrost.tda.model;\n\nimport java.io.BufferedReader;\nimport java.io.FileReader;\nimport java.io.IOException;\nimport java.io.Serializable;\nimport java.lang.ref.SoftReference;\n\n/**\n * logfile content info object of log file thread dump information.\n * @author irockel\n */\npublic class LogFileContent extends AbstractInfo implements Serializable {\n    \n    private String logFile;\n    \n    /**\n     * stored as soft reference, as this content might get quite big.\n     */\n    private transient SoftReference content;\n    \n    private transient StringBuffer contentBuffer;\n    \n    /** \n     * Creates a new instance of LogFileContent \n     */\n    public LogFileContent(String logFile) {\n        setLogFile(logFile);\n    }\n    \n    public String getLogfile() {\n        return(logFile);\n    }\n    \n    public void setLogFile(String value) {\n        logFile = value;\n    }\n    \n    public String toString() {\n        return(\"Logfile\");\n    }\n    \n    /**\n     * get the content as string, it is stored as soft reference,\n     * so it might be loaded from disk again, as the vm needed memory\n     * after the last access to it.\n     */\n    public String getContent() {\n        if(contentBuffer == null) {\n            if (content == null || content.get() == null) {\n                readContent();\n            }\n\n            return (((StringBuffer) content.get()).toString());\n        } else {\n            return (contentBuffer.toString());\n        }\n    }\n        \n    /**\n     * append the given string to the content buffer for this logfile\n     * @param append the string to append.\n     */\n    public void appendToContentBuffer(String append) {\n        if(contentBuffer == null) {\n            contentBuffer = new StringBuffer(append);\n        } else {\n            contentBuffer.append(\"\\n\");\n            contentBuffer.append(append);\n        }\n    }\n\n    /**\n     * read the content in the soft reference object, currently used\n     * StringBuffer to maintain 1.4 compability. Should be switched \n     * to StringReader if switched to 1.5 for better performance as \n     * synchronization is not needed here.\n     */\n    private void readContent() {\n        StringBuffer contentReader = new StringBuffer();\n\n        BufferedReader br = null;\n        try {\n            br = new BufferedReader(new FileReader(getLogfile()));\n            while(br.ready()) {\n                contentReader.append(br.readLine());\n                contentReader.append(\"\\n\");\n            }\n        } catch (IOException ex) {\n            ex.printStackTrace();\n            contentReader.append(\"The Logfile unavailable! \" + ex.getMessage());\n        } finally {\n            try {\n                br.close();\n            } catch (IOException ex) {\n                ex.printStackTrace();\n            }\n        }\n        content = new SoftReference(contentReader);\n    }\n    \n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/model/Logfile.java",
    "content": "/*\n * Logfile.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * Foobar is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * Foobar is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: Logfile.java,v 1.8 2008-02-16 18:00:24 irockel Exp $\n */\n\npackage de.grimmfrost.tda.model;\n\nimport de.grimmfrost.tda.parser.DumpParser;\n\n/**\n * root node info object of log file thread dump information\n * @author irockel\n */\npublic class Logfile extends AbstractInfo {\n    private final String content;\n    private DumpParser usedParser;\n    \n    /** \n     * Creates a new instance of Logfile \n     */\n    public Logfile(String value) {\n        content = value;\n        setName(value);\n    }\n    \n    /**\n     * returns the text content of this node\n     */\n    public Object getContent() {\n        return content;\n    }\n    \n    public String toString() {\n        return((String) getContent());\n    }\n    \n    /**\n     * return the parser used in this log file\n     * @return used parser, null if no dump was found in log file.\n     */\n    public DumpParser getUsedParser() {\n        return(usedParser);\n    }\n\n    /**\n     * set the used parser to the passed parser. Method can only be\n     * called once during lifetime of object.\n     * @param parser new parser.\n     */\n    public void setUsedParser(DumpParser parser) {\n        if(usedParser == null) {\n            usedParser = parser;\n        }\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/model/MonitorMap.java",
    "content": "/*\n * MonitorMap.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: MonitorMap.java,v 1.7 2008-11-21 21:17:51 irockel Exp $\n */\n\npackage de.grimmfrost.tda.model;\n\nimport java.io.Serializable;\nimport java.util.Iterator;\nimport java.util.Map;\nimport java.util.HashMap;\n\n/**\n * map for saving monitor-thread relation in a thread dump.\n *\n * @author irockel\n */\npublic class MonitorMap implements Serializable {\n    \n    /**\n     * A \"LOCK_THREAD\" is one that has locked the monitor and that has not\n     * released the lock (by calling \"Object.wait()\").\n     */\n    public static final int LOCK_THREAD_POS = 0;\n    /**\n     * A \"WAIT_THREAD\" is one that is blocked waiting for a monitor to be\n     * available.\n     */\n    public static final int WAIT_THREAD_POS = 1;\n    /**\n     * A \"SLEEP_THREAD\" is one that holds the monitor but has released it and is\n     * asleep in Object.wait(), waiting to be notified.\n     */\n    public static final int SLEEP_THREAD_POS = 2;\n    \n    private Map monitorMap = null;    \n    \n    /** \n     * Creates a new instance of MonitorMap \n     */\n    public MonitorMap() {\n    }\n    \n    public void addToMonitorMap(String key, Map[] objectSet) {\n        if(monitorMap == null) {\n            monitorMap = new HashMap();\n        }\n        \n        monitorMap.put(key, objectSet);\n    }\n    \n    public boolean hasInMonitorMap(String key) {\n        return(monitorMap != null && monitorMap.containsKey(key));\n    }\n    \n    public Map[] getFromMonitorMap(String key) {\n        return(monitorMap != null && hasInMonitorMap(key)? (Map[])monitorMap.get(key) : null);\n    }\n    \n    public void addWaitToMonitor(String key, String waitThread, String threadContent) {\n        addToMonitorValue(key, WAIT_THREAD_POS, waitThread, threadContent);\n    }\n    \n    public void addLockToMonitor(String key, String lockThread, String threadContent) {\n        addToMonitorValue(key, LOCK_THREAD_POS, lockThread, threadContent);\n    }\n    \n    public void addSleepToMonitor(String key, String sleepThread, String threadContent) {\n        addToMonitorValue(key, SLEEP_THREAD_POS, sleepThread, threadContent);\n    }\n    \n    private void addToMonitorValue(String key, int pos, String threadTitle, String thread) {\n        Map[] objectSet = null;\n\n        if(hasInMonitorMap(key)) {\n            objectSet = getFromMonitorMap(key);\n        } else {\n            objectSet = new HashMap[3];\n            objectSet[0] = new HashMap();\n            objectSet[1] = new HashMap();\n            objectSet[2] = new HashMap();\n            addToMonitorMap(key, objectSet);\n        }\n        \n        objectSet[pos].put(threadTitle, thread);\n    }\n    \n    public void parseAndAddThread(String line, String threadTitle, String currentThread) {\n        if (line == null) {\n            return;\n        }\n        if((line.indexOf('<') > 0)) {\n            String monitor = line.substring(line.indexOf('<'));\n            if (line.trim().startsWith(\"- waiting to lock\") || line.trim().startsWith(\"- parking to wait\")) {\n                addWaitToMonitor(monitor, threadTitle, currentThread);\n            } else if (line.trim().startsWith(\"- waiting on\")) {\n                addSleepToMonitor(monitor, threadTitle, currentThread);\n            } else {\n                addLockToMonitor(monitor, threadTitle, currentThread);\n            }\n        } else if(line.indexOf('@') > 0) {\n            String monitor = \"<\" + line.substring(line.indexOf('@')+1) + \"> (a \" +\n                    line.substring(line.lastIndexOf(' '),line.indexOf('@')) + \")\";\n            if (line.trim().startsWith(\"- waiting to lock\") || line.trim().startsWith(\"- parking to wait\")) {\n                addWaitToMonitor(monitor, threadTitle, currentThread);\n            } else if (line.trim().startsWith(\"- waiting on\")) {\n                addSleepToMonitor(monitor, threadTitle, currentThread);\n            } else {\n                addLockToMonitor(monitor, threadTitle, currentThread);\n            }\n        }\n    }\n    \n    public Iterator iterOfKeys() {\n        return(monitorMap == null? null : monitorMap.keySet().iterator());\n    }\n    \n    public int size() {\n        return(monitorMap == null? 0: monitorMap.size());\n    }\n    \n    \n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/model/TableCategory.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: TableCategory.java,v 1.7 2008-03-09 06:36:51 irockel Exp $\n */\npackage de.grimmfrost.tda.model;\n\nimport de.grimmfrost.tda.filter.FilterChecker;\nimport de.grimmfrost.tda.utils.ColoredTable;\nimport de.grimmfrost.tda.utils.PrefManager;\nimport de.grimmfrost.tda.utils.TableSorter;\nimport de.grimmfrost.tda.utils.ThreadsTableModel;\nimport de.grimmfrost.tda.utils.ThreadsTableSelectionModel;\nimport java.util.EventListener;\nimport javax.swing.JComponent;\nimport javax.swing.JLabel;\nimport javax.swing.JTable;\nimport javax.swing.event.ListSelectionListener;\nimport javax.swing.table.DefaultTableCellRenderer;\nimport javax.swing.table.TableModel;\nimport javax.swing.tree.DefaultMutableTreeNode;\n\n/**\n * table category type, displays its content in a table.\n * @author irockel\n */\npublic class TableCategory extends AbstractCategory {\n    private transient JTable filteredTable;\n    \n    /** \n     * Creates a new instance of TableCategory \n     */\n    public TableCategory(String name, int iconID) {\n        this(name, iconID, true);\n    }\n\n    /** \n     * Creates a new instance of TableCategory \n     */\n    public TableCategory(String name, int iconID, boolean filtering) {\n        setName(name);\n        setFilterEnabled(filtering);\n        setIconID(iconID);\n    }\n\n    /**\n     * {@inheritDoc}\n     */\n    public JComponent getCatComponent(EventListener listener) {\n        if(isFilterEnabled() && ((filteredTable == null) || (getLastUpdated() < PrefManager.get().getFiltersLastChanged()))) {\n            // first refresh filter checker with current filters\n            setFilterChecker(FilterChecker.getFilterChecker());\n            \n            // apply new filter settings.\n            DefaultMutableTreeNode filteredRootNode = filterNodes(getRootNode());\n            if(filteredRootNode != null && filteredRootNode.getChildCount() > 0) {\n                ThreadsTableModel ttm = new ThreadsTableModel(filteredRootNode);\n\n                // create table instance (filtered)\n                setupTable(ttm, listener);\n            } else {\n                // just an empty table\n                filteredTable = new JTable();\n            }\n            \n            setLastUpdated();\n        } else if (!isFilterEnabled() && ((filteredTable == null) || (getLastUpdated() < PrefManager.get().getFiltersLastChanged()))) {\n            // create unfiltered table view.\n            if(getRootNode() != null && getRootNode().getChildCount() > 0) {\n                ThreadsTableModel ttm = new ThreadsTableModel(getRootNode());\n\n                // create table instance (unfiltered)\n                setupTable(ttm, listener);\n            }\n        }\n        return(filteredTable);\n    }\n    \n    /**\n     * setup the table instance with the specified table model \n     * (either filtered or none-filtered).\n     * @param tm the table model to use.\n     * @param listener the event listener to add to the table\n     */\n    private void setupTable(TableModel tm, EventListener listener) {\n        TableSorter ts = new TableSorter(tm);\n        filteredTable = new ColoredTable(ts);\n        ts.setTableHeader(filteredTable.getTableHeader());\n        filteredTable.setSelectionModel(new ThreadsTableSelectionModel(filteredTable));\n        filteredTable.getSelectionModel().addListSelectionListener((ListSelectionListener) listener);\n\n        DefaultTableCellRenderer renderer = new DefaultTableCellRenderer();\n        renderer.setHorizontalAlignment(JLabel.RIGHT);\n\n        // currently only two different views have to be dealt with,\n        // with more the model should be subclassed.\n        if(tm.getColumnCount() > 3) {\n            filteredTable.getColumnModel().getColumn(0).setPreferredWidth(300);\n            filteredTable.getColumnModel().getColumn(1).setPreferredWidth(30);\n            filteredTable.getColumnModel().getColumn(2).setPreferredWidth(15);\n            \n            filteredTable.getColumnModel().getColumn(2).setCellRenderer(renderer);\n            filteredTable.getColumnModel().getColumn(3).setCellRenderer(renderer);\n            filteredTable.getColumnModel().getColumn(4).setCellRenderer(renderer);\n        } else {\n            filteredTable.getColumnModel().getColumn(0).setPreferredWidth(300);\n            filteredTable.getColumnModel().getColumn(1).setPreferredWidth(30);\n            filteredTable.getColumnModel().getColumn(2).setPreferredWidth(50);\n            \n            filteredTable.getColumnModel().getColumn(1).setCellRenderer(renderer);\n        }\n    }\n\n    /**\n     * get the currently selected user object.\n     * @return the selected object or null otherwise.\n     */\n    public ThreadInfo getCurrentlySelectedUserObject() {\n        return(filteredTable == null || filteredTable.getSelectedRow() < 0 ? null : (ThreadInfo) ((DefaultMutableTreeNode) getRootNode().getChildAt(filteredTable.getSelectedRow())).getUserObject());\n    }\n\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/model/ThreadDumpInfo.java",
    "content": "/*\n * ThreadDumpInfo.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: ThreadDumpInfo.java,v 1.11 2008-08-13 15:52:19 irockel Exp $\n */\npackage de.grimmfrost.tda.model;\n\nimport de.grimmfrost.tda.parser.Analyzer;\n\n/**\n * Thread Dump Information Node. It stores structural data about the thread dump\n * and provides methods for generating html information for displaying infos about\n * the thread dump.\n * \n * @author irockel\n */\npublic class ThreadDumpInfo extends AbstractInfo {\n    private int logLine;\n    private int overallThreadsWaitingWithoutLocksCount;\n    \n    private String startTime;\n    private String overview;\n    private String smrInfo;\n    private java.util.List<String> unresolvedSmrAddresses;\n    private Analyzer dumpAnalyzer;\n    \n    private Category waitingThreads;\n    private Category sleepingThreads;\n    private Category lockingThreads;\n    private Category monitors;\n    private Category monitorsWithoutLocks;\n    private Category virtualThreads;\n    private Category blockingMonitors;\n    private Category threads;\n    private Category deadlocks;\n    private HeapInfo heapInfo;\n    \n    \n    public ThreadDumpInfo(String name, int lineCount) {\n        setName(name);\n        this.logLine = lineCount;\n    }\n    \n    /**\n     * get the log line where to find the starting\n     * point of this thread dump in the log file\n     * @return starting point of thread dump in logfile, 0 if none set.\n     */\n    public int getLogLine() {\n        return logLine;\n    }\n\n    /**\n     * set the log line where to find the dump in the logfile.\n     * @param logLine\n     */\n    public void setLogLine(int logLine) {\n        this.logLine = logLine;\n    }\n    \n    /**\n     * get the approx. start time of the dump represented by this\n     * node.\n     * @return start time as string, format may differ as it is just\n     *         parsed from the log file.\n     */\n    public String getStartTime() {\n        return startTime;\n    }\n\n    /**\n     * set the start time as string, can be of any format.\n     * @param startTime the start time as string.\n     */\n    public void setStartTime(String startTime) {\n        this.startTime = startTime;\n    }\n\n    /**\n     * get the overview information of this thread dump.\n     * @return overview information.\n     */\n    public String getOverview() {\n        if(overview == null) {\n            createOverview();\n        }\n        return overview;\n    }\n\n    /**\n     * creates the overview information for this thread dump.\n     */\n    private void createOverview() {\n        int threadsCount = getThreads() == null ? 0 : getThreads().getNodeCount();\n        int monitorsCount = getMonitors() == null ? 0 : getMonitors().getNodeCount();\n        int waitingCount = getWaitingThreads() == null ? 0 : getWaitingThreads().getNodeCount();\n        int lockingCount = getLockingThreads() == null ? 0 : getLockingThreads().getNodeCount();\n        int sleepingCount = getSleepingThreads() == null ? 0 : getSleepingThreads().getNodeCount();\n        int deadlocksCount = getDeadlocks() == null ? 0 : getDeadlocks().getNodeCount();\n        int monitorsNoLockCount = getMonitorsWithoutLocks() == null ? 0 : getMonitorsWithoutLocks().getNodeCount();\n\n        String bgColor = \"#ffffff\";\n        String textColor = \"#333333\";\n        String headerColor = \"#2c3e50\";\n        String borderColor = \"#dee2e6\";\n        String chartBgColor = \"#f8f9fa\";\n        String tableAltRowColor = \"#fcfcfc\";\n        String hintBgColor = \"#fff3cd\";\n        String hintBorderColor = \"#ffeeba\";\n        String hintTextColor = \"#856404\";\n        String warningBgColor = \"#f8d7da\";\n        String warningBorderColor = \"#f5c6cb\";\n        String warningTextColor = \"#721c24\";\n\n        StringBuilder statData = new StringBuilder();\n        statData.append(\"<html><body style=\\\"background-color: \").append(bgColor).append(\"; font-family: sans-serif; margin: 20px; color: \").append(textColor).append(\";\\\">\");\n        \n        statData.append(\"<h2 style=\\\"color: \").append(headerColor).append(\"; border-bottom: 2px solid #3498db; padding-bottom: 10px;\\\">Thread Dump Overview</h2>\");\n\n        // Thread State Distribution (Visual Chart)\n        java.util.Map<String, ThreadInfo> tidMap = new java.util.HashMap<>();\n        if (threadsCount > 0) {\n            java.util.Map<String, Integer> stateDistribution = new java.util.HashMap<>();\n            Category threadsCat = getThreads();\n            for (int i = 0; i < threadsCount; i++) {\n                javax.swing.tree.DefaultMutableTreeNode node = (javax.swing.tree.DefaultMutableTreeNode) threadsCat.getNodeAt(i);\n                ThreadInfo ti = (ThreadInfo) node.getUserObject();\n                \n                // Build tid map for SMR resolution\n                String[] tokens = ti.getTokens();\n                if (tokens != null && tokens.length > 3 && tokens[3] != null && tokens[3].length() > 0) {\n                    try {\n                        String hexTid = \"0x\" + Long.toHexString(Long.parseLong(tokens[3]));\n                        // Pad to 18 chars (\"0x\" + 16 hex digits) to match SMR info format often seen\n                        while (hexTid.length() < 18) {\n                            hexTid = \"0x0\" + hexTid.substring(2);\n                        }\n                        tidMap.put(hexTid, ti);\n                    } catch (NumberFormatException nfe) {\n                        // Invalid tid format; skip this thread when building the SMR tid mapping\n                    }\n                }\n\n                String state = \"UNKNOWN\";\n                if (tokens != null) {\n                    if (tokens.length >= 7) {\n                        state = tokens.length == 3 ? tokens[2] : \"OTHER\";\n                    } else if (tokens.length == 3) {\n                        state = tokens[2];\n                    }\n                }\n                \n                if (\"UNKNOWN\".equals(state) || \"OTHER\".equals(state)) {\n                    String name = ti.getName();\n                    if (name.contains(\"state=\")) {\n                        int start = name.indexOf(\"state=\") + 6;\n                        int end = name.indexOf(' ', start);\n                        state = end > start ? name.substring(start, end) : name.substring(start);\n                    } else if (ti.getContent().contains(\"java.lang.Thread.State: \")) {\n                        String content = ti.getContent();\n                        int start = content.indexOf(\"java.lang.Thread.State: \") + 24;\n                        int end = content.indexOf('\\n', start);\n                        state = content.substring(start, end).trim();\n                        if (state.indexOf(' ') > 0) {\n                            state = state.substring(0, state.indexOf(' '));\n                        }\n                    }\n                }\n                \n                state = state.toUpperCase();\n                stateDistribution.put(state, stateDistribution.getOrDefault(state, 0) + 1);\n            }\n\n            statData.append(\"<div style=\\\"margin-bottom: 25px; padding: 15px; background-color: \").append(chartBgColor).append(\"; border-radius: 8px; border: 1px solid \").append(borderColor).append(\";\\\">\");\n            statData.append(\"<h4 style=\\\"margin-top: 0; color: \").append(textColor).append(\";\\\">Thread State Distribution (\").append(threadsCount).append(\" threads)</h4>\");\n            statData.append(\"<table width=\\\"100%\\\" cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" style=\\\"height: 30px; border: 1px solid \").append(borderColor).append(\"; border-radius: 4px; overflow: hidden;\\\"><tr>\");\n            \n            String[] commonStates = {\"RUNNABLE\", \"WAITING\", \"TIMED_WAITING\", \"BLOCKED\", \"PARKING\"};\n            String[] colors = {\"#28a745\", \"#ffc107\", \"#fd7e14\", \"#dc3545\", \"#6f42c1\"};\n            \n            int accounted = 0;\n            for (int i = 0; i < commonStates.length; i++) {\n                int count = stateDistribution.getOrDefault(commonStates[i], 0);\n                if (count > 0) {\n                    double percent = (count * 100.0) / threadsCount;\n                    statData.append(\"<td width=\\\"\").append(percent).append(\"%\\\" bgcolor=\\\"\").append(colors[i])\n                            .append(\"\\\" title=\\\"\").append(commonStates[i]).append(\": \").append(count).append(\"\\\"></td>\");\n                    accounted += count;\n                }\n            }\n            \n            int otherCount = threadsCount - accounted;\n            if (otherCount > 0) {\n                double percent = (otherCount * 100.0) / threadsCount;\n                statData.append(\"<td width=\\\"\").append(percent).append(\"%\\\" bgcolor=\\\"#6c757d\\\" title=\\\"OTHER: \").append(otherCount).append(\"\\\"></td>\");\n            }\n            statData.append(\"</tr></table>\");\n            \n            // Legend\n            statData.append(\"<div style=\\\"margin-top: 10px; font-size: 11px;\\\">\");\n            for (int i = 0; i < commonStates.length; i++) {\n                int count = stateDistribution.getOrDefault(commonStates[i], 0);\n                if (count > 0) {\n                    statData.append(\"<span style=\\\"display: inline-block; width: 10px; height: 10px; background-color: \").append(colors[i]).append(\"; margin-right: 4px;\\\"></span>\")\n                            .append(commonStates[i]).append(\" (\").append(count).append(\")&nbsp;&nbsp;&nbsp;\");\n                }\n            }\n            if (otherCount > 0) {\n                statData.append(\"<span style=\\\"display: inline-block; width: 10px; height: 10px; background-color: #6c757d; margin-right: 4px;\\\"></span>\")\n                        .append(\"OTHER (\").append(otherCount).append(\")\");\n            }\n            statData.append(\"</div></div>\");\n        }\n\n        // Statistics Table\n        statData.append(\"<table width=\\\"100%\\\" style=\\\"border-collapse: collapse; margin-bottom: 20px;\\\">\");\n        \n        statData.append(\"<tr>\");\n        statData.append(\"<td width=\\\"50%\\\" style=\\\"padding: 8px; border-bottom: 1px solid \").append(borderColor).append(\"; background-color: \").append(tableAltRowColor).append(\";\\\"><b>Overall Monitor Count:</b> \").append(monitorsCount).append(\"</td>\");\n        statData.append(\"<td width=\\\"50%\\\" style=\\\"padding: 8px; border-bottom: 1px solid \").append(borderColor).append(\"; background-color: \").append(tableAltRowColor).append(\";\\\"><b>Deadlocks:</b> <span style=\\\"\").append(deadlocksCount > 0 ? \"color: #dc3545; font-weight: bold;\" : \"\").append(\"\\\">\").append(deadlocksCount).append(\"</span></td>\");\n        statData.append(\"</tr>\");\n        \n        if (getSmrInfo() != null) {\n            unresolvedSmrAddresses = new java.util.ArrayList<>();\n            statData.append(\"<tr>\");\n            statData.append(\"<td colspan=\\\"2\\\" style=\\\"padding: 8px; border-bottom: 1px solid \").append(borderColor).append(\";\\\"><b>Threads class SMR (Safe Memory Reclamation) info:</b><br>\");\n            \n            // Format SMR info as table\n            String smr = getSmrInfo();\n            java.util.List<String> addresses = new java.util.ArrayList<>();\n            java.util.regex.Pattern p = java.util.regex.Pattern.compile(\"0x[0-9a-fA-F]+\");\n            java.util.regex.Matcher m = p.matcher(smr);\n            while (m.find()) {\n                String addr = m.group().toLowerCase();\n                if (!smr.contains(\"_java_thread_list=\" + addr)) {\n                    addresses.add(addr);\n                }\n            }\n            \n            statData.append(\"<table style=\\\"margin: 10px 0; border-collapse: collapse; font-size: 11px; width: 100%;\\\">\");\n            statData.append(\"<tr style=\\\"background-color: \").append(chartBgColor).append(\";\\\">\");\n            statData.append(\"<th style=\\\"padding: 5px; border: 1px solid \").append(borderColor).append(\"; text-align: left;\\\">Address</th>\");\n            statData.append(\"<th style=\\\"padding: 5px; border: 1px solid \").append(borderColor).append(\"; text-align: left;\\\">Resolved Thread</th>\");\n            statData.append(\"</tr>\");\n            \n            boolean hasUnresolved = false;\n            for (String addr : addresses) {\n                statData.append(\"<tr>\");\n                statData.append(\"<td style=\\\"padding: 5px; border: 1px solid \").append(borderColor).append(\";\\\">\").append(addr).append(\"</td>\");\n                \n                ThreadInfo resolved = tidMap.get(addr);\n                if (resolved != null) {\n                    statData.append(\"<td style=\\\"padding: 5px; border: 1px solid \").append(borderColor).append(\";\\\">\").append(resolved.getName()).append(\"</td>\");\n                } else {\n                    statData.append(\"<td style=\\\"padding: 5px; border: 1px solid \").append(borderColor).append(\"; color: #dc3545; font-weight: bold;\\\">NOT FOUND</td>\");\n                    hasUnresolved = true;\n                    unresolvedSmrAddresses.add(addr);\n                }\n                statData.append(\"</tr>\");\n            }\n            statData.append(\"</table>\");\n            \n            if (hasUnresolved) {\n                statData.append(\"<div style=\\\"padding: 10px; background-color: \").append(warningBgColor)\n                        .append(\"; border: 1px solid \").append(warningBorderColor)\n                        .append(\"; color: \").append(warningTextColor)\n                        .append(\"; border-radius: 4px; margin-top: 10px; font-size: 12px;\\\">\")\n                        .append(\"<b>Warning:</b> Some SMR addresses could not be resolved to threads. This might indicate issues with properly removing threads from the JVM's internal thread list.\")\n                        .append(\"</div>\");\n            }\n\n            statData.append(\"</tr>\");\n        }\n        \n        statData.append(\"<tr>\");\n        statData.append(\"<td style=\\\"padding: 8px; border-bottom: 1px solid \").append(borderColor).append(\";\\\"><b>Threads locking:</b> \").append(lockingCount).append(\"</td>\");\n        statData.append(\"<td style=\\\"padding: 8px; border-bottom: 1px solid \").append(borderColor).append(\";\\\"><b>Monitors without locking:</b> \").append(monitorsNoLockCount).append(\"</td>\");\n        statData.append(\"</tr>\");\n\n        statData.append(\"<tr>\");\n        statData.append(\"<td style=\\\"padding: 8px; border-bottom: 1px solid \").append(borderColor).append(\"; background-color: \").append(tableAltRowColor).append(\";\\\"><b>Threads waiting:</b> \").append(waitingCount).append(\"</td>\");\n        statData.append(\"<td style=\\\"padding: 8px; border-bottom: 1px solid \").append(borderColor).append(\"; background-color: \").append(tableAltRowColor).append(\";\\\"><b>Threads sleeping:</b> \").append(sleepingCount).append(\"</td>\");\n        statData.append(\"</tr>\");\n        \n        statData.append(\"</table>\");\n\n        // Hints and Heap Info\n        String hints = getDumpAnalyzer().analyzeDump();\n        if (hints != null && !hints.isEmpty()) {\n            statData.append(\"<div style=\\\"margin-top: 20px; padding: 15px; background-color: \").append(hintBgColor).append(\"; border: 1px solid \").append(hintBorderColor).append(\"; border-radius: 8px; color: \").append(hintTextColor).append(\";\\\">\");\n            statData.append(\"<h4 style=\\\"margin-top: 0;\\\">Analysis Hints</h4>\");\n            statData.append(\"<table border=\\\"0\\\" width=\\\"100%\\\" style=\\\"color: \").append(hintTextColor).append(\";\\\">\").append(hints).append(\"</table>\");\n            statData.append(\"</div>\");\n        }\n        \n        if (getHeapInfo() != null) {\n            statData.append(\"<div style=\\\"margin-top: 20px; padding: 15px; background-color: #e2e3e5; border: 1px solid \").append(borderColor).append(\"; border-radius: 8px;\\\">\");\n            statData.append(\"<h4 style=\\\"margin-top: 0;\\\">Heap Information</h4>\");\n            statData.append(getHeapInfo());\n            statData.append(\"</div>\");\n        }\n\n        statData.append(\"</body></html>\");\n\n        setOverview(statData.toString());\n    }\n\n    \n    /**\n     * generate a monitor info node from the given information.\n     * @param locks how many locks are on this monitor?\n     * @param waits how many threads are waiting for this monitor?\n     * @param sleeps how many threads have a lock on this monitor and are sleeping?\n     * @return a info node for the monitor.\n     */\n    public static String getMonitorInfo(int locks, int waits, int sleeps ) {\n        String bgColor = \"#ffffff\";\n        String textColor = \"#333333\";\n        String tableBgColor = \"#f8f9fa\";\n        String borderColor = \"#dee2e6\";\n        String altRowColor = \"#f2f2f2\";\n        String alertBgColor = \"#f8d7da\";\n        String alertBorderColor = \"#dc3545\";\n        String alertTextColor = \"#721c24\";\n        String noticeBgColor = \"#e9ecef\";\n        String noticeBorderColor = \"#6c757d\";\n\n        StringBuilder statData = new StringBuilder();\n        statData.append(\"<html><body style=\\\"background-color: \").append(bgColor).append(\"; font-family: sans-serif; margin: 10px; color: \").append(textColor).append(\";\\\">\");\n        statData.append(\"<table width=\\\"100%\\\" style=\\\"border-collapse: collapse; background-color: \").append(tableBgColor).append(\"; border: 1px solid \").append(borderColor).append(\";\\\">\");\n        \n        addMonitorStatRow(statData, \"Threads locking monitor\", locks, bgColor);\n        addMonitorStatRow(statData, \"Threads sleeping on monitor\", sleeps, altRowColor);\n        addMonitorStatRow(statData, \"Threads waiting to lock monitor\", waits, bgColor);\n        \n        statData.append(\"</table>\");\n\n        if (locks == 0) {\n            statData.append(\"<div style=\\\"margin-top: 15px; padding: 10px; background-color: \").append(noticeBgColor).append(\"; border-left: 5px solid \").append(noticeBorderColor).append(\"; font-size: 12px;\\\">\");\n            statData.append(\"<p><b>No locking thread detected.</b> Possible reasons:</p>\");\n            statData.append(\"<ul><li>A VM Thread is holding it.</li>\");\n            statData.append(\"<li>It is a <tt>java.util.concurrent</tt> lock and -XX:+PrintConcurrentLocks is missing.</li>\");\n            statData.append(\"<li>It is a custom lock not based on <tt>AbstractOwnableSynchronizer</tt>.</li></ul>\");\n            statData.append(\"<p>If many monitors have no locking thread, the garbage collector might be running.</p>\");\n            statData.append(\"<p>Check the <a href=\\\"dump://\\\">dump node</a> for more info.</p>\");\n            statData.append(\"</div>\");\n        }\n        \n        if (areALotOfWaiting(waits)) {\n            statData.append(\"<div style=\\\"margin-top: 15px; padding: 10px; background-color: \").append(alertBgColor).append(\"; border-left: 5px solid \").append(alertBorderColor).append(\"; color: \").append(alertTextColor).append(\"; font-size: 12px;\\\">\");\n            statData.append(\"<p><b>High congestion!</b> A lot of threads are waiting for this monitor.</p>\");\n            statData.append(\"<p>Analyze other blocked locks as well, as there might be a chain of waiting threads.</p>\");\n            statData.append(\"</div>\");\n        }\n        \n        statData.append(\"</body></html>\");\n\n        return statData.toString();\n    }\n\n    private static void addMonitorStatRow(StringBuilder sb, String label, int value, String bgColor) {\n        sb.append(\"<tr style=\\\"background-color: \").append(bgColor).append(\";\\\">\");\n        sb.append(\"<td style=\\\"padding: 8px; border-bottom: 1px solid #dee2e6;\\\">\").append(label).append(\"</td>\");\n        sb.append(\"<td style=\\\"padding: 8px; border-bottom: 1px solid #dee2e6; text-align: right;\\\"><b>\").append(value).append(\"</b></td>\");\n        sb.append(\"</tr>\");\n    }\n    \n    /**\n     * checks if a lot of threads are waiting\n     * @param waits the wait to check\n     * @return true if a lot of threads are waiting.\n     */\n    public static boolean areALotOfWaiting(int waits) {\n        return(waits > 5);\n    }\n    \n    /**\n     * set the overview information of this thread dump.\n     * @param overview the infos to be displayed (in html)\n     */\n    public void setOverview(String overview) {\n        this.overview = overview;\n    }\n\n    public Category getWaitingThreads() {\n        return waitingThreads;\n    }\n\n    public void setWaitingThreads(Category waitingThreads) {\n        this.waitingThreads = waitingThreads;\n    }\n\n    public Category getSleepingThreads() {\n        return sleepingThreads;\n    }\n\n    public void setSleepingThreads(Category sleepingThreads) {\n        this.sleepingThreads = sleepingThreads;\n    }\n\n    public Category getLockingThreads() {\n        return lockingThreads;\n    }\n\n    public void setLockingThreads(Category lockingThreads) {\n        this.lockingThreads = lockingThreads;\n    }\n\n    public Category getMonitors() {\n        return monitors;\n    }\n\n    public void setMonitors(Category monitors) {\n        this.monitors = monitors;\n    }\n\n    public Category getVirtualThreads() {\n        return virtualThreads;\n    }\n\n    public void setVirtualThreads(Category virtualThreads) {\n        this.virtualThreads = virtualThreads;\n    }\n\n    public Category getBlockingMonitors() {\n      return blockingMonitors;\n    }\n\n    public void setBlockingMonitors(Category blockingMonitors) {\n      this.blockingMonitors = blockingMonitors;\n    }\n\n    public Category getMonitorsWithoutLocks() {\n        return monitorsWithoutLocks;\n    }\n\n    public void setMonitorsWithoutLocks(Category monitorsWithoutLocks) {\n        this.monitorsWithoutLocks = monitorsWithoutLocks;\n    }\n    \n    public Category getThreads() {\n        return threads;\n    }\n\n    public void setThreads(Category threads) {\n        this.threads = threads;\n    }\n\n    public Category getDeadlocks() {\n        return deadlocks;\n    }\n\n    public void setDeadlocks(Category deadlocks) {\n        this.deadlocks = deadlocks;\n    }\n\n    private Analyzer getDumpAnalyzer() {\n        if(dumpAnalyzer == null) {\n            setDumpAnalyzer(new Analyzer(this));\n        }\n        return dumpAnalyzer;\n    }\n\n    private void setDumpAnalyzer(Analyzer dumpAnalyzer) {\n        this.dumpAnalyzer = dumpAnalyzer;\n    }\n    \n    public int getOverallThreadsWaitingWithoutLocksCount() {\n        return overallThreadsWaitingWithoutLocksCount;\n    }\n\n    public void setOverallThreadsWaitingWithoutLocksCount(int overallThreadsWaitingWithoutLocksCount) {\n        this.overallThreadsWaitingWithoutLocksCount = overallThreadsWaitingWithoutLocksCount;\n    }\n    \n    /**\n     * add given category to the custom category.\n     * @param cat\n     */\n    public void addToCustomCategories(Category cat) {\n        \n    }\n\n    /**\n     * get the set heap info\n     * @return the set heap info object (only available if the thread\n     *         dump is from Sun JDK 1.6 so far.\n     */\n    public HeapInfo getHeapInfo() {\n        return(heapInfo);\n    }\n\n    /**\n     * set the heap information for this thread dump.\n     * @param value the heap information as string.\n     */\n    public void setHeapInfo(HeapInfo value) {\n        heapInfo = value;\n    }\n\n    /**\n     * get the SMR info of this thread dump.\n     * @return SMR info.\n     */\n    public String getSmrInfo() {\n        return smrInfo;\n    }\n\n    /**\n     * set the SMR info of this thread dump.\n     * @param smrInfo the SMR info.\n     */\n    public void setSmrInfo(String smrInfo) {\n        this.smrInfo = smrInfo;\n    }\n\n    /**\n     * get the unresolved SMR addresses found in this thread dump.\n     * @return list of unresolved SMR addresses.\n     */\n    public java.util.List<String> getUnresolvedSmrAddresses() {\n        if (overview == null) {\n            createOverview();\n        }\n        return unresolvedSmrAddresses;\n    }\n\n    /**\n     * string representation of this node, is used to displayed the node info\n     * in the tree.\n     * @return the thread dump information (one line).\n     */\n    public String toString() {\n        StringBuffer postFix = new StringBuffer();\n        if(logLine > 0) {\n            postFix.append(\" at line \" + getLogLine());\n        }\n        if(startTime != null) {\n            postFix.append(\" around \" + startTime);\n        }\n        return(getName() +  postFix);\n    }\n    \n\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/model/ThreadInfo.java",
    "content": "/*\n * ThreadDumpInfo.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: ThreadInfo.java,v 1.9 2008-03-13 21:16:08 irockel Exp $\n */\n\npackage de.grimmfrost.tda.model;\n\n/**\n * Info (name, content tuple) for thread dump display tree.\n *\n * @author irockel\n */\npublic class ThreadInfo extends AbstractInfo {\n    private String content;\n    private String info;\n    private int stackLines;\n    private String[] tokens;\n    private boolean aLotOfWaiting;\n    private int childCount;\n    \n    public ThreadInfo(String name, String info, String content, int stackLines, String[] tableTokens) {\n        setName(name);\n        this.info = info;\n        this.content = content;\n        this.stackLines = stackLines;\n        tokens = tableTokens;\n    }\n    \n    public String toString() {\n        return getName();\n    }\n\n    public String getContent() {\n        return content;\n    }\n\n    public void setContent(String content) {\n        this.content = content;\n    }\n\n    public String getInfo() {\n        return info;\n    }\n\n    public void setInfo(String info) {\n        this.info = info;\n    }\n\n    public int getStackLines() {\n        return stackLines;\n    }\n\n    public void setStackLines(int stackLines) {\n        this.stackLines = stackLines;\n    }\n    \n    public String[] getTokens() {\n        return(tokens);\n    }\n\n    public void setALotOfWaiting(boolean b) {\n        aLotOfWaiting = b;\n    }\n    \n    public boolean areALotOfWaiting() {\n        return(aLotOfWaiting);\n    }\n\n    public void setChildCount(int childCount) {\n      this.childCount = childCount;\n    }\n\n    public int getChildCount() {\n      return childCount;\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/model/TreeCategory.java",
    "content": "/*\n * TreeCategory.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * Foobar is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * Foobar is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with Foobar; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: TreeCategory.java,v 1.2 2008-01-07 14:55:06 irockel Exp $\n */\n\npackage de.grimmfrost.tda.model;\n\nimport de.grimmfrost.tda.filter.FilterChecker;\nimport de.grimmfrost.tda.utils.PrefManager;\nimport de.grimmfrost.tda.utils.TreeRenderer;\nimport java.io.Serializable;\nimport java.util.Comparator;\nimport java.util.EventListener;\nimport javax.swing.JComponent;\nimport javax.swing.JTree;\nimport javax.swing.event.TreeSelectionListener;\nimport javax.swing.tree.DefaultMutableTreeNode;\n\n/**\n * This class represent a category node.\n *\n * @author irockel\n */\npublic class TreeCategory extends AbstractCategory implements Serializable {\n    private transient JTree filteredCatTree;\n    \n    /** \n     * Creates a new instance of TreeCategory \n     */\n    public TreeCategory(String name, int iconID) {\n        this(name, iconID, true);\n    }\n\n    /** \n     * Creates a new instance of TreeCategory \n     */\n    public TreeCategory(String name, int iconID, boolean filtering) {\n        setName(name);\n        setFilterEnabled(filtering);\n        setIconID(iconID);\n    }\n    \n    /**\n     * return category tree with filtered child nodes\n     */\n    public JComponent getCatComponent(EventListener listener) {\n        if(isFilterEnabled() && ((filteredCatTree == null) || (getLastUpdated() < PrefManager.get().getFiltersLastChanged()))) {\n            // first refresh filter checker with current filters\n            setFilterChecker(FilterChecker.getFilterChecker());\n            \n            // apply new filter settings.\n            filteredCatTree = new JTree(filterNodes(getRootNode()));\n            if(getName().startsWith(\"Monitors\") || getName().startsWith(\"Threads blocked by Monitors\")) {\n                filteredCatTree.setShowsRootHandles(true);\n            }\n            filteredCatTree.setCellRenderer(new TreeRenderer());\n            filteredCatTree.setRootVisible(false);\n            filteredCatTree.addTreeSelectionListener((TreeSelectionListener) listener);\n            setLastUpdated();\n        } else if (!isFilterEnabled() && (filteredCatTree == null) || (getLastUpdated() < PrefManager.get().getFiltersLastChanged())) {\n            filteredCatTree = new JTree(getRootNode());\n            if(getName().startsWith(\"Monitors\") || getName().startsWith(\"Threads blocked by Monitors\")) {\n                filteredCatTree.setShowsRootHandles(true);\n            }\n            filteredCatTree.setCellRenderer(new TreeRenderer());\n            filteredCatTree.setRootVisible(false);\n            filteredCatTree.addTreeSelectionListener((TreeSelectionListener) listener);\n        }\n        return(filteredCatTree);\n    }\n    \n    /**\n     * get the currently selected user object. \n     * @return the currently selected user object, null if nothing is selected.\n     */\n    public ThreadInfo getCurrentlySelectedUserObject() {\n        return(getFilteredCatTree() == null || getFilteredCatTree().getSelectionPath() == null ? null : \n            (ThreadInfo) ((DefaultMutableTreeNode) ((JTree) getFilteredCatTree()).getSelectionPath().getLastPathComponent()).getUserObject());\n    }\n    \n    private JTree getFilteredCatTree() {\n        return filteredCatTree;\n    }\n\n    private void setFilteredCatTree(JTree filteredCatTree) {\n        this.filteredCatTree = filteredCatTree;\n    }\n    \n    /**\n     * {@inheritDoc}\n     */\n    public void sort(Comparator nodeComp) {\n        super.sort(nodeComp);\n        setFilteredCatTree(null);\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/parser/AbstractDumpParser.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n */\npackage de.grimmfrost.tda.parser;\n\nimport de.grimmfrost.tda.TDA;\nimport de.grimmfrost.tda.filter.Filter;\nimport de.grimmfrost.tda.model.*;\nimport de.grimmfrost.tda.utils.DateMatcher;\nimport de.grimmfrost.tda.utils.IconFactory;\nimport de.grimmfrost.tda.utils.PrefManager;\nimport java.io.BufferedReader;\nimport java.io.IOException;\nimport java.util.Iterator;\nimport java.util.Map;\nimport java.util.Vector;\nimport javax.swing.ListModel;\nimport javax.swing.tree.DefaultMutableTreeNode;\nimport javax.swing.tree.TreePath;\n\n/**\n * Abstract dump parser class, contains all generic dump parser\n * stuff, which doesn't have any jdk specific parsing code.\n * \n * All Dump Parser should extend from this class as it already provides\n * a basic parsing interface.\n * \n * @author irockel\n */\npublic abstract class AbstractDumpParser implements DumpParser {\n    private BufferedReader bis = null;\n    \n    private int markSize = 16384;\n    private int maxCheckLines = 10;\n    private boolean millisTimeStamp = false;\n    private DateMatcher dm = null;\n    \n\n    protected AbstractDumpParser(BufferedReader bis, DateMatcher dm) {\n        maxCheckLines = PrefManager.get().getMaxRows();\n        markSize = PrefManager.get().getStreamResetBuffer();   \n        millisTimeStamp = PrefManager.get().getMillisTimeStamp();\n        setBis(bis);\n        setDm(dm);\n    }\n    \n    /**\n     * strip the dump string from a given path\n     * @param path the treepath to check\n     * @return dump string, if proper tree path, null otherwise.\n     */\n    protected String getDumpStringFromTreePath(TreePath path) {\n        String[] elems = path.toString().split(\",\");\n        if (elems.length > 1) {\n            return (elems[elems.length-1].substring(0, elems[elems.length-1].lastIndexOf(']')).trim());\n        } else {\n            return null;\n        }\n    }\n    \n    /**\n     * find long running threads.\n     * @param root the root node to use for the result.\n     * @param dumpStore the dump store to use\n     * @param paths paths to the dumps to check\n     * @param minOccurence the min occurrence of a long running thread\n     * @param regex regex to be applied to the thread titles.\n     */\n    public void findLongRunningThreads(DefaultMutableTreeNode root, Map dumpStore, TreePath[] paths, int minOccurence, String regex) {\n        diffDumps(\"Long running thread detection\", root, dumpStore, paths, minOccurence, regex);\n    }\n    \n    /**\n     * merge the given dumps.\n     * @param root the root node to use for the result.\n     * @param dumpStore the dump store tu use\n     * @param dumps paths to the dumps to check\n     * @param minOccurence the min occurrence of a long running thread\n     * @param regex regex to be applied to the thread titles.\n     */\n    public void mergeDumps(DefaultMutableTreeNode root, Map dumpStore, TreePath[] dumps, int minOccurence, String regex) {\n        diffDumps(\"Merge\", root, dumpStore, dumps, minOccurence, regex);\n    }\n    \n    protected void diffDumps(String prefix, DefaultMutableTreeNode root, Map dumpStore, TreePath[] dumps, int minOccurence, String regex) {\n        Vector keys = new Vector(dumps.length);        \n        \n        for(int i = 0; i < dumps.length; i++) {\n            String dumpName = getDumpStringFromTreePath(dumps[i]);\n            if(dumpName.indexOf(\" at\") > 0) {\n                dumpName = dumpName.substring(0, dumpName.indexOf(\" at\"));\n            } else if(dumpName.indexOf(\" around\") > 0) {\n                dumpName = dumpName.substring(0, dumpName.indexOf(\" around\"));\n            }\n            keys.add(dumpName);\n        }\n           \n        String info = prefix + \" between \" + keys.get(0) + \" and \" + keys.get(keys.size()-1); \n        DefaultMutableTreeNode catMerge = new DefaultMutableTreeNode(new TableCategory(info, IconFactory.DIFF_DUMPS));\n        root.add(catMerge);\n        int threadCount = 0;\n        \n        if(dumpStore.get(keys.get(0)) != null) {\n            Iterator dumpIter = ((Map) dumpStore.get(keys.get(0))).keySet().iterator();\n            \n            while(dumpIter.hasNext()) {\n                String threadKey = (String) dumpIter.next();\n                int occurence = 1; \n                \n                if(regex == null || regex.equals(\"\") || threadKey.matches(regex)) {\n                    for(int i = 1; i < dumps.length; i++) {\n                        Map threads = (Map) dumpStore.get(keys.get(i));\n                        if(threads != null && threads.containsKey(threadKey)) {\n                            String content1 = (String) ((Map) dumpStore.get(keys.get(0))).get(threadKey);\n                            String content2 = (String) threads.get(threadKey);\n                            if (content1 != null && content2 != null && content1.equals(content2)) {\n                                occurence++;\n                            }\n                        }\n                    }\n                \n                    if(occurence >= minOccurence) {\n                        threadCount++;\n                        StringBuffer content = new StringBuffer(\"<body bgcolor=\\\"ffffff\\\"><b><font size=\").append(TDA.getFontSizeModifier(-1)).\n                                append(\">\").append((String) keys.get(0)).append(\"</b></font><hr><pre><font size=\").\n                                append(TDA.getFontSizeModifier(-1)).append(\">\").\n                                append(fixMonitorLinks((String) ((Map) dumpStore.get(keys.get(0))).get(threadKey), (String) keys.get(0)));\n\n                        int maxLines = 0;\n                        for(int i = 1; i < dumps.length; i++) {\n                            if(((Map)dumpStore.get(keys.get(i))).containsKey(threadKey)) {\n                                content.append(\"\\n\\n</pre><b><font size=\");\n                                content.append(TDA.getFontSizeModifier(-1));\n                                content.append(\">\");\n                                content.append(keys.get(i));\n                                content.append(\"</font></b><hr><pre><font size=\");\n                                content.append(TDA.getFontSizeModifier(-1));\n                                content.append(\">\");\n                                content.append(fixMonitorLinks((String) ((Map)dumpStore.get(keys.get(i))).get(threadKey), (String) keys.get(i)));\n                                int countLines = countLines(((String) ((Map)dumpStore.get(keys.get(i))).get(threadKey)));\n                                maxLines = maxLines > countLines ? maxLines : countLines;\n                            }\n                        }\n                        addToCategory(catMerge, threadKey, null, content.toString(), maxLines, true);\n                    }\n                }\n            }\n        }\n        \n        ((Category) catMerge.getUserObject()).setInfo(getStatInfo(keys, prefix, minOccurence, threadCount));\n        \n    }\n\n    /**\n     * count lines of input string.\n     * @param input\n     * @return line count\n     */\n    private int countLines(String input) {\n        int pos = 0;\n        int count = 0;\n        while(input.indexOf('\\n', pos) > 0) {\n            count++;\n            pos = input.indexOf('\\n', pos) +1;\n        }\n\n        return(count);\n    }\n    \n    /**\n     * generate statistical information concerning the merge on long running thread detection.\n     * @param keys the dump node keys\n     * @param prefix the prefix of the run (either \"Merge\" or \"Long running threads detection\"\n     * @param minOccurence the minimum occurence of threads\n     * @param threadCount the overall thread count of this run.\n     * @return\n     */\n    private String getStatInfo(Vector keys, String prefix, int minOccurence, int threadCount) {\n        StringBuffer statData = new StringBuffer(\"<body bgcolor=\\\"#ffffff\\\"><font face=System><b><font face=System> \"); \n        \n        statData.append(\"<b>\" + prefix + \"</b><hr><p><i>\");\n        for(int i = 0; i < keys.size(); i++) {\n            statData.append(keys.get(i));\n            if(i < keys.size() -1) {\n                statData.append(\", \");\n            }\n        }\n        statData.append(\"</i></p><br>\" +\n                \"<table border=0><tr bgcolor=\\\"#dddddd\\\"><td><font face=System \" +\n                \">Overall Thread Count</td><td width=\\\"150\\\"></td><td><b><font face=System>\");\n        statData.append(threadCount);\n        statData.append(\"</b></td></tr>\");\n        statData.append(\"<tr bgcolor=\\\"#eeeeee\\\"><td><font face=System \" +\n                \">Minimum Occurence of threads</td><td width=\\\"150\\\"></td><td><b><font face=System>\");\n        statData.append(minOccurence);\n        statData.append(\"</b></td></tr>\");\n        \n        if(threadCount == 0) {\n            statData.append(\"<tr bgcolor=\\\"#ffffff\\\"<td></td></tr>\");\n            statData.append(\"<tr bgcolor=\\\"#cccccc\\\"><td colspan=2><font face=System \" +\n                    \"><p>No threads were found which occured at least \" + minOccurence + \" times.<br>\" +\n                    \"You should check your dumps for long running threads \" +\n                    \"or adjust the minimum occurence.</p>\");\n        }\n                \n        statData.append(\"</table>\");\n        \n        return statData.toString();\n    }\n    \n    /**\n     * fix the monitor links for proper navigation to the monitor in the right dump.\n     * @param fixString the string to fix\n     * @param dumpName the dump name to reference\n     * @return the fixed string.\n     */\n    private String fixMonitorLinks(String fixString, String dumpName) {\n        if(fixString.indexOf(\"monitor://\") > 0) {\n           fixString = fixString.replaceAll(\"monitor://\", \"monitor:/\" + dumpName + \"/\");\n        }\n        return(fixString);\n    }\n    \n    /**\n     * create a tree node with the provided information\n     * @param top the parent node the new node should be added to.\n     * @param title the title of the new node\n     * @param info the info part of the new node\n     * @param content the content part of the new node\n     * @see ThreadInfo \n     */\n    protected void createNode(DefaultMutableTreeNode top, String title, String info, String content, int lineCount) {\n        DefaultMutableTreeNode threadInfo = null;\n        threadInfo = new DefaultMutableTreeNode(new ThreadInfo(title, info, content, lineCount, getThreadTokens(title)));\n        top.add(threadInfo);\n    }\n    \n    /**\n     * create a category entry for a category (categories are \"Monitors\", \"Threads waiting\", e.g.). A ThreadInfo\n     * instance will be created with the passed information.\n     * @param category the category the node should be added to.\n     * @param title the title of the new node\n     * @param info the info part of the new node\n     * @param content the content part of the new node\n     * @param lineCount the line count of the thread stack, 0 if not applicable for this element.\n     * @see ThreadInfo \n     */\n    protected void addToCategory(DefaultMutableTreeNode category, String title, StringBuffer info, String content, int lineCount,\n            boolean parseTokens) {\n        ThreadInfo ti = new ThreadInfo(title, info != null ? info.toString() : null, content, lineCount, \n                parseTokens ? getThreadTokens(title) : null);\n        Category cat = (Category) category.getUserObject();\n        cat.addToCatNodes(new DefaultMutableTreeNode(ti));\n        if (!(cat instanceof TableCategory)) {\n            category.add(new DefaultMutableTreeNode(ti));\n        }\n    }\n\n    /**\n     * get the stream to parse\n     * @return stream or null if none is set up\n     */\n    protected BufferedReader getBis() {\n        return bis;\n    }\n\n    /**\n     * parse the thread tokens for table display.\n     * @param title\n     */\n    protected abstract String[] getThreadTokens(String title);\n\n    /**\n     * set the stream to parse\n     * @param bis the stream\n     */\n    protected void setBis(BufferedReader bis) {\n        this.bis = bis;\n    }\n    \n    /**\n     * this counter counts backwards for adding class histograms to the thread dumpss\n     * beginning with the last dump.\n     */\n    private int dumpHistogramCounter = -1;\n    \n    /**\n     * set the dump histogram counter to the specified value to force to start (bottom to top)\n     * from the specified thread dump.\n     */\n    public void setDumpHistogramCounter(int value) {\n        dumpHistogramCounter = value;\n    }\n    \n        \n    /**\n     * copy the given node and all its children.\n     * @param node the node to copy\n     * @return a copy of the node\n     */\n    protected DefaultMutableTreeNode copyNode(DefaultMutableTreeNode node) {\n        DefaultMutableTreeNode copy = new DefaultMutableTreeNode(node.getUserObject());\n        for (int i = 0; i < node.getChildCount(); i++) {\n            copy.add(copyNode((DefaultMutableTreeNode) node.getChildAt(i)));\n        }\n        return copy;\n    }\n\n    /**\n     * retrieve the next node for adding histogram information into the tree.\n     * @param root the root to use for search.\n     * @return node to use for append.\n     */\n    protected DefaultMutableTreeNode getNextDumpForHistogram(DefaultMutableTreeNode root) {\n        if(dumpHistogramCounter == -1) {\n            // -1 as index starts with 0.\n            dumpHistogramCounter = root.getChildCount()-1;\n        }\n        DefaultMutableTreeNode result = null;\n        \n        if(dumpHistogramCounter > 0) {\n            result = (DefaultMutableTreeNode) root.getChildAt(dumpHistogramCounter);\n            dumpHistogramCounter--;\n        }\n        \n        return result;\n    }\n    \n    /**\n     * close this dump parser, also closes the passed dump stream\n     */\n    public void close() throws IOException {\n        if(getBis() != null) {\n            getBis().close();\n        }        \n    }\n\n    /**\n     * get the maximum size for the mark buffer while reading \n     * the log file stream.\n     * @return size, default is 16KB.\n     */\n    protected int getMarkSize() {\n        return markSize;\n    }\n\n    /**\n     * set the maximum mark size.\n     * @param markSize the size to use, default is 16KB.\n     */\n    protected void setMarkSize(int markSize) {\n        this.markSize = markSize;\n    }\n\n    /**\n     * specifies the maximum amounts of lines to check if the dump is followed\n     * by a class histogram or a deadlock.\n     * @return the amount of lines to check, defaults to 10.\n     */\n    protected int getMaxCheckLines() {\n        return maxCheckLines;\n    }\n\n    public void setMaxCheckLines(int maxCheckLines) {\n        this.maxCheckLines = maxCheckLines;\n    }\n\n    /**\n     * @return true, if the time stamp is in milliseconds.\n     */\n    public boolean isMillisTimeStamp() {\n        return millisTimeStamp;\n    }\n\n    public void setMillisTimeStamp(boolean millisTimeStamp) {\n        this.millisTimeStamp = millisTimeStamp;\n    }\n\n    public DateMatcher getDm() {\n        return dm;\n    }\n\n    public void setDm(DateMatcher dm) {\n        this.dm = dm;\n    }\n    \n    /**\n     * check threads in given thread dump and add appropriate \n     * custom categories (if any defined).\n     * @param threadDump the thread dump info object.\n     */\n    public void addCustomCategories(DefaultMutableTreeNode threadDump) {\n        ThreadDumpInfo tdi = (ThreadDumpInfo) threadDump.getUserObject();\n        Category threads = tdi.getThreads();\n        ListModel cats = PrefManager.get().getCategories();\n        for(int i = 0; i < cats.getSize(); i++) {\n            Category cat = new TableCategory(((CustomCategory) cats.getElementAt(i)).getName(), IconFactory.CUSTOM_CATEGORY);\n            for(int j = 0; j < threads.getNodeCount(); j++) {\n                Iterator filterIter = ((CustomCategory) cats.getElementAt(i)).iterOfFilters();\n                boolean matches = true;\n                ThreadInfo ti = (ThreadInfo) threads.getNodeAt(j).getUserObject();\n                while (matches && filterIter.hasNext()) {\n                    Filter filter = (Filter) filterIter.next();\n                    matches = filter.matches(ti, true);\n                }\n                \n                if(matches) {\n                    cat.addToCatNodes(new DefaultMutableTreeNode(ti));\n                }\n            }\n            if(cat.getNodeCount() > 0) {\n                cat.setName(cat.getName() + \" (\" + cat.getNodeCount() + \" Threads overall)\");\n                threadDump.add(new DefaultMutableTreeNode(cat));\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/parser/Analyzer.java",
    "content": "/*\n * Analyzer.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * Foobar is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * Foobar is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with Foobar; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: Analyzer.java,v 1.3 2008-01-28 09:29:34 irockel Exp $\n */\n\npackage de.grimmfrost.tda.parser;\n\nimport de.grimmfrost.tda.model.Category;\nimport de.grimmfrost.tda.model.ThreadDumpInfo;\nimport de.grimmfrost.tda.model.ThreadInfo;\n\nimport java.io.Serializable;\n\n/**\n * analyze the given thread dump.\n * \n * @author irockel\n */\npublic class Analyzer implements Serializable {\n    ThreadDumpInfo tdi;\n    \n    /**\n     * generate a dump analyzer for the given thread dump.\n     * @param tdi the thread dump to analyze.\n     */\n    public Analyzer(ThreadDumpInfo tdi) {\n        this.tdi = tdi;\n    }\n    \n    /**\n     * analyze the given data and generate htmlified hints\n     * @return html-text containing hints, empty strings if no hints can\n     *         be given.\n     */\n    public String analyzeDump() {\n        // check for possible hot spots concerning this thread dump\n        \n        StringBuffer statData = new StringBuffer();\n        int deadlocks = tdi.getDeadlocks() == null ? 0 : tdi.getDeadlocks().getNodeCount();\n        int threadCount = tdi.getThreads() == null ? 0 : tdi.getThreads().getNodeCount();\n        int waiting = tdi.getWaitingThreads() == null ? 0 : tdi.getWaitingThreads().getNodeCount();\n        int sleeping = tdi.getSleepingThreads() == null ? 0 : tdi.getSleepingThreads().getNodeCount();\n        \n        int overallThreadsWaitingWithoutLocks = tdi.getOverallThreadsWaitingWithoutLocksCount();\n        int monitorsWithoutLocksCount = tdi.getMonitorsWithoutLocks() == null ? 0 : tdi.getMonitorsWithoutLocks().getNodeCount();\n        \n        String altRowColor = \"#cccccc\";\n        String textColor = \"#333333\";\n        String linkColor = \"#0056b3\";\n\n        // check if a lot of threads are in state \"waiting\"\n        if ((deadlocks == 0) && (threadCount > 0) && ((waiting / (threadCount / 100.0)) > 10.0)) {\n            statData.append(\"<tr bgcolor=\\\"#ffffff\\\"<td></td></tr>\");\n            statData.append(\"<tr bgcolor=\\\"\").append(altRowColor).append(\"\\\"><td colspan=2><font face=System color=\\\"\").append(textColor).append(\"\\\"><p>\")\n                    .append((int) (waiting / (threadCount / 100.0))).append(\"% of all threads are waiting for a monitor to become available again.</p><br>\");\n            statData.append(\"This might indicate a congestion or even a deadlock. If a monitor doesn't have a locking thread, it might be<br>\");\n            statData.append(\"hold by some external resource or system thread. You should check the <a style=\\\"color: \").append(linkColor).append(\";\\\" href=\\\"wait://\\\">waiting threads</a>.<br></td></tr>\");\n        } else if (deadlocks > 0) {\n            statData.append(\"<tr bgcolor=\\\"#ffffff\\\"<td></td></tr>\");\n            statData.append(\"<tr bgcolor=\\\"\").append(altRowColor).append(\"\\\"><td colspan=2><font face=System color=\\\"\").append(textColor).append(\"\\\"><p>The JVM has detected \")\n                    .append(deadlocks).append(\" deadlock(s) in the thread dump. You should check the <br><a style=\\\"color: \").append(linkColor).append(\";\\\" href=\\\"dead://\\\">deadlocks</a> for further information.</p><br>\");\n        }\n\n        // check if a lot of threads are in state \"waiting\"\n        if ((threadCount > 0) && ((sleeping / (threadCount / 100.0)) > 25.0)) {\n            statData.append(\"<tr bgcolor=\\\"#ffffff\\\"<td></td></tr>\");\n            statData.append(\"<tr bgcolor=\\\"\").append(altRowColor).append(\"\\\"><td colspan=2><font face=System color=\\\"\").append(textColor).append(\"\\\"><p>\")\n                    .append((int) (sleeping / (threadCount / 100.0))).append(\"% of all threads are sleeping on a monitor.</p><br>\");\n            statData.append(\"This might indicate they are waiting for some external resource (e.g. database) which is overloaded<br>\");\n            statData.append(\"or not available or are just waiting to get to do something (idle threads).<br>\");\n            statData.append(\"You should check the <a style=\\\"color: \").append(linkColor).append(\";\\\" href=\\\"sleep://\\\">sleeping threads</a> with a filter excluding all idle threads.</td></tr>\");\n        }\n\n        // display an info if there are monitors without locking threads\n        if (monitorsWithoutLocksCount > 0) {\n            statData.append(\"<tr bgcolor=\\\"#ffffff\\\"<td></td></tr>\");\n            statData.append(\"<tr bgcolor=\\\"\").append(altRowColor).append(\"\\\"><td colspan=2><font face=System color=\\\"\").append(textColor).append(\"\\\"><p>This thread dump contains monitors without a locking thread information.<br>\");\n            statData.append(\"This means, the monitor is hold by a system thread or some external resource.</p<br>\");\n            statData.append(\"You should check the monitors without locking threads for more information.<br></td></tr>\");\n        }\n\n        // check for indications for running garbage collector\n        if ((threadCount > 0) && (overallThreadsWaitingWithoutLocks / (threadCount / 100.0) > 50.0)) {\n            statData.append(\"<tr bgcolor=\\\"#ffffff\\\"<td></td></tr>\");\n            statData.append(\"<tr bgcolor=\\\"\").append(altRowColor).append(\"\\\"><td colspan=2><font face=System color=\\\"\").append(textColor).append(\"\\\"><p>\")\n                    .append((int) (overallThreadsWaitingWithoutLocks / (threadCount / 100.0))).append(\"% of all threads are waiting for a monitor without a application \");\n            statData.append(\"thread holding it.<br> This indicates a congestion. It is very likely the garbage collector is running \");\n            statData.append(\"and is blocking the monitors.</p<br>\");\n            statData.append(\"You should check the monitors without locking threads for more information on the blocked threads.<br>\");\n            statData.append(\"You also should analyze the garbage collector behaviour. Go to the \");\n            statData.append(\"<a style=\\\"color: \").append(linkColor).append(\";\\\" href=\\\"http://www.tagtraum.com/gcviewer.html\\\">GCViewer-Homepage</a> for more<br>\");\n            statData.append(\" information on how to do this.</td></tr>\");\n        }\n\n        // check for stuck carrier threads\n        if (threadCount > 0) {\n            int stuckCarrierThreads = 0;\n\n            Category threadsCat = tdi.getThreads();\n            for (int i = 0; i < threadCount; i++) {\n                javax.swing.tree.DefaultMutableTreeNode node = (javax.swing.tree.DefaultMutableTreeNode) threadsCat.getNodeAt(i);\n                ThreadInfo ti = (ThreadInfo) node.getUserObject();\n                if (ti.getContent().contains(\"carrier thread seems to be stuck in application code\")) {\n                    stuckCarrierThreads++;\n                }\n            }\n            if (stuckCarrierThreads > 0) {\n                statData.append(\"<tr bgcolor=\\\"#ffffff\\\"<td></td></tr>\");\n                statData.append(\"<tr bgcolor=\\\"\").append(altRowColor).append(\"\\\"><td colspan=2><font face=System color=\\\"\").append(textColor).append(\"\\\"><p>\")\n                        .append(\"Detected \").append(stuckCarrierThreads).append(\" virtual thread(s) where the carrier thread seems to be stuck in application code.</p><br>\");\n                statData.append(\"This might indicate \\\"pinning\\\" or long-running operations on a virtual thread that prevent it from yielding.<br>\");\n                statData.append(\"A Carrier Thread is usually named something like 'ForkJoinPool-x-Worker'.<br>\");\n                statData.append(\"Check the <a style=\\\"color: \").append(linkColor).append(\";\\\" href=\\\"dump://\\\">thread dump</a> for threads with this warning.</td></tr>\");\n            }\n        }\n        \n        return statData.toString();\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/parser/DumpParser.java",
    "content": "/*\n * DumpParser.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * Foobar is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * Foobar is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with Foobar; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: DumpParser.java,v 1.11 2007-11-27 09:42:20 irockel Exp $\n */\n\npackage de.grimmfrost.tda.parser;\n\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.util.Map;\nimport javax.swing.tree.DefaultMutableTreeNode;\nimport javax.swing.tree.MutableTreeNode;\nimport javax.swing.tree.TreePath;\n\n/**\n * Dump Parser Interface, defines base methods for all dump parsers.\n *\n * @author irockel\n */\npublic interface DumpParser {\n    public boolean hasMoreDumps();\n    \n    public MutableTreeNode parseNext();\n    \n    public void close() throws IOException;\n    \n    public void findLongRunningThreads(DefaultMutableTreeNode root, Map<String, Map<String, String>> dumpStore, TreePath[] paths, int minOccurrence, String regex);\n    \n    public void mergeDumps(DefaultMutableTreeNode root, Map<String, Map<String, String>> dumpStore, TreePath[] dumps, int minOccurrence, String regex);\n\n    public boolean isFoundClassHistograms();\n    \n    public void parseLoggcFile(InputStream loggcFileStream, DefaultMutableTreeNode root);\n    \n    public void setDumpHistogramCounter(int value);    \n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/parser/DumpParserFactory.java",
    "content": "/*\n * DumpParserFactory.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n */\n\npackage de.grimmfrost.tda.parser;\n\nimport de.grimmfrost.tda.utils.DateMatcher;\nimport de.grimmfrost.tda.utils.LogManager;\nimport de.grimmfrost.tda.utils.PrefManager;\nimport java.io.BufferedInputStream;\nimport java.io.BufferedReader;\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.io.InputStreamReader;\nimport java.nio.charset.Charset;\nimport java.nio.charset.StandardCharsets;\nimport java.util.Map;\nimport java.util.logging.Level;\nimport java.util.logging.Logger;\n\n/**\n * Factory for the dump parsers.\n *\n * @author irockel\n */\npublic class DumpParserFactory {\n    private static final Logger LOGGER = LogManager.getLogger(DumpParserFactory.class);\n    private static DumpParserFactory instance = null;\n    \n    /** \n     * singleton private constructor \n     */\n    private DumpParserFactory() {\n    }\n    \n    /**\n     * get the singleton instance of the factory\n     * @return singleton instance\n     */\n    public static DumpParserFactory get() {\n        if(instance == null) {\n            instance = new DumpParserFactory();\n        }\n        \n        return(instance);\n    }\n    \n    /**\n     * parses the given logfile for thread dumps and return a proper jdk parser (either for Sun VM's or\n     * for JRockit/Bea VM's) and initializes the DumpParser with the stream.\n     * @param dumpFileStream the file stream to use for dump parsing.\n     * @param threadStore the map to store the found thread dumps.\n     * @param withCurrentTimeStamp only used by SunJDKParser for running in JConsole-Plugin-Mode,  it then uses\n     *                             the current time stamp instead of a parsed one.\n     * @return a proper dump parser for the given log file, null if no proper parser was found.\n     */\n    public DumpParser getDumpParserForLogfile(InputStream dumpFileStream, Map<String, Map<String, String>> threadStore,\n                                              boolean withCurrentTimeStamp, int startCounter) {\n        BufferedReader bis = null;\n        int readAheadLimit = PrefManager.get().getStreamResetBuffer();\n        int lineCounter = 0;\n        DumpParser currentDumpParser = null;\n\n        try {\n            BufferedInputStream bufferedStream = new BufferedInputStream(dumpFileStream);\n            Charset charset = detectCharset(bufferedStream);\n            bis = new BufferedReader(new InputStreamReader(bufferedStream, charset));\n\n            // reset current dump parser\n            DateMatcher dm = new DateMatcher();\n            while (bis.ready() && (currentDumpParser == null)) {\n                bis.mark(readAheadLimit);\n                String line = bis.readLine();\n                if (line == null) break;\n                dm.checkForDateMatch(line);\n                if (JCmdJSONParser.checkForSupportedThreadDump(line)) {\n                    currentDumpParser = new JCmdJSONParser(bis, threadStore, lineCounter, dm);\n                } else {\n                    // check next lines if it is a JSON dump which doesn't start with \"threadDump\" in the first line\n                    for (int i=0; i < 10 && bis.ready(); i++) {\n                        String nextLine = bis.readLine();\n                        if (nextLine == null) break;\n                        if (JCmdJSONParser.checkForSupportedThreadDump(nextLine)) {\n                            currentDumpParser = new JCmdJSONParser(bis, threadStore, lineCounter, dm);\n                            break;\n                        }\n                    }\n                    if (currentDumpParser == null) {\n                        bis.reset();\n                        // re-read the first line as we reset the stream\n                        line = bis.readLine();\n                    }\n                }\n\n                if (currentDumpParser == null) {\n                    if (WrappedSunJDKParser.checkForSupportedThreadDump(line)) {\n                        currentDumpParser = new WrappedSunJDKParser(bis, threadStore, lineCounter, withCurrentTimeStamp, startCounter, dm);\n                    } else if(SunJDKParser.checkForSupportedThreadDump(line)) {\n                        currentDumpParser = new SunJDKParser(bis, threadStore, lineCounter, withCurrentTimeStamp, startCounter, dm);\n                    }\n                }\n                lineCounter++;\n            }\n            if (currentDumpParser != null) {\n                bis.reset();\n            }\n            LOGGER.log(Level.INFO, \"parsing logfile using \" + (currentDumpParser != null ? currentDumpParser.getClass().getName() : \"<none>\"));\n        } catch (IOException ex) {\n            LOGGER.log(Level.SEVERE, \"IO error detecting parser for logfile\", ex);\n        }\n        return currentDumpParser;\n    }\n\n    private Charset detectCharset(BufferedInputStream bis) throws IOException {\n        bis.mark(4);\n        byte[] bom = new byte[4];\n        int read = bis.read(bom);\n        bis.reset();\n\n        if (read >= 2) {\n            if (bom[0] == (byte) 0xFF && bom[1] == (byte) 0xFE) {\n                return StandardCharsets.UTF_16LE;\n            } else if (bom[0] == (byte) 0xFE && bom[1] == (byte) 0xFF) {\n                return StandardCharsets.UTF_16BE;\n            }\n        }\n\n        // if no BOM, check for UTF-16LE/BE by looking for null bytes\n        // IBM VMs often don't have BOM but use UTF-16LE\n        if (read >= 4) {\n            if (bom[1] == 0 && bom[3] == 0) {\n                return StandardCharsets.UTF_16LE;\n            } else if (bom[0] == 0 && bom[2] == 0) {\n                return StandardCharsets.UTF_16BE;\n            }\n        }\n\n        return Charset.defaultCharset();\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/parser/JCmdJSONParser.java",
    "content": "package de.grimmfrost.tda.parser;\n\nimport com.google.gson.Gson;\nimport com.google.gson.JsonArray;\nimport com.google.gson.JsonElement;\nimport com.google.gson.JsonObject;\nimport de.grimmfrost.tda.TDA;\nimport de.grimmfrost.tda.model.*;\nimport de.grimmfrost.tda.utils.DateMatcher;\nimport de.grimmfrost.tda.utils.IconFactory;\nimport java.io.BufferedReader;\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.util.Arrays;\nimport java.util.Map;\nimport java.util.logging.Level;\nimport java.util.logging.Logger;\nimport de.grimmfrost.tda.utils.LogManager;\nimport javax.swing.tree.DefaultMutableTreeNode;\nimport javax.swing.tree.MutableTreeNode;\n\n/**\n * Parser for JSON thread dumps generated by jcmd.\n */\npublic class JCmdJSONParser extends AbstractDumpParser {\n    private static final Logger LOGGER = LogManager.getLogger(JCmdJSONParser.class);\n    private static final Gson gson = new Gson();\n    private boolean hasMore = true;\n    private int counter = 1;\n\n    private Map<String, Map<String, String>> threadStore;\n\n    public JCmdJSONParser(BufferedReader bis, Map<String, Map<String, String>> threadStore, int lineCounter, DateMatcher dm) {\n        super(bis, dm);\n        this.threadStore = threadStore;\n    }\n\n    @Override\n    public boolean hasMoreDumps() {\n        return hasMore;\n    }\n\n    @Override\n    public MutableTreeNode parseNext() {\n        if (!hasMore) {\n            return null;\n        }\n\n        try {\n            StringBuilder jsonContent = new StringBuilder();\n            String line;\n            while ((line = getBis().readLine()) != null) {\n                jsonContent.append(line);\n            }\n            hasMore = false; // JSON jcmd output is typically one big dump\n\n            JsonObject rootObj = gson.fromJson(jsonContent.toString(), JsonObject.class);\n            if (rootObj == null || !rootObj.has(\"threadDump\")) {\n                return null;\n            }\n\n            JsonObject dumpObj = rootObj.getAsJsonObject(\"threadDump\");\n            String time = dumpObj.has(\"time\") ? dumpObj.get(\"time\").getAsString() : null;\n            \n            ThreadDumpInfo overallTDI = new ThreadDumpInfo(\"Dump No. \" + counter++, 0);\n            if (time != null) {\n                overallTDI.setStartTime(time);\n            }\n            DefaultMutableTreeNode threadDump = new DefaultMutableTreeNode(overallTDI);\n\n            Category threadsCat = new TableCategory(\"Threads\", IconFactory.THREADS);\n            DefaultMutableTreeNode catThreads = new DefaultMutableTreeNode(threadsCat);\n            threadDump.add(catThreads);\n            overallTDI.setThreads(threadsCat);\n\n            if (dumpObj.has(\"threadContainers\")) {\n                JsonArray containers = dumpObj.getAsJsonArray(\"threadContainers\");\n                for (JsonElement containerEl : containers) {\n                    JsonObject container = containerEl.getAsJsonObject();\n                    if (container.has(\"threads\")) {\n                        JsonArray threads = container.getAsJsonArray(\"threads\");\n                        for (JsonElement threadEl : threads) {\n                            JsonObject thread = threadEl.getAsJsonObject();\n                            String name = thread.has(\"name\") ? thread.get(\"name\").getAsString() : \"Unknown\";\n                            String tid = thread.has(\"tid\") ? thread.get(\"tid\").getAsString() : \"\";\n                            \n                            StringBuilder content = new StringBuilder(\"<body bgcolor=\\\"ffffff\\\"><pre><font size=\" + TDA.getFontSizeModifier(-1) + \">\");\n                            String title = \"\\\"\" + name + \"\\\" tid=\" + tid;\n                            content.append(title).append(\"\\n\");\n                            \n                            if (thread.has(\"stack\")) {\n                                JsonArray stack = thread.getAsJsonArray(\"stack\");\n                                for (JsonElement frameEl : stack) {\n                                    content.append(\"   at \").append(frameEl.getAsString()).append(\"\\n\");\n                                }\n                            }\n                            content.append(\"</pre></pre></body>\");\n                            \n                            addToCategory(catThreads, title, null, content.toString(), 0, true);\n                        }\n                    }\n                }\n            }\n\n            return threadDump;\n        } catch (IOException e) {\n            LOGGER.log(Level.SEVERE, \"IO error parsing JSON thread dump\", e);\n            return null;\n        }\n    }\n\n    @Override\n    protected String[] getThreadTokens(String title) {\n        String[] tokens = new String[7];\n        // Minimal implementation for now, matching SunJDKParser's structure if possible\n        // tokens: 0: name, 1: type, 2: prio, 3: tid, 4: nid, 5: state, 6: address\n\n        Arrays.fill(tokens, \"\");\n        \n        if (title.startsWith(\"\\\"\")) {\n            int endQuote = title.indexOf(\"\\\"\", 1);\n            if (endQuote > 0) {\n                tokens[0] = title.substring(1, endQuote);\n                String rest = title.substring(endQuote + 1);\n                if (rest.contains(\"tid=\")) {\n                    int tidIdx = rest.indexOf(\"tid=\");\n                    int nextSpace = rest.indexOf(\" \", tidIdx);\n                    if (nextSpace > tidIdx) {\n                        tokens[3] = rest.substring(tidIdx + 4, nextSpace);\n                    } else {\n                        tokens[3] = rest.substring(tidIdx + 4);\n                    }\n                }\n            }\n        }\n        \n        return tokens;\n    }\n\n    @Override\n    public boolean isFoundClassHistograms() {\n        return false;\n    }\n\n    @Override\n    public void parseLoggcFile(InputStream loggcFileStream, DefaultMutableTreeNode root) {\n    }\n\n    @Override\n    public void setDumpHistogramCounter(int value) {\n    }\n\n    public static boolean checkForSupportedThreadDump(String logLine) {\n        if (logLine == null) return false;\n        String trimmed = logLine.trim();\n        return trimmed.contains(\"\\\"threadDump\\\"\") || trimmed.contains(\"threadDump\");\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/parser/SunJDKParser.java",
    "content": "/*\n * SunJDKParser.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n */\npackage de.grimmfrost.tda.parser;\n\nimport de.grimmfrost.tda.TDA;\nimport de.grimmfrost.tda.model.*;\nimport de.grimmfrost.tda.utils.DateMatcher;\nimport de.grimmfrost.tda.utils.LogManager;\nimport de.grimmfrost.tda.utils.HistogramTableModel;\nimport de.grimmfrost.tda.utils.IconFactory;\nimport java.io.BufferedReader;\nimport java.io.FileNotFoundException;\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.io.InputStreamReader;\nimport java.util.Date;\nimport java.util.Enumeration;\nimport java.util.HashMap;\nimport java.util.Iterator;\nimport java.util.Map;\nimport java.util.Stack;\nimport java.util.Vector;\nimport java.util.regex.Matcher;\nimport javax.swing.JOptionPane;\nimport java.util.logging.Level;\nimport java.util.logging.Logger;\nimport javax.swing.tree.DefaultMutableTreeNode;\nimport javax.swing.tree.MutableTreeNode;\n\n/**\n * Parses SunJDK Thread Dumps. Also parses SAP and HP Dumps.\n * Needs to be closed after use (so inner stream is closed).\n *\n * @author irockel\n */\npublic class SunJDKParser extends AbstractDumpParser {\n    private static final Logger LOGGER = LogManager.getLogger(SunJDKParser.class);\n\n    private MutableTreeNode nextDump = null;\n    private Map<String, Map<String, String>> threadStore = null;\n    private int counter = 1;\n    private int lineCounter = 0;\n    private boolean foundClassHistograms = false;\n    private boolean withCurrentTimeStamp = false;\n\n    /** \n     * Creates a new instance of SunJDKParser \n     */\n    public SunJDKParser(BufferedReader bis, Map<String, Map<String, String>> threadStore, int lineCounter, boolean withCurrentTimeStamp, int startCounter, DateMatcher dm) {\n        super(bis, dm);\n        this.threadStore = threadStore;\n        this.withCurrentTimeStamp = withCurrentTimeStamp;\n        this.lineCounter = lineCounter;\n        this.counter = startCounter;\n    }\n\n    /**\n     * returns true if at least one more dump available, already loads it\n     * (this will be returned on next call of parseNext)\n     */\n    public boolean hasMoreDumps() {\n        nextDump = parseNext();\n        return (nextDump != null);\n    }\n\n    /**\n     * @return true, if a class histogram was found and added during parsing.\n     */\n    public boolean isFoundClassHistograms() {\n        return (foundClassHistograms);\n    }\n\n    private String normalizeTitle(String title) {\n        if (title == null) {\n            return null;\n        }\n        String normalizedTitle = title;\n        if (normalizedTitle.contains(\" cpu=\") && normalizedTitle.contains(\" elapsed=\")) {\n            normalizedTitle = normalizedTitle.replaceAll(\" cpu=[\\\\d\\\\.]+ms\", \"\").replaceAll(\" elapsed=[\\\\d\\\\.]+s\", \"\");\n        }\n        return normalizedTitle;\n    }\n\n    /**\n     * parse the next thread dump from the stream passed with the constructor.\n     * @return null if no more thread dumps were found.\n     */\n    public MutableTreeNode parseNext() {\n        if (nextDump != null) {\n            MutableTreeNode tmpDump = nextDump;\n            nextDump = null;\n            return (tmpDump);\n        }\n        boolean retry = false;\n        String line = null;\n\n        do {\n            DefaultMutableTreeNode threadDump = null;\n            ThreadDumpInfo overallTDI = null;\n            DefaultMutableTreeNode catMonitors = null;\n            DefaultMutableTreeNode catMonitorsLocks = null;\n            DefaultMutableTreeNode catThreads = null;\n            DefaultMutableTreeNode catLocking = null;\n            DefaultMutableTreeNode catSleeping = null;\n            DefaultMutableTreeNode catWaiting = null;\n            DefaultMutableTreeNode catVirtualThreads = null;\n\n            try {\n                Map<String, String> threads = new HashMap<>();\n                overallTDI = new ThreadDumpInfo(\"Dump No. \" + counter++, 0);\n                if (withCurrentTimeStamp) {\n                    overallTDI.setStartTime((new Date(System.currentTimeMillis())).toString());\n                }\n                threadDump = new DefaultMutableTreeNode(overallTDI);\n\n                catThreads = new DefaultMutableTreeNode(new TableCategory(\"Threads\", IconFactory.THREADS));\n                threadDump.add(catThreads);\n\n                catWaiting = new DefaultMutableTreeNode(new TableCategory(\"Threads waiting for Monitors\", IconFactory.THREADS_WAITING));\n\n                catSleeping = new DefaultMutableTreeNode(new TableCategory(\"Threads sleeping on Monitors\", IconFactory.THREADS_SLEEPING));\n\n                catLocking = new DefaultMutableTreeNode(new TableCategory(\"Threads locking Monitors\", IconFactory.THREADS_LOCKING));\n\n                catVirtualThreads = new DefaultMutableTreeNode(new TableCategory(\"Virtual Threads\", IconFactory.THREADS));\n\n                // create category for monitors with disabled filtering.\n                // NOTE:  These strings are \"magic\" in that the methods\n                // TDA#displayCategory and TreeCategory#getCatComponent both\n                // checks these literal strings and the behavior differs.\n                catMonitors = new DefaultMutableTreeNode(new TreeCategory(\"Monitors\", IconFactory.MONITORS, false));\n                catMonitorsLocks = new DefaultMutableTreeNode(new TreeCategory(\"Monitors without locking thread\", IconFactory.MONITORS_NOLOCKS, false));\n\n                String title = null;\n                String dumpKey = null;\n                StringBuffer content = null;\n                boolean inLocking = false;\n                boolean inSleeping = false;\n                boolean inWaiting = false;\n                boolean isVirtualThread = false;\n                int threadCount = 0;\n                int waiting = 0;\n                int locking = 0;\n                int sleeping = 0;\n                int virtualThreads = 0;\n                boolean locked = true;\n                boolean inSmrInfo = false;\n                StringBuilder smrInfo = new StringBuilder();\n                boolean finished = false;\n                MonitorMap mmap = new MonitorMap();\n                Stack monitorStack = new Stack();\n                long startTime = 0;\n                int singleLineCounter = 0;\n                boolean concurrentSyncsFlag = false;\n                Matcher matched = getDm().getLastMatch();\n\n                while (getBis().ready() && !finished) {\n                    line = getNextLine();\n                    if (line == null) {\n                        break;\n                    }\n                    lineCounter++;\n                    singleLineCounter++;\n                    if (locked) {\n                        if (line.indexOf(\"Full thread dump\") >= 0) {\n                            locked = false;\n                            if (!withCurrentTimeStamp) {\n                                overallTDI.setLogLine(lineCounter);\n\n                                if (startTime != 0) {\n                                    startTime = 0;\n                                } else if (matched != null && matched.matches()) {\n\n                                    String parsedStartTime = matched.group(1);\n                                    if (!getDm().isDefaultMatches() && isMillisTimeStamp()) {\n                                        try {\n                                            // the factor is a hack for a bug in oc4j timestamp printing (pattern timeStamp=2342342340)\n                                            if (parsedStartTime.length() < 13) {\n                                                startTime = Long.parseLong(parsedStartTime) * (long) Math.pow(10, 13 - parsedStartTime.length());\n                                            } else {\n                                                startTime = Long.parseLong(parsedStartTime);\n                                            }\n                                        } catch (NumberFormatException nfe) {\n                                            startTime = 0;\n                                        }\n                                        if (startTime > 0) {\n                                            overallTDI.setStartTime((new Date(startTime)).toString());\n                                        }\n                                    } else {\n                                        overallTDI.setStartTime(parsedStartTime);\n                                    }\n                                    parsedStartTime = null;\n                                    matched = null;\n                                    getDm().resetLastMatch();\n                                }\n                            }\n                            dumpKey = overallTDI.getName();\n                        } else if (!getDm().isPatternError() && (getDm().getRegexPattern() != null)) {\n                            Matcher m = getDm().checkForDateMatch(line);\n                            if (m != null) {\n                                matched = m;\n                            }\n                        }\n                    } else {\n                        if (line.indexOf(\"Threads class SMR info:\") >= 0) {\n                            inSmrInfo = true;\n                            smrInfo.append(line).append(\"\\n\");\n                            continue;\n                        }\n                        if (inSmrInfo) {\n                            if (line.trim().length() == 0 || line.startsWith(\"\\\"\")) {\n                                inSmrInfo = false;\n                                overallTDI.setSmrInfo(smrInfo.toString().trim());\n                            } else {\n                                smrInfo.append(line).append(\"\\n\");\n                                continue;\n                            }\n                        }\n                        if (line.startsWith(\"\\\"\")) {\n                            // We are starting a group of lines for a different thread\n                            // First, flush state for the previous thread (if any)\n                            concurrentSyncsFlag = false;\n                            String stringContent = content != null ? content.toString() : null;\n                            if (title != null) {\n                                String threadContentStr = content.toString();\n                                threads.put(normalizeTitle(title), threadContentStr);\n                                content.append(\"</pre></pre>\");\n                                addToCategory(catThreads, title, null, threadContentStr, singleLineCounter, true);\n                                \n                                // Add to virtual threads category if applicable\n                                if (isVirtualThread) {\n                                    addToCategory(catVirtualThreads, title, null, threadContentStr, singleLineCounter, true);\n                                }\n                                \n                                threadCount++;\n\n                                if (inWaiting) {\n                                    addToCategory(catWaiting, title, null, threadContentStr, singleLineCounter, true);\n                                    inWaiting = false;\n                                    waiting++;\n                                }\n                                if (inSleeping) {\n                                    addToCategory(catSleeping, title, null, threadContentStr, singleLineCounter, true);\n                                    inSleeping = false;\n                                    sleeping++;\n                                }\n                                if (inLocking) {\n                                    addToCategory(catLocking, title, null, threadContentStr, singleLineCounter, true);\n                                    inLocking = false;\n                                    locking++;\n                                }\n                                if (isVirtualThread) {\n                                    virtualThreads++;\n                                    // Reset isVirtualThread here as we are moving to next thread\n                                    isVirtualThread = false;\n                                }\n                            }\n                            singleLineCounter = 0;\n                            while (!monitorStack.empty()) {\n                                mmap.parseAndAddThread((String) monitorStack.pop(), title, content.toString());\n                            }\n\n                            // Second, initialize state for this new thread\n                            title = line;\n                            content = new StringBuffer(\"<body bgcolor=\\\"ffffff\\\"><pre><font size=\" + TDA.getFontSizeModifier(-1) + \">\");\n                            content.append(normalizeTitle(line));\n                            content.append(\"\\n\");\n                            \n                            // Reset and check if this is a virtual thread\n                            isVirtualThread = (line.indexOf(\"virtual\") > 0) || (line.indexOf(\"Virtual Thread\") > 0);\n                            \n                        } else if (line.indexOf(\"at \") >= 0) {\n                            content.append(line);\n                            content.append(\"\\n\");\n                        } else if (line.indexOf(\"java.lang.Thread.State\") >= 0) {\n                            content.append(line);\n                            content.append(\"\\n\");\n                            if (title.indexOf(\"t@\") > 0) {\n                                // in this case the title line is missing state informations\n                                String state = line.substring(line.indexOf(':') + 1).trim();\n                                if (state.indexOf(' ') > 0) {\n                                    title += \" state=\" + state.substring(0, state.indexOf(' '));\n                                } else {\n                                    title += \" state=\" + state;\n                                }\n                            }\n                        } else if (line.indexOf(\"Locked ownable synchronizers:\") >= 0) {\n                            concurrentSyncsFlag = true;\n                            content.append(line);\n                            content.append(\"\\n\");\n                        } else if (line.indexOf(\"- waiting on\") >= 0) {\n                            content.append(linkifyMonitor(line));\n                            monitorStack.push(line);\n                            inSleeping = true;\n                            content.append(\"\\n\");\n                        } else if (line.indexOf(\"- parking to wait\") >= 0) {\n                            content.append(linkifyMonitor(line));\n                            monitorStack.push(line);\n                            inSleeping = true;\n                            content.append(\"\\n\");\n                        } else if (line.indexOf(\"- waiting to\") >= 0) {\n                            content.append(linkifyMonitor(line));\n                            monitorStack.push(line);\n                            inWaiting = true;\n                            content.append(\"\\n\");\n                        } else if (line.indexOf(\"- locked\") >= 0) {\n                            content.append(linkifyMonitor(line));\n                            inLocking = true;\n                            monitorStack.push(line);\n                            content.append(\"\\n\");\n                        } else if (line.indexOf(\"Carrying virtual thread\") >= 0) {\n                            // Handle virtual thread information\n                            content.append(\"<font color=\\\"#0000ff\\\"><b>\");\n                            content.append(line);\n                            content.append(\"</b></font>\");\n                            content.append(\"\\n\");\n                            \n                            // Check if carrier thread has issues (like being stuck in application code)\n                            String contentStr = content.toString();\n                            int atIdx = contentStr.indexOf(\"at \");\n                            if (atIdx > 0) {\n                                String stackTrace = contentStr.substring(atIdx);\n                                String[] lines = stackTrace.split(\"\\n\");\n                                boolean foundAppCode = false;\n                                for (String stackLine : lines) {\n                                    if (stackLine.contains(\"at \") \n                                            && !stackLine.contains(\"java.lang.VirtualThread.run\")\n                                            && !stackLine.contains(\"java.util.concurrent.ForkJoinPool\")\n                                            && !stackLine.contains(\"java.util.concurrent.ForkJoinWorkerThread\")\n                                            && !stackLine.contains(\"java.base@\")\n                                            && !stackLine.contains(\"jdk.internal\")) {\n                                        foundAppCode = true;\n                                        break;\n                                    }\n                                }\n                                if (foundAppCode) {\n                                    content.append(\"<font color=\\\"#ff0000\\\"><b>Note: carrier thread seems to be stuck in application code.</b></font>\\n\");\n                                }\n                            }\n\n                            // Mark this platform thread as carrying a virtual thread\n                            isVirtualThread = true;\n                            \n                        } else if (line.indexOf(\"- \") >= 0) {\n                            if (concurrentSyncsFlag) {\n                                content.append(linkifyMonitor(line));\n                                monitorStack.push(line);\n                            } else {\n                                content.append(line);\n                            }\n                            content.append(\"\\n\");\n                        }\n\n                        // last thread reached?\n                        if ((line.indexOf(\"\\\"Suspend Checker Thread\\\"\") >= 0)\n                                || (line.indexOf(\"\\\"VM Periodic Task Thread\\\"\") >= 0)\n                                || (line.indexOf(\"<EndOfDump>\") >= 0)) {\n                            finished = true;\n                            getBis().mark(getMarkSize());\n                            if ((checkForDeadlocks(threadDump)) == 0) {\n                                // no deadlocks found, set back original position.\n                                getBis().reset();\n                            }\n\n                            getBis().mark(getMarkSize());\n\n                            if (!checkThreadDumpStatData(overallTDI)) {\n                                // no statistical data found, set back original position.\n                                getBis().reset();\n                            }\n\n                            getBis().mark(getMarkSize());\n                            if (!(foundClassHistograms = checkForClassHistogram(threadDump))) {\n                                getBis().reset();\n                            }\n                        }\n                    }\n                }\n                // last thread\n                if (title != null) {\n                    String threadContentStr = content.toString();\n                    threads.put(normalizeTitle(title), threadContentStr);\n                    content.append(\"</pre></pre>\");\n                    addToCategory(catThreads, title, null, threadContentStr, singleLineCounter, true);\n                    \n                    // Add to virtual threads category if applicable\n                    if (isVirtualThread) {\n                        addToCategory(catVirtualThreads, title, null, threadContentStr, singleLineCounter, true);\n                    }\n\n                    // Add to custom categories if applicable\n                    // addCustomCategories(title, threadContentStr, singleLineCounter);\n                    \n                    threadCount++;\n\n                    if (inWaiting) {\n                        addToCategory(catWaiting, title, null, threadContentStr, singleLineCounter, true);\n                        inWaiting = false;\n                        waiting++;\n                    }\n                    if (inSleeping) {\n                        addToCategory(catSleeping, title, null, threadContentStr, singleLineCounter, true);\n                        inSleeping = false;\n                        sleeping++;\n                    }\n                    if (inLocking) {\n                        addToCategory(catLocking, title, null, threadContentStr, singleLineCounter, true);\n                        inLocking = false;\n                        locking++;\n                    }\n                    if (isVirtualThread) {\n                        virtualThreads++;\n                        isVirtualThread = false;\n                    }\n                }\n                singleLineCounter = 0;\n                while (!monitorStack.empty()) {\n                    mmap.parseAndAddThread((String) monitorStack.pop(), title, content.toString());\n                }\n\n                int monitorCount = mmap.size();\n\n                int monitorsWithoutLocksCount = 0;\n                // dump monitors \n                if (mmap.size() > 0) {\n                    int[] result = dumpMonitors(catMonitors, catMonitorsLocks, mmap);\n                    monitorsWithoutLocksCount = result[0];\n                    overallTDI.setOverallThreadsWaitingWithoutLocksCount(result[1]);\n\n                }\n\n                // display nodes with stuff to display\n                if (waiting > 0) {\n                    overallTDI.setWaitingThreads((Category) catWaiting.getUserObject());\n                    threadDump.add(catWaiting);\n                }\n\n                if (sleeping > 0) {\n                    overallTDI.setSleepingThreads((Category) catSleeping.getUserObject());\n                    threadDump.add(catSleeping);\n                }\n\n                if (locking > 0) {\n                    overallTDI.setLockingThreads((Category) catLocking.getUserObject());\n                    threadDump.add(catLocking);\n                }\n\n                if (virtualThreads > 0) {\n                    overallTDI.setVirtualThreads((Category) catVirtualThreads.getUserObject());\n                    ((Category) catVirtualThreads.getUserObject()).setName(((Category) catVirtualThreads.getUserObject()) + \" (\" + virtualThreads + \" Virtual Threads)\");\n                    threadDump.add(catVirtualThreads);\n                }\n\n                if (monitorCount > 0) {\n                    overallTDI.setMonitors((Category) catMonitors.getUserObject());\n                    threadDump.add(catMonitors);\n                }\n\n                if (monitorsWithoutLocksCount > 0) {\n                    overallTDI.setMonitorsWithoutLocks((Category) catMonitorsLocks.getUserObject());\n                    threadDump.add(catMonitorsLocks);\n                }\n                overallTDI.setThreads((Category) catThreads.getUserObject());\n\n                ((Category) catThreads.getUserObject()).setName(((Category) catThreads.getUserObject()) + \" (\" + threadCount + \" Threads overall)\");\n                ((Category) catWaiting.getUserObject()).setName(((Category) catWaiting.getUserObject()) + \" (\" + waiting + \" Threads waiting)\");\n                ((Category) catSleeping.getUserObject()).setName(((Category) catSleeping.getUserObject()) + \" (\" + sleeping + \" Threads sleeping)\");\n                ((Category) catLocking.getUserObject()).setName(((Category) catLocking.getUserObject()) + \" (\" + locking + \" Threads locking)\");\n                ((Category) catMonitors.getUserObject()).setName(((Category) catMonitors.getUserObject()) + \" (\" + monitorCount + \" Monitors)\");\n                ((Category) catMonitorsLocks.getUserObject()).setName(((Category) catMonitorsLocks.getUserObject()) + \" (\" + monitorsWithoutLocksCount\n                        + \" Monitors)\");\n\n                // add thread dump to passed dump store.\n                if ((threadCount > 0) && (dumpKey != null)) {\n                    threadStore.put(dumpKey.trim(), threads);\n                }\n\n                // check custom categories\n                addCustomCategories(threadDump);\n\n                return (threadCount > 0 ? threadDump : null);\n            } catch (FileNotFoundException e) {\n                e.printStackTrace();\n            } catch (StringIndexOutOfBoundsException e) {\n                e.printStackTrace();\n                JOptionPane.showMessageDialog(null,\n                        \"Error during parsing of a found thread dump, skipping to next one!\\n\"\n                        + \"Check for possible broken dumps, sometimes, stream flushing mixes the logged data.\\n\"\n                        + \"Error Message is \\\"\" + e.getLocalizedMessage() + \"\\\". \\n\"\n                        + (line != null ? \"Last line read was \\\"\" + line + \"\\\". \\n\" : \"\"),\n                        \"Error during Parsing Thread Dump\", JOptionPane.ERROR_MESSAGE);\n                retry = true;\n            } catch (IOException e) {\n                LOGGER.log(Level.SEVERE, \"IO error parsing thread dump\", e);\n            }\n        } while (retry);\n\n        return (null);\n    }\n\n    /**\n     * add a monitor link for monitor navigation\n     * @param line containing monitor\n     */\n    private String linkifyMonitor(String line) {\n        if (line != null && line.indexOf('<') >= 0) {\n            String begin = line.substring(0, line.indexOf('<'));\n            String monitor = line.substring(line.indexOf('<'), line.indexOf('>') + 1);\n            String end = line.substring(line.indexOf('>') + 1);\n            monitor = monitor.replaceAll(\"<\", \"<a href=\\\"monitor://\" + monitor + \"\\\">&lt;\");\n            monitor = monitor.substring(0, monitor.length() - 1) + \"&gt;</a>\";\n            return (begin + monitor + end);\n        } else if (line != null && line.indexOf('@') >= 0) {\n            String begin = line.substring(0, line.indexOf('@') + 1);\n            String monitor = line.substring(line.indexOf('@'));\n            monitor = monitor.replaceAll(\"@\", \"@<a href=\\\"monitor://<\" + monitor.substring(1) + \">\\\">\");\n            monitor = monitor.substring(0, monitor.length() - 1) + \"</a>\";\n            return (begin + monitor);\n        } else {\n            return (line);\n        }\n    }\n\n    /**\n     * add a monitor link for monitor navigation\n     * @param line containing monitor\n     */\n    private String linkifyDeadlockInfo(String line) {\n        if (line != null && line.indexOf(\"Ox\") >= 0) {\n            String begin = line.substring(0, line.indexOf(\"0x\"));\n            int objectBegin = line.lastIndexOf(\"0x\");\n            int monitorBegin = line.indexOf(\"0x\");\n            String monitorHex = line.substring(monitorBegin, monitorBegin + 10);\n\n            String monitor = line.substring(objectBegin, objectBegin + 10);\n            String end = line.substring(line.indexOf(\"0x\") + 10);\n\n            monitor = \"<a href=\\\"monitor://<\" + monitor + \">\\\">\" + monitorHex + \"</a>\";\n            return (begin + monitor + end);\n        } else {\n            return (line);\n        }\n    }\n\n    /**\n     * checks for the next class histogram and adds it to the tree node passed\n     * @param threadDump which tree node to add the histogram.\n     */\n    private boolean checkForClassHistogram(DefaultMutableTreeNode threadDump) throws IOException {\n        HistogramTableModel classHistogram = parseNextClassHistogram(getBis());\n\n        if (classHistogram.getRowCount() > 0) {\n            addHistogramToDump(threadDump, classHistogram);\n        }\n\n        return (classHistogram.getRowCount() > 0);\n    }\n\n    private void addHistogramToDump(DefaultMutableTreeNode threadDump, HistogramTableModel classHistogram) {\n        DefaultMutableTreeNode catHistogram;\n        HistogramInfo hi = new HistogramInfo(\"Class Histogram of Dump\", classHistogram);\n        catHistogram = new DefaultMutableTreeNode(hi);\n        threadDump.add(catHistogram);\n    }\n\n    /**\n     * parses the next class histogram found in the stream, uses the max check\n     * lines option to check how many lines to parse in advance.\n     * <p>\n     * This could be called from parseLoggcFile, which is outside our normal\n     * calling stream. Thus, we have to pass in the BufferedReader. However, to\n     * handle a WrappedSunJDKParser, we have to use getNextLine() if possible.\n     *\n     * @param bis the stream to read.\n     */\n    private HistogramTableModel parseNextClassHistogram(BufferedReader bis) throws IOException {\n        boolean finished = false;\n        boolean found = false;\n        HistogramTableModel classHistogram = new HistogramTableModel();\n        int maxLinesCounter = 0;\n\n        boolean isNormalBis = bis == getBis();\n\n        while (bis.ready() && !finished) {\n            String line = (isNormalBis) ? getNextLine() : bis.readLine();\n            if (line == null) {\n                break;\n            }\n            line = line.trim();\n            if (!found && !line.equals(\"\")) {\n                if (line.startsWith(\"num   #instances    #bytes  class name\")) {\n                    found = true;\n                } else if (maxLinesCounter >= getMaxCheckLines()) {\n                    finished = true;\n                } else {\n                    maxLinesCounter++;\n                }\n            } else if (found) {\n                if (line.startsWith(\"Total \")) {\n                    // split string.\n                    String newLine = line.replaceAll(\"(\\\\s)+\", \";\");\n                    String[] elems = newLine.split(\";\");\n                    classHistogram.setBytes(Long.parseLong(elems[2]));\n                    classHistogram.setInstances(Long.parseLong(elems[1]));\n                    finished = true;\n                } else if (!line.startsWith(\"-------\")) {\n                    // removed blank, breaks splitting using blank...\n                    String newLine = line.replaceAll(\"<no name>\", \"<no-name>\");\n\n                    // split string.\n                    newLine = newLine.replaceAll(\"(\\\\s)+\", \";\");\n                    String[] elems = newLine.split(\";\");\n\n                    if (elems.length == 4) {\n                        classHistogram.addEntry(elems[3].trim(), Integer.parseInt(elems[2].trim()),\n                                Integer.parseInt(elems[1].trim()));\n                    } else {\n                        classHistogram.setIncomplete(true);\n                        finished = true;\n                    }\n\n                }\n            }\n        }\n\n        return (classHistogram);\n    }\n\n    /**\n     * Heap\n    PSYoungGen      total 6656K, used 3855K [0xb0850000, 0xb0f50000, 0xb4130000)\n    eden space 6144K, 54% used [0xb0850000,0xb0b97740,0xb0e50000)\n    from space 512K, 97% used [0xb0ed0000,0xb0f4c5c0,0xb0f50000)\n    to   space 512K, 0% used [0xb0e50000,0xb0e50000,0xb0ed0000)\n    PSOldGen        total 15552K, used 13536K [0x94130000, 0x95060000, 0xb0850000)\n    object space 15552K, 87% used [0x94130000,0x94e68168,0x95060000)\n    PSPermGen       total 16384K, used 13145K [0x90130000, 0x91130000, 0x94130000)\n    object space 16384K, 80% used [0x90130000,0x90e06610,0x91130000)\n    \n     * @param tdi the thread dump info to check\n     * @return true if heap data was found\n     * @throws java.io.IOException\n     */\n    private boolean checkThreadDumpStatData(ThreadDumpInfo tdi) throws IOException {\n        boolean finished = false;\n        boolean found = false;\n        StringBuilder hContent = new StringBuilder();\n        int heapLineCounter = 0;\n        int lines = 0;\n\n        while (getBis().ready() && !finished) {\n            String line = getNextLine();\n            if (line == null) {\n                break;\n            }\n            if (!found && !line.isEmpty()) {\n                if (line.trim().startsWith(\"Heap\")) {\n                    found = true;\n                } else if (lines >= getMaxCheckLines()) {\n                    finished = true;\n                } else {\n                    lines++;\n                }\n            } else if (found) {\n                if (heapLineCounter < 7) {\n                    hContent.append(line).append(\"\\n\");\n                } else {\n                    finished = true;\n                }\n                heapLineCounter++;\n            }\n        }\n        if (hContent.length() > 0) {\n            tdi.setHeapInfo(new HeapInfo(hContent.toString()));\n        }\n\n\n        return (found);\n    }\n\n    /**\n     * check if any dead lock information is logged in the stream\n     * @param threadDump which tree node to add the histogram.\n     */\n    private int checkForDeadlocks(DefaultMutableTreeNode threadDump) throws IOException {\n        boolean finished = false;\n        boolean found = false;\n        int deadlocks = 0;\n        int lineCounter = 0;\n        StringBuffer dContent = new StringBuffer();\n        TreeCategory deadlockCat = new TreeCategory(\"Deadlocks\", IconFactory.DEADLOCKS);\n        DefaultMutableTreeNode catDeadlocks = new DefaultMutableTreeNode(deadlockCat);\n        boolean first = true;\n\n        while (getBis().ready() && !finished) {\n            String line = getNextLine();\n            if (line == null) {\n                break;\n            }\n\n            if (!found && !line.equals(\"\")) {\n                if (line.trim().startsWith(\"Found one Java-level deadlock\")) {\n                    found = true;\n                    dContent.append(\"<body bgcolor=\\\"ffffff\\\"><font size=\").append(TDA.getFontSizeModifier(-1)).append(\"><b>\");\n                    dContent.append(\"Found one Java-level deadlock\");\n                    dContent.append(\"</b><hr></font><pre>\\n\");\n                } else if (lineCounter >= getMaxCheckLines()) {\n                    finished = true;\n                } else {\n                    lineCounter++;\n                }\n            } else if (found) {\n                if (line.startsWith(\"Found one Java-level deadlock\")) {\n                    if (dContent.length() > 0) {\n                        deadlocks++;\n                        addToCategory(catDeadlocks, \"Deadlock No. \" + (deadlocks), null, dContent.toString(), 0, false);\n                    }\n                    dContent = new StringBuffer();\n                    dContent.append(\"</pre><b><font size=\").append(TDA.getFontSizeModifier(-1)).append(\">\");\n                    dContent.append(\"Found one Java-level deadlock\");\n                    dContent.append(\"</b><hr></font><pre>\\n\");\n                    first = true;\n                } else if ((line.indexOf(\"Found\") >= 0) && (line.endsWith(\"deadlocks.\") || line.endsWith(\"deadlock.\"))) {\n                    finished = true;\n                } else if (line.startsWith(\"=======\")) {\n                    // ignore this line\n                } else if (line.indexOf(\" monitor 0x\") >= 0) {\n                    dContent.append(linkifyDeadlockInfo(line));\n                    dContent.append(\"\\n\");\n                } else if (line.indexOf(\"Java stack information for the threads listed above\") >= 0) {\n                    dContent.append(\"</pre><br><font size=\").append(TDA.getFontSizeModifier(-1)).append(\"><b>\");\n                    dContent.append(\"Java stack information for the threads listed above\");\n                    dContent.append(\"</b><hr></font><pre>\");\n                    first = true;\n                } else if ((line.indexOf(\"- waiting on\") >= 0)\n                        || (line.indexOf(\"- waiting to\") >= 0)\n                        || (line.indexOf(\"- locked\") >= 0)\n                        || (line.indexOf(\"- parking to wait\") >= 0)) {\n\n                    dContent.append(linkifyMonitor(line));\n                    dContent.append(\"\\n\");\n\n                } else if (line.trim().startsWith(\"\\\"\")) {\n                    dContent.append(\"</pre>\");\n                    if (first) {\n                        first = false;\n                    } else {\n                        dContent.append(\"<br>\");\n                    }\n                    dContent.append(\"<b><font size=\").append(TDA.getFontSizeModifier(-1)).append(\"><code>\");\n                    dContent.append(line);\n                    dContent.append(\"</font></code></b><pre>\");\n                } else {\n                    dContent.append(line);\n                    dContent.append(\"\\n\");\n                }\n            }\n        }\n        if (dContent.length() > 0) {\n            deadlocks++;\n            addToCategory(catDeadlocks, \"Deadlock No. \" + (deadlocks), null, dContent.toString(), 0, false);\n        }\n\n        if (deadlocks > 0) {\n            threadDump.add(catDeadlocks);\n            ((ThreadDumpInfo) threadDump.getUserObject()).setDeadlocks((TreeCategory) catDeadlocks.getUserObject());\n            deadlockCat.setName(\"Deadlocks (\" + deadlocks + (deadlocks == 1 ? \" deadlock)\" : \" deadlocks)\"));\n        }\n\n        return (deadlocks);\n    }\n\n    /**\n     * dump the monitor information\n     * @param catMonitors\n     * @param catMonitorsLocks\n     * @param mmap\n     * @return\n     */\n    private int[] dumpMonitors(DefaultMutableTreeNode catMonitors, DefaultMutableTreeNode catMonitorsLocks, MonitorMap mmap) {\n        Iterator iter = mmap.iterOfKeys();\n        int monitorsWithoutLocksCount = 0;\n        int overallThreadsWaiting = 0;\n        while (iter.hasNext()) {\n            String monitor = (String) iter.next();\n            Map[] threads = mmap.getFromMonitorMap(monitor);\n            ThreadInfo mi = new ThreadInfo(monitor, null, \"\", 0, null);\n            DefaultMutableTreeNode monitorNode = new DefaultMutableTreeNode(mi);\n\n            // first the locks\n            Iterator iterLocks = threads[MonitorMap.LOCK_THREAD_POS].keySet().iterator();\n            int locks = 0;\n            int sleeps = 0;\n            int waits = 0;\n            while (iterLocks.hasNext()) {\n                String thread = (String) iterLocks.next();\n                String stackTrace = (String) threads[MonitorMap.LOCK_THREAD_POS].get(thread);\n                if (threads[MonitorMap.SLEEP_THREAD_POS].containsKey(thread)) {\n                    createNode(monitorNode, \"locks and sleeps on monitor: \" + thread, null, stackTrace, 0);\n                    sleeps++;\n                } else if (threads[MonitorMap.WAIT_THREAD_POS].containsKey(thread)) {\n                    createNode(monitorNode, \"locks and waits on monitor: \" + thread, null, stackTrace, 0);\n                    sleeps++;\n                } else {\n                    createNode(monitorNode, \"locked by \" + thread, null, stackTrace, 0);\n                }\n                locks++;\n            }\n\n            Iterator iterWaits = threads[MonitorMap.WAIT_THREAD_POS].keySet().iterator();\n            while (iterWaits.hasNext()) {\n                String thread = (String) iterWaits.next();\n                if (!threads[MonitorMap.LOCK_THREAD_POS].containsKey(thread)) {\n                    createNode(monitorNode, \"waits on monitor: \" + thread, null, (String) threads[MonitorMap.WAIT_THREAD_POS].get(thread), 0);\n                    waits++;\n                }\n            }\n\n            mi.setContent(ThreadDumpInfo.getMonitorInfo(locks, waits, sleeps));\n            mi.setName(mi.getName() + \":    \" + (sleeps) + \" Thread(s) sleeping, \" + (waits) + \" Thread(s) waiting, \" + (locks) + \" Thread(s) locking\");\n            if (ThreadDumpInfo.areALotOfWaiting(waits)) {\n                mi.setALotOfWaiting(true);\n            }\n            mi.setChildCount(monitorNode.getChildCount());\n\n            ((Category) catMonitors.getUserObject()).addToCatNodes(copyNode(monitorNode));\n            if (locks == 0) {\n                monitorsWithoutLocksCount++;\n                overallThreadsWaiting += waits;\n                ((Category) catMonitorsLocks.getUserObject()).addToCatNodes(copyNode(monitorNode));\n            }\n        }\n        return new int[]{monitorsWithoutLocksCount, overallThreadsWaiting};\n    }\n\n    private void renormalizeThreadDepth(DefaultMutableTreeNode threadNode1) {\n        for (Enumeration e = threadNode1.children(); e.hasMoreElements();) {\n            DefaultMutableTreeNode monitorNode2 = (DefaultMutableTreeNode) e.nextElement();\n            for (int ii = 0; ii < monitorNode2.getChildCount(); ii++) {\n                renormalizeMonitorDepth(monitorNode2, ii);\n            }\n        }\n    }\n\n    private void renormalizeMonitorDepth(DefaultMutableTreeNode monitorNode, int index) {\n        // First, remove all duplicates of the item at index \"index\"\n        DefaultMutableTreeNode threadNode1 = (DefaultMutableTreeNode) monitorNode.getChildAt(index);\n        ThreadInfo mi1 = (ThreadInfo) threadNode1.getUserObject();\n        int i = index + 1;\n        while (i < monitorNode.getChildCount()) {\n            DefaultMutableTreeNode threadNode2 = (DefaultMutableTreeNode) monitorNode.getChildAt(i);\n            ThreadInfo mi2 = (ThreadInfo) threadNode2.getUserObject();\n            if (mi1.getName().equals(mi2.getName())) {\n                if (threadNode2.getChildCount() > 0) {\n                    threadNode1.add((DefaultMutableTreeNode) threadNode2.getFirstChild());\n                    monitorNode.remove(i);\n                    continue;\n                }\n            }\n            i++;\n        }\n\n        // Second, recurse into item \"index\"\n        renormalizeThreadDepth(threadNode1);\n    }\n\n    private boolean checkForDuplicateThreadItem(Map directChildMap, DefaultMutableTreeNode node1) {\n        ThreadInfo mi1 = (ThreadInfo) node1.getUserObject();\n        String name1 = mi1.getName();\n\n        for (Iterator iter2 = directChildMap.entrySet().iterator(); iter2.hasNext();) {\n            DefaultMutableTreeNode node2 = (DefaultMutableTreeNode) ((Map.Entry) iter2.next()).getValue();\n            if (node1 == node2) {\n                continue;\n            }\n\n            ThreadInfo mi2 = (ThreadInfo) node2.getUserObject();\n            if (name1.equals(mi2.getName()) && node2.getChildCount() > 0) {\n                node1.add((MutableTreeNode) node2.getFirstChild());\n                iter2.remove();\n                return true;\n            }\n        }\n\n        return false;\n    }\n\n    private int fillBlockingThreadMaps(MonitorMap mmap, Map directChildMap) {\n        int blockedThread = 0;\n        for (Iterator iter = mmap.iterOfKeys(); iter.hasNext();) {\n            String monitor = (String) iter.next();\n            Map[] threads = mmap.getFromMonitorMap(monitor);\n\n            // Only one thread can really be holding this monitor, so find the thread\n            String threadLine = getLockingThread(threads);\n            ThreadInfo tmi = new ThreadInfo(\"Thread - \" + threadLine, null, \"\", 0, null);\n            DefaultMutableTreeNode threadNode = new DefaultMutableTreeNode(tmi);\n\n            ThreadInfo mmi = new ThreadInfo(\"Monitor - \" + monitor, null, \"\", 0, null);\n            DefaultMutableTreeNode monitorNode = new DefaultMutableTreeNode(mmi);\n            threadNode.add(monitorNode);\n\n            // Look over all threads blocked on this monitor\n            for (Iterator iterWaits = threads[MonitorMap.WAIT_THREAD_POS].keySet().iterator(); iterWaits.hasNext();) {\n                String thread = (String) iterWaits.next();\n                // Skip the thread that has this monitor locked\n                if (!threads[MonitorMap.LOCK_THREAD_POS].containsKey(thread)) {\n                    blockedThread++;\n                    createNode(monitorNode, \"Thread - \" + thread, null, (String) threads[MonitorMap.WAIT_THREAD_POS].get(thread), 0);\n                }\n            }\n\n            String blockingStackFrame = (String) threads[MonitorMap.LOCK_THREAD_POS].get(threadLine);\n            tmi.setContent(blockingStackFrame);\n            mmi.setContent(\"This monitor (\" + linkifyMonitor(monitor)\n                    + \") is held in the following stack frame:\\n\\n\" + blockingStackFrame);\n\n            // If no-one is blocked on or waiting for this monitor, don't show it\n            if (monitorNode.getChildCount() > 0) {\n                directChildMap.put(monitor, threadNode);\n            }\n        }\n        return blockedThread;\n    }\n\n    private String getLockingThread(Map[] threads) {\n        int lockingThreadCount = threads[MonitorMap.LOCK_THREAD_POS].keySet().size();\n        if (lockingThreadCount == 1) {\n            return (String) threads[MonitorMap.LOCK_THREAD_POS].keySet().iterator().next();\n        }\n\n        for (Iterator iterLocks = threads[MonitorMap.LOCK_THREAD_POS].keySet().iterator(); iterLocks.hasNext();) {\n            String thread = (String) iterLocks.next();\n            if (!threads[MonitorMap.SLEEP_THREAD_POS].containsKey(thread)) {\n                return thread;\n            }\n        }\n\n        return \"\";\n    }\n\n    /**\n     * parses a loggc file stream and reads any found class histograms and adds the to the dump store\n     * @param loggcFileStream the stream to read\n     * @param root the root node of the dumps.\n     */\n    public void parseLoggcFile(InputStream loggcFileStream, DefaultMutableTreeNode root) {\n        BufferedReader bis = new BufferedReader(new InputStreamReader(loggcFileStream));\n        Vector histograms = new Vector();\n\n        try {\n            while (bis.ready()) {\n                bis.mark(getMarkSize());\n                String nextLine = bis.readLine();\n                if (nextLine.startsWith(\"num   #instances    #bytes  class name\")) {\n                    bis.reset();\n                    histograms.add(parseNextClassHistogram(bis));\n                }\n            }\n\n            // now add the found histograms to the tree.\n            for (int i = histograms.size() - 1; i >= 0; i--) {\n                DefaultMutableTreeNode dump = getNextDumpForHistogram(root);\n                if (dump != null) {\n                    addHistogramToDump(dump, (HistogramTableModel) histograms.get(i));\n                }\n            }\n        } catch (IOException ex) {\n            LOGGER.log(Level.SEVERE, \"IO error parsing loggc file\", ex);\n        }\n    }\n    \n    /**\n     * generate thread info token for table view.\n     * @param name the thread info.\n     * @return thread tokens.\n     */\n    public String[] getThreadTokens(String name) {\n        String[] tokens = null;\n        \n        if (name.indexOf(\"prio\") > 0) {\n            tokens = new String[7];\n            \n            // Initialize all tokens to empty strings to prevent null values\n            for (int i = 0; i < tokens.length; i++) {\n                tokens[i] = \"\";\n            }\n\n            tokens[0] = name.substring(1, name.lastIndexOf('\"') == 0 ? \n                    name.length() - 1 : \n                    name.lastIndexOf('\"'));\n            tokens[1] = name.indexOf(\"daemon\") > 0 ? \"Daemon\" : \"Task\";\n\n            String strippedToken = name.substring(name.lastIndexOf('\"') + 1);\n\n            if (strippedToken.contains(\"tid=\")) {\n                int tidIndex = strippedToken.indexOf(\"tid=\") - 1;\n                int osPrioIndex = strippedToken.indexOf(\"os_prio=\") - 1;\n                int cpuIndex = strippedToken.indexOf(\"cpu=\") - 1;\n                int endIndex = osPrioIndex > 0 ? osPrioIndex : cpuIndex > 0 ? cpuIndex : tidIndex;\n                tokens[2] = strippedToken.substring(strippedToken.indexOf(\"prio=\") + 5, endIndex);                \n            } else {\n                tokens[2] = strippedToken.substring(strippedToken.indexOf(\"prio=\") + 5);\n            }\n\n            if ((strippedToken.contains(\"tid=\")) && (strippedToken.contains(\"nid=\"))) {\n                tokens[3] = String.valueOf(Long.parseLong(strippedToken.substring(strippedToken.indexOf(\"tid=\") + 6,\n                        strippedToken.indexOf(\"nid=\") - 1), 16));\n            } else if (strippedToken.contains(\"tid=\")) {\n                // Handle virtual thread format: tid=0x0000fffef57b0000  [0x0000fffeb1eae000]\n                int tidStart = strippedToken.indexOf(\"tid=\") + 6; // Skip \"tid=0x\"\n                String tidSubstring = strippedToken.substring(tidStart);\n                \n                // Find the end of the tid value (at space, bracket, or end of string)\n                int tidEnd = tidSubstring.length();\n                int spaceIndex = tidSubstring.indexOf(' ');\n                int bracketIndex = tidSubstring.indexOf('[');\n                \n                if (spaceIndex >= 0) {\n                    tidEnd = Math.min(tidEnd, spaceIndex);\n                }\n                if (bracketIndex >= 0) {\n                    tidEnd = Math.min(tidEnd, bracketIndex);\n                }\n                \n                String tidValue = tidSubstring.substring(0, tidEnd).trim();\n                tokens[3] = String.valueOf(Long.parseLong(tidValue, 16));\n            }\n\n            // default for token 6 is:\n            tokens[6] = \"<no address range>\";\n\n            if ((strippedToken.contains(\"nid=\")) && (strippedToken.indexOf(\" \", strippedToken.indexOf(\"nid=\"))) >= 0) {\n                if (strippedToken.indexOf(\"nid=0x\") > 0) { // is hexadecimal\n                    String nidToken = strippedToken.substring(strippedToken.indexOf(\"nid=\") + 6,\n                            strippedToken.indexOf(\" \", strippedToken.indexOf(\"nid=\")));\n                    tokens[4] = String.valueOf(Long.parseLong(nidToken, 16));\n                } else { // is decimal\n                    String nidToken = strippedToken.substring(strippedToken.indexOf(\"nid=\") + 4,\n                            strippedToken.indexOf(\" \", strippedToken.indexOf(\"nid=\")));\n                    tokens[4] = nidToken;\n                }\n\n                if (strippedToken.lastIndexOf('[') > strippedToken.indexOf(\"nid=\")) {\n                    if (strippedToken.indexOf(\"lwp_id=\") > 0) {\n                        tokens[5] = strippedToken.substring(strippedToken.indexOf(\" \", strippedToken.indexOf(\"lwp_id=\")) + 1, strippedToken.lastIndexOf('[') - 1);\n                    } else {\n                        tokens[5] = strippedToken.substring(strippedToken.indexOf(\" \", strippedToken.indexOf(\"nid=\")) + 1, strippedToken.lastIndexOf('[') - 1);\n                    }\n                    tokens[6] = strippedToken.substring(strippedToken.lastIndexOf('['));\n                } else {\n                    tokens[5] = strippedToken.substring(strippedToken.indexOf(\" \", strippedToken.indexOf(\"nid=\")) + 1);\n                }\n            } else if (strippedToken.indexOf(\"nid=\") >= 0) {\n                String nidToken = strippedToken.substring(strippedToken.indexOf(\"nid=\") + 6);\n                // nid is at the end.\n                if (nidToken.indexOf(\"0x\") > 0) { // is hexadecimal\n                    tokens[4] = String.valueOf(Long.parseLong(nidToken, 16));\n                } else {\n                    tokens[4] = nidToken;\n                }\n            }\n        } else {\n            tokens = new String[3];\n            \n            // Initialize all tokens to empty strings to prevent null values\n            for (int i = 0; i < tokens.length; i++) {\n                tokens[i] = \"\";\n            }\n            \n            tokens[0] = name.substring(1, name.lastIndexOf('\"') == 0 ? \n                    name.length() - 1 : \n                    name.lastIndexOf('\"'));\n            if (name.indexOf(\"nid=\") > 0) {\n                tokens[1] = name.substring(name.indexOf(\"nid=\") + 4, name.indexOf(\"state=\") - 1);\n                tokens[2] = name.substring(name.indexOf(\"state=\") + 6);\n            } else if (name.indexOf(\"t@\") > 0) {\n                tokens[1] = name.substring(name.indexOf(\"t@\") + 2, name.indexOf(\"state=\") - 1);\n                tokens[2] = name.substring(name.indexOf(\"state=\") + 6);\n            } else if (name.indexOf(\"id=\") > 0) {\n                tokens[1] = name.substring(name.indexOf(\"id=\") + 3, name.indexOf(\" in\"));\n                tokens[2] = name.substring(name.indexOf(\" in\") + 3);\n            } else {\n                tokens[1] = \"\";\n                tokens[2] = \"\";\n            }\n        }\n\n        return (tokens);\n    }\n\n    /**\n     * check if the passed logline contains the beginning of a sun jdk thread\n     * dump.\n     * @param logLine the line of the logfile to test\n     * @return true, if the start of a sun thread dump is detected.\n     */\n    public static boolean checkForSupportedThreadDump(String logLine) {\n        return (logLine.trim().indexOf(\"Full thread dump\") >= 0);\n    }\n\n    protected String getNextLine() throws IOException {\n        return getBis().readLine();\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/parser/WrappedSunJDKParser.java",
    "content": "/*\r\n * WrappedSunJDKParser.java\r\n *\r\n * This file is part of TDA - Thread Dump Analysis Tool.\r\n *\r\n * Foobar is free software; you can redistribute it and/or modify\r\n * it under the terms of the Lesser GNU General Public License as published by\r\n * the Free Software Foundation; either version 2.1 of the License, or\r\n * (at your option) any later version.\r\n *\r\n * Foobar is distributed in the hope that it will be useful,\r\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\r\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r\n * Lesser GNU General Public License for more details.\r\n *\r\n * You should have received a copy of the Lesser GNU General Public License\r\n * along with Foobar; if not, write to the Free Software\r\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\r\n *\r\n */\r\npackage de.grimmfrost.tda.parser;\r\n\r\nimport java.io.BufferedReader;\r\nimport java.io.IOException;\r\nimport java.util.Map;\r\n\r\nimport de.grimmfrost.tda.utils.DateMatcher;\r\n\r\npublic class WrappedSunJDKParser extends SunJDKParser {\r\n\r\n  /**\r\n   * Creates a new instance of WrappedSunJDKParser: A SunJDKParser reading a log\r\n   * file created by the Tanuki Service Wrapper.\r\n   */\r\n  public WrappedSunJDKParser(BufferedReader bis, Map<String, Map<String, String>> threadStore, int lineCounter,\r\n                             boolean withCurrentTimeStamp, int startCounter, DateMatcher dm) {\r\n    super(bis, threadStore, lineCounter, withCurrentTimeStamp, startCounter, dm);\r\n  }\r\n\r\n  /**\r\n   * check if the passed logline contains the beginning of a sun jdk thread\r\n   * dump.\r\n   *\r\n   * @param logLine the line of the logfile to test\r\n   * @return true, if the start of a sun thread dump is detected.\r\n   */\r\n  public static boolean checkForSupportedThreadDump(String logLine) {\r\n    return logLine.startsWith(\"INFO   | jvm \")\r\n           && logLine.trim().contains(\" | Full thread dump\");\r\n  }\r\n\r\n  protected String getNextLine() throws IOException {\r\n    return getBis().readLine().substring(42);\r\n  }\r\n\r\n\r\n}\r\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/AppInfo.java",
    "content": "/*\n * AppInfo.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n */\npackage de.grimmfrost.tda.utils;\nimport java.io.InputStream;\nimport java.util.Properties;\nimport java.util.logging.Level;\nimport java.util.logging.Logger;\n\n/**\n * provides static application information like name and version\n * @author irockel\n */\npublic class AppInfo {\n    private static final Logger LOGGER = LogManager.getLogger(AppInfo.class);\n    private static final String APP_SHORT_NAME = \"TDA\";\n    private static final String APP_FULL_NAME = \"Thread Dump Analyzer\";\n    private static String VERSION = \"unknown\";\n    \n    private static final String COPYRIGHT = \"2006-2026\";\n\n    static {\n        try (InputStream is = AppInfo.class.getResourceAsStream(\"/de/grimmfrost/tda/version.properties\")) {\n            if (is != null) {\n                Properties props = new Properties();\n                props.load(is);\n                VERSION = props.getProperty(\"version\", \"unknown\");\n            }\n        } catch (Exception e) {\n            // fallback to unknown or log error\n            LOGGER.log(Level.SEVERE, \"Failed to load version properties\", e);\n        }\n    }\n    \n    /**\n     * get info text for status bar if no real info is displayed.\n     */\n    public static String getStatusBarInfo() {\n        return(APP_SHORT_NAME + \" - \" + APP_FULL_NAME + \" \" + VERSION);\n    }\n    \n    public static String getAppInfo() {\n        return(APP_SHORT_NAME + \" - \" + APP_FULL_NAME);\n    }\n    \n    public static String getVersion() {\n        return(VERSION);\n    }\n    \n    public static String getCopyright() {\n        return(COPYRIGHT);\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/Browser.java",
    "content": "/**\n * class Browser Copyright (C) 1999-2001 Fredrik Ehnbom <fredde@gjt.org>\n * available at\n * <http://www.gjt.org/servlets/JCVSlet/show/gjt/org/gjt/fredde/util/net/Browser.java/HEAD>\n * used under the terms of the GNU public license\n *\n * Launches the default browser of the current OS with the supplied URL.\n *\n * $Id: Browser.java,v 1.1 2007-05-03 09:18:07 irockel Exp $\n */\npackage de.grimmfrost.tda.utils;\n\nimport java.awt.Desktop;\nimport java.io.IOException;\nimport java.net.URI;\nimport java.net.URISyntaxException;\nimport java.util.logging.Level;\nimport java.util.logging.Logger;\n\n/** \n * helper class for launching the default browser\n */\npublic class Browser { \n    private static final Logger LOGGER = LogManager.getLogger(Browser.class);\n    \n    /**\n     * Starts the default browser for the current platform.\n     *\n     * @param url The link to point the browser to.\n     */\n    public static void open(String url) throws InterruptedException, IOException {\n        if (url == null || url.trim().isEmpty()) {\n            return;\n        }\n\n        // Try java.awt.Desktop first (standard Java API)\n        if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {\n            try {\n                Desktop.getDesktop().browse(new URI(url));\n                return;\n            } catch (URISyntaxException | IOException e) {\n                LOGGER.log(Level.WARNING, \"Failed to open browser via Desktop API, falling back to manual command\", e);\n            }\n        }\n\n        // Fallback to manual commands\n        String cmd = null;\n        String os = System.getProperty(\"os.name\").toLowerCase();\n        \n        if (os.contains(\"win\")) {\n            cmd = \"rundll32 url.dll,FileProtocolHandler \" + maybeFixupURLForWindows(url);\n        } else if (os.contains(\"mac\")) {\n            cmd = \"open \" + url;\n        } else {\n            // Unix/Linux fallback\n            if(System.getenv(\"BROWSER\") != null) {\n                cmd = System.getenv(\"BROWSER\") + \" \" + url;\n            } else {\n                // Try common linux browser launchers\n                String[] launchers = {\"xdg-open\", \"gnome-open\", \"kfmclient\", \"firefox\", \"google-chrome\"};\n                for (String launcher : launchers) {\n                    Process whichProcess = null;\n                    try {\n                        whichProcess = new ProcessBuilder(\"which\", launcher).start();\n                        if (whichProcess.waitFor() == 0) {\n                            cmd = launcher + \" \" + url;\n                            break;\n                        }\n                    } catch (Exception e) {\n                        // ignore\n                    } finally {\n                        if (whichProcess != null) {\n                            whichProcess.destroy();\n                        }\n                    }\n                }\n            }\n        }\n\n        if (cmd != null) {\n            Runtime.getRuntime().exec(cmd);\n        } else {\n            LOGGER.log(Level.SEVERE, \"Could not find a way to open URL: \" + url);\n        }\n    }\n    \n    /**\n     * If the default browser is Internet Explorer 5.0 or greater,\n     * the URL.DLL program fails if the url ends with .htm or .html .\n     * This problem is described by Microsoft at\n     * http://support.microsoft.com/support/kb/articles/Q283/2/25.ASP\n     * Of course, their suggested workaround is to use the classes from the\n     * microsoft Java SDK, but fortunately another workaround does exist.\n     * If you alter the url slightly so it no longer ends with \".htm\",\n     * the URL can launch successfully. The logic here appends a null query\n     * string onto the end of the URL if none is already present, or\n     * a bogus query parameter if there is already a query string ending in\n     * \".htm\"\n     */\n    private static String maybeFixupURLForWindows(String url) {\n        // plain filenames (e.g. c:\\some_file.html or \\\\server\\filename) do\n        // not need fixing.\n        if (url == null || url.length() < 2 || url.charAt(0) == '\\\\' || url.charAt(1) == ':')\n            return url;\n        String lower_url = url.toLowerCase();\n        int i = badEndings.length;\n        while (i-- > 0)\n            if (lower_url.endsWith(badEndings[i]))\n                return fixupURLForWindows(url);\n        return url;\n    }\n    \n    static final String[] badEndings = { \".htm\", \".html\", \".htw\", \".mht\", \".cdf\", \".mhtml\", \".stm\" };\n    \n    private static String fixupURLForWindows(String url) {\n        if (url.indexOf('?') == -1)\n            return url + \"?\";\n        else return url + \"&workaroundStupidWindowsBug\";\n    }\n    \n    /**\n     * Checks if the OS is windows.\n     *\n     * @return true if it is, false if it's not.\n     */\n    public static boolean isWindows() {\n        return System.getProperty(\"os.name\").toLowerCase().contains(\"win\");\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/ColoredTable.java",
    "content": "/*\n * ColoredTable.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: ColoredTable.java,v 1.2 2008-01-10 20:36:11 irockel Exp $\n */\npackage de.grimmfrost.tda.utils;\n\nimport java.awt.Color;\nimport javax.swing.JTable;\nimport javax.swing.table.DefaultTableCellRenderer;\nimport javax.swing.table.TableCellRenderer;\nimport javax.swing.table.TableModel;\n\n/**\n * GrayWhiteTable renders its rows with a sequential color combination of white\n * and gray. Rows with even indicies are rendered white, odd indicies light grey.\n * Note: Do not use GrayWhiteTable for tables with custom renderers such as\n * check boxes. Use JTable instead and modify DefaultTableCellRenderer. Just keep\n * in mind that in order to display a table with more than 1 row colors, you\n * must have 2 separate intances of the renderer, one for each color.\n * \n * @author irockel\n */\npublic class ColoredTable extends JTable {\n\n    private DefaultTableCellRenderer whiteRenderer;\n    private DefaultTableCellRenderer grayRenderer;\n\n    public ColoredTable() {\n        super();\n    }\n\n    public ColoredTable(TableModel tm) {\n        super(tm);\n    }\n\n    public ColoredTable(Object[][] data, Object[] columns) {\n        super(data, columns);\n    }\n\n    public ColoredTable(int rows, int columns) {\n        super(rows, columns);\n    }\n\n    /**\n     * If row is an even number, getCellRenderer() returns a DefaultTableCellRenderer\n     * with white background. For odd rows, this method returns a DefaultTableCellRenderer\n     * with a light gray background.\n     */\n    public TableCellRenderer getCellRenderer(int row, int column) {\n        if (whiteRenderer == null) {\n            whiteRenderer = new DefaultTableCellRenderer();\n            whiteRenderer.setBackground(Color.WHITE);\n            whiteRenderer.setForeground(Color.BLACK);\n        }\n\n        if (grayRenderer == null) {\n            grayRenderer = new DefaultTableCellRenderer();\n            grayRenderer.setBackground(new Color(240, 240, 240));\n            grayRenderer.setForeground(Color.BLACK);\n        }\n\n        if ((row % 2) == 0) {\n            return whiteRenderer;\n        } else {\n            return grayRenderer;\n        }\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/DateMatcher.java",
    "content": "/*\n * DateMatcher.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: DateMatcher.java,v 1.4 2008-01-16 14:33:26 irockel Exp $\n */\npackage de.grimmfrost.tda.utils;\n\nimport java.util.regex.Matcher;\nimport java.util.regex.Pattern;\nimport java.util.regex.PatternSyntaxException;\nimport javax.swing.JOptionPane;\n\n/**\n *\n * @author irockel\n */\npublic class DateMatcher {\n    private Pattern regexPattern;\n    private Pattern defaultPattern;\n    private boolean patternError;\n    private boolean defaultMatches;\n    private Matcher matched = null;\n    \n    public DateMatcher() {\n        // set date parsing pattern.\n        if((PrefManager.get().getDateParsingRegex() != null) && !PrefManager.get().getDateParsingRegex().trim().equals(\"\")) {\n            try {\n                regexPattern = Pattern.compile(PrefManager.get().getDateParsingRegex().trim());\n                defaultPattern = Pattern.compile(\"(\\\\d\\\\d\\\\d\\\\d\\\\-\\\\d\\\\d\\\\-\\\\d\\\\d\\\\s\\\\d\\\\d:\\\\d\\\\d:\\\\d\\\\d).*\");\n                setPatternError(false);\n            } catch (PatternSyntaxException pe) {\n                showErrorPane(pe.getMessage());\n            }\n        }         \n    }\n    \n    public Pattern getRegexPattern() {\n        return regexPattern;\n    }\n\n    public void setRegexPattern(Pattern regexPattern) {\n        this.regexPattern = regexPattern;\n    }\n\n    public boolean isPatternError() {\n        return patternError;\n    }\n\n    public void setPatternError(boolean patternError) {\n        this.patternError = patternError;\n    }\n    \n    public Matcher checkForDateMatch(String line) {        \n        try {\n            if(getRegexPattern() == null) {\n                setRegexPattern(Pattern.compile(PrefManager.get().getDateParsingRegex().trim()));\n            }\n            \n            Matcher m = null;\n            if(PrefManager.get().getJDK16DefaultParsing()) {\n                m = defaultPattern.matcher(line);\n            }\n            if(m != null && m.matches()) {\n                setDefaultMatches(true);\n                matched = m;\n            } else {\n                m = getRegexPattern().matcher(line);\n                if (m.matches()) {\n                    setDefaultMatches(false);\n                    matched = m;\n                }\n            }\n        } catch (Exception ex) {\n            showErrorPane(ex.getMessage());\n        }\n        \n        return(matched);\n    }\n    \n    public Matcher getLastMatch() {\n        return(matched);\n    }\n    \n    public void resetLastMatch() {\n        matched = null;\n    }\n    \n    private void showErrorPane(String message) {\n        JOptionPane.showMessageDialog(null,\n                \"Error during parsing line for timestamp regular expression!\\n\" +\n                \"Please check regular expression in your preferences. Deactivating\\n\" +\n                \"parsing for the rest of the file! Error Message is \\\"\" + message + \"\\\" \\n\",\n                \"Error during Parsing\", JOptionPane.ERROR_MESSAGE);\n\n        setPatternError(true);\n    }\n\n    /**\n     * \n     * @return true, if the default matcher matched (checks for 1.6 default date info)\n     */\n    public boolean isDefaultMatches() {\n        return defaultMatches;\n    }\n\n    private void setDefaultMatches(boolean defaultMatches) {\n        this.defaultMatches = defaultMatches;\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/HistogramTableModel.java",
    "content": "/*\n * HistogramTableModel.java\n *\n * Thread Dump Analysis Tool, parses Thread Dump input and displays it as tree\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: HistogramTableModel.java,v 1.9 2006-05-02 14:22:31 irockel Exp $\n */\npackage de.grimmfrost.tda.utils;\n\nimport java.util.Vector;\nimport javax.swing.table.AbstractTableModel;\n\n/**\n * Provides table data model for the display of class histograms.\n *\n * @author irockel\n */\npublic class HistogramTableModel extends AbstractTableModel {\n    private static int DEFINED_ROWS = 3;\n    \n    private Vector elements = new Vector();\n    \n    private Vector filteredElements = null;\n\n    private String[] columnNames = {\"class name\",\n                                    \"instance count\",\n                                    \"#bytes\"};\n    \n    private boolean oom;\n    \n    private long bytes;\n    \n    private long instances;\n    \n    private String filter;\n    \n    private boolean ignoreCase = false;\n    \n    private boolean showHotspotClasses = false;\n    \n    private boolean incomplete = false;\n    \n    /**\n     * Creates a new instance of HistogramTableModel \n     */\n    public HistogramTableModel() {\n    }\n    \n    public void addEntry(String className, int instanceCount, int bytes) {\n        elements.addElement(new Entry(className, instanceCount, bytes));\n    }\n\n    public Object getValueAt(int rowIndex, int columnIndex) {\n        if(filteredElements != null) {\n            return(getValueAt(filteredElements, rowIndex, columnIndex));\n        } else {\n            return(getValueAt(elements, rowIndex, columnIndex));\n        }\n    }\n    \n    private Object getValueAt(Vector elements, int rowIndex, int columnIndex) {\n        switch(columnIndex) {\n            case 0 : {\n                return ((Entry) elements.elementAt(rowIndex)).className;\n            }\n            case 1 : {\n                return new Integer(((Entry) elements.elementAt(rowIndex)).bytes);\n            } \n            case 2 : {\n                return new Integer(((Entry) elements.elementAt(rowIndex)).instanceCount);\n            }\n        }\n        return null;\n    }\n    \n    public String getColumnName(int col) {\n        return columnNames[col];\n    }\n\n    public int getRowCount() {\n        if(filteredElements != null) {\n            return filteredElements.size();\n        } else {\n            return elements.size();\n        }\n    }\n\n    public int getColumnCount() {\n        return DEFINED_ROWS;\n    }\n    \n    public Class getColumnClass(int c) {\n        return getValueAt(0, c).getClass();\n    }\n    \n    private void setOOM(boolean value) {\n        oom = value;\n    }\n    \n    public boolean isOOM() {\n        return (oom);\n    }\n    \n    public void setBytes(long value) {\n        bytes = value;\n    }\n    \n    public long getBytes() {\n        return(bytes);\n    }\n    \n    public void setInstances(long value) {\n        instances = value;\n    }\n    \n    public long getInstances() {\n        return(instances);\n    }\n    \n    public void setIncomplete(boolean value) {\n        incomplete = value;\n    }\n    \n    public boolean isIncomplete() {\n        return(incomplete);\n    }\n    \n    /**\n     * set filter to the value and revalidate model, model saves original data,\n     * so it can be refiltered.\n     * @param value the filter string\n     */\n    public void setFilter(String value) {        \n        filter = value;\n        if(isIgnoreCase()) {\n            value = value.toLowerCase();\n        }\n        \n        if(((value) == null || value.equals(\"\")) && isShowHotspotClasses()) {\n            filteredElements = null;\n        } else {\n            filteredElements = new Vector();\n            for(int i = 0; i < elements.size(); i++) {\n                if(isIgnoreCase()) {\n                    if(((Entry)elements.get(i)).className.toLowerCase().indexOf(value) >= 0) {\n                        filteredElements.add(elements.get(i));\n                    }\n                } else {\n                    if(isNotHotspotClass(((Entry)elements.get(i)).className) && (value.equals(\"\") || (((Entry)elements.get(i)).className.indexOf(value) >= 0))) {\n                        filteredElements.add(elements.get(i));\n                    }\n                }\n            }\n        }\n    }\n    \n    /**\n     * check if the className is an internal hotspot class\n     * @param className the name of the class\n     */\n    private boolean isNotHotspotClass(String className) {\n        //System.out.println(\"className\" + className + \" eval=\" + (!isShowHotspotClasses() && className.startsWith(\"<\")));\n        return(isShowHotspotClasses() || !(className.indexOf(\"[internal HotSpot]\") >= 0));\n    }\n    \n    public void setShowHotspotClasses(boolean value) {\n        if(showHotspotClasses != value) {\n            showHotspotClasses = value;\n            setFilter(getFilter());\n        }\n    }\n    \n    private boolean isShowHotspotClasses() {\n        return(showHotspotClasses);\n    }\n    \n    public String getFilter() {\n        return(filter);\n    }\n    \n    public void setIgnoreCase(boolean value) {\n        if(ignoreCase != value) {\n            ignoreCase = value;\n            // revalidate\n            setFilter(getFilter());\n        }\n    }\n    \n    public boolean isIgnoreCase() {\n        return(ignoreCase);\n    }\n\n    public class Entry {\n        private String className;\n        private int instanceCount;\n        private int bytes;\n        \n        public Entry(String className, int instanceCount, int bytes) {\n            this.className = parseClassName(className);\n            \n            this.instanceCount = instanceCount;\n            this.bytes = bytes;\n        }\n        \n        /**\n         * resolve classname to something more human readable.\n         */\n        private String parseClassName(String className) {\n            String result = className;\n            if(className.trim().endsWith(\"[I\")) {\n                result = \"<html><body><b>int[]</b></body></html>\";\n            } else if (className.trim().endsWith(\"[B\")) {\n                result = \"<html><body><b>byte[]</b></body></html>\";\n            } else if (className.trim().endsWith(\"[C\")) {\n                result = \"<html><body><b>char[]</b></body></html>\";\n            } else if (className.trim().endsWith(\"[L\")) {\n                result = \"<html><body><b>long[]</b></body></html>\";\n            } else if (className.trim().startsWith(\"<\")) {\n                className = className.replaceAll(\"<\", \"&lt;\");\n                className = className.replaceAll(\">\", \"&gt;\");\n                result = \"<html><body><i><b>\" + className + \"</i></b> [internal HotSpot]</i></body></html>\";\n            } else if (className.lastIndexOf('.') > 0) {\n                /*if(className.indexOf(\"OutOfMemory\") >= 0) {\n                    setOOM(true);\n                }*/ // that doesn't work this way\n                \n                result = \"<html><body>\" + className.substring(0, className.lastIndexOf('.')+1) + \"<b>\" + \n                         className.substring(className.lastIndexOf('.')+1) + \"</b></body></html>\";\n            }\n            if(className.trim().startsWith(\"[[\")) {\n                result = result.replaceAll(\"\\\\[\\\\]\", \"[][]\");\n            }\n            \n            return(result);\n        }\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/IconFactory.java",
    "content": "/*\n * IconFactory.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: IconFactory.java,v 1.2 2008-03-12 09:50:53 irockel Exp $\n */\npackage de.grimmfrost.tda.utils;\n\nimport de.grimmfrost.tda.TDA;\nimport javax.swing.Icon;\n\n/**\n * icon factory for the tree icons.\n * @author irockel\n */\npublic class IconFactory {\n    public static IconFactory iconFactory;\n    \n    public static final int THREADS = 0;\n    public static final int THREADS_WAITING = 1;\n    public static final int THREADS_SLEEPING = 2;\n    public static final int THREADS_LOCKING = 3;\n    public static final int DEADLOCKS = 4;\n    public static final int DIFF_DUMPS = 5;\n    public static final int MONITORS = 6;\n    public static final int MONITORS_NOLOCKS = 7;\n    public static final int CUSTOM_CATEGORY = 8;\n    \n    private final Icon[] icons = { TDA.createImageIcon(\"Threads.png\"),\n                                   TDA.createImageIcon(\"ThreadsWaiting.png\"),\n                                   TDA.createImageIcon(\"ThreadsSleeping.png\"),\n                                   TDA.createImageIcon(\"ThreadsLocking.png\"),\n                                   TDA.createImageIcon(\"Deadlock.png\"),\n                                   TDA.createImageIcon(\"DiffDumps.png\"),\n                                   TDA.createImageIcon(\"Monitors.png\"),\n                                   TDA.createImageIcon(\"Monitors-nolocks.png\"),\n                                   TDA.createImageIcon(\"CustomCat.png\")\n    };\n    \n    public static IconFactory get() {\n        if(iconFactory == null) {\n            iconFactory = new IconFactory();\n        }\n        \n        return(iconFactory);\n    }\n    \n    private IconFactory() {\n        // private empty constructor\n    }\n    \n    public Icon getIconFor(int index) {\n        return(icons[index]);\n    }\n    \n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/LogManager.java",
    "content": "package de.grimmfrost.tda.utils;\n\nimport java.io.File;\nimport java.io.IOException;\nimport java.io.PrintWriter;\nimport java.io.StringWriter;\nimport java.text.SimpleDateFormat;\nimport java.util.Date;\nimport java.util.logging.*;\nimport javax.swing.SwingUtilities;\n\n/**\n * Manages logging for TDA.\n */\npublic class LogManager {\n    private static final Logger LOGGER = Logger.getLogger(\"de.grimmfrost.tda\");\n    private static boolean initialized = false;\n    private static String logFilePath = null;\n\n    private static class ErrorHandler extends Handler {\n        @Override\n        public void publish(LogRecord record) {\n            if (record.getLevel().intValue() >= Level.SEVERE.intValue()) {\n                SwingUtilities.invokeLater(() -> {\n                    StatusBar statusBar = StatusBar.getInstance();\n                    if (statusBar != null) {\n                        statusBar.showErrorIndicator();\n                    }\n                });\n            }\n        }\n\n        @Override\n        public void flush() {}\n\n        @Override\n        public void close() throws SecurityException {}\n    }\n\n    /**\n     * Initializes logging. Should be called early in the application lifecycle.\n     */\n    public static synchronized void init() {\n        if (initialized) {\n            return;\n        }\n\n        // Check if running in a test environment (e.g., Maven/Surefire)\n        boolean isTestEnv = System.getProperty(\"surefire.real.class.path\") != null || \n                           System.getProperty(\"junit.jupiter.execution.parallel.enabled\") != null ||\n                           System.getProperty(\"java.class.path\").contains(\"junit-platform-launcher\");\n\n        if (isTestEnv) {\n            // In test environment, don't use the custom file-based logging.\n            // Let Maven handle the logging.\n            initialized = true;\n\n            Logger rootLogger = Logger.getLogger(\"de.grimmfrost.tda\");\n            rootLogger.setUseParentHandlers(false);\n            ConsoleHandler consoleHandler = new ConsoleHandler();\n            consoleHandler.setLevel(Level.WARNING);\n            consoleHandler.setFormatter(new CompactFormatter());\n            rootLogger.addHandler(consoleHandler);\n\n            return;\n        }\n\n        try {\n            String logDir = getLogDirectory();\n            File dir = new File(logDir);\n            if (!dir.exists()) {\n                dir.mkdirs();\n            }\n\n            File logFile = new File(dir, \"tda.log\");\n            logFilePath = logFile.getAbsolutePath();\n\n            FileHandler fileHandler = new FileHandler(logFilePath, 1024 * 1024, 5, true);\n            fileHandler.setFormatter(new CompactFormatter());\n            fileHandler.setLevel(Level.ALL);\n\n            Logger rootLogger = Logger.getLogger(\"de.grimmfrost.tda\");\n            rootLogger.setUseParentHandlers(false);\n            rootLogger.addHandler(fileHandler);\n            rootLogger.setLevel(Level.INFO);\n            \n            // Also log to console for MCP as it might be useful for some clients (though MCP uses stdout for protocol)\n            // But we should be careful not to pollute stdout if it's used for MCP protocol.\n            // MCPServer uses System.out for JSON-RPC. Logging to System.err is safer.\n            \n            ConsoleHandler consoleHandler = new ConsoleHandler();\n            consoleHandler.setLevel(Level.WARNING);\n            consoleHandler.setFormatter(new CompactFormatter());\n            rootLogger.addHandler(consoleHandler);\n\n            rootLogger.addHandler(new ErrorHandler());\n\n            initialized = true;\n            LOGGER.info(\"Logging initialized. Log file: \" + logFilePath);\n        } catch (IOException e) {\n            System.err.println(\"Failed to initialize logging: \" + e.getMessage());\n        }\n    }\n\n    static class CompactFormatter extends Formatter {\n        private final SimpleDateFormat dateFormat = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\");\n\n        @Override\n        public String format(LogRecord record) {\n            StringBuilder sb = new StringBuilder();\n            sb.append(dateFormat.format(new Date(record.getMillis())));\n            sb.append(\" \");\n            sb.append(formatLevel(record.getLevel()));\n            sb.append(\" [\");\n            sb.append(getSimpleClassName(record.getSourceClassName()));\n            sb.append(\".\");\n            sb.append(record.getSourceMethodName());\n            sb.append(\"] \");\n            sb.append(formatMessage(record));\n            sb.append(\"\\n\");\n            if (record.getThrown() != null) {\n                try {\n                    StringWriter sw = new StringWriter();\n                    PrintWriter pw = new PrintWriter(sw);\n                    record.getThrown().printStackTrace(pw);\n                    pw.close();\n                    sb.append(sw);\n                } catch (Exception ex) {\n                    // ignore\n                }\n            }\n            return sb.toString();\n        }\n\n        private String formatLevel(Level level) {\n            if (level == Level.SEVERE) return \"SEV\";\n            if (level == Level.WARNING) return \"WRN\";\n            if (level == Level.INFO) return \"INF\";\n            if (level == Level.CONFIG) return \"CFG\";\n            if (level == Level.FINE) return \"FIN\";\n            if (level == Level.FINER) return \"FNR\";\n            if (level == Level.FINEST) return \"FST\";\n            return level.getName().substring(0, Math.min(3, level.getName().length())).toUpperCase();\n        }\n\n        private String getSimpleClassName(String className) {\n            if (className == null) return \"unknown\";\n            int lastDot = className.lastIndexOf('.');\n            if (lastDot >= 0) {\n                return className.substring(lastDot + 1);\n            }\n            return className;\n        }\n    }\n\n    public static String getLogFilePath() {\n        return logFilePath;\n    }\n\n    private static String getLogDirectory() {\n        String os = System.getProperty(\"os.name\").toLowerCase();\n        String userHome = System.getProperty(\"user.home\");\n\n        if (os.contains(\"win\")) {\n            String appData = System.getenv(\"LOCALAPPDATA\");\n            if (appData != null) {\n                return appData + File.separator + \"TDA\" + File.separator + \"Logs\";\n            }\n            return userHome + File.separator + \"AppData\" + File.separator + \"Local\" + File.separator + \"TDA\" + File.separator + \"Logs\";\n        } else if (os.contains(\"mac\")) {\n            return userHome + File.separator + \"Library\" + File.separator + \"Logs\" + File.separator + \"TDA\";\n        } else {\n            // Linux/Unix\n            return userHome + File.separator + \".tda\" + File.separator + \"logs\";\n        }\n    }\n    \n    public static Logger getLogger(Class<?> clazz) {\n        return Logger.getLogger(clazz.getName());\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/MonitorComparator.java",
    "content": "/*\n * MonitorComparator.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: MonitorComparator.java,v 1.2 2007-11-22 14:47:24 irockel Exp $\n */\npackage de.grimmfrost.tda.utils;\n\nimport de.grimmfrost.tda.model.ThreadInfo;\n\nimport java.util.Comparator;\nimport javax.swing.tree.DefaultMutableTreeNode;\n\n/**\n * compares monitor nodes based on the amount of threads refering to the monitors. \n * It return 0 for two monitors having the same amount of threads refering to them. \n * Using this in a TreeSet is not feasible as only one thread of on thread amount\n * refering to it would survive, the others would be lost.\n * \n * @author irockel\n */\npublic class MonitorComparator implements Comparator {\n\n    /**\n     * compares two monitor nodes based on the amount of threads refering to the monitors.\n     * @param arg0 first monitor node\n     * @param arg1 second monitor node\n     * @return difference between amount of refering threads.\n     */\n    public int compare(Object arg0, Object arg1) {\n        if (arg0 instanceof DefaultMutableTreeNode && arg1 instanceof DefaultMutableTreeNode) {\n            DefaultMutableTreeNode firstNode = (DefaultMutableTreeNode) arg0;\n            DefaultMutableTreeNode secondNode = (DefaultMutableTreeNode) arg1;\n            Object o1 = firstNode.getUserObject();\n            Object o2 = secondNode.getUserObject();\n            if (o1 instanceof ThreadInfo && o2 instanceof ThreadInfo) {\n                return ((ThreadInfo) o2).getChildCount() - ((ThreadInfo) o1).getChildCount();\n            }\n            return (secondNode.getChildCount() - firstNode.getChildCount());\n        }\n        return (0);\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/MonitorsTableModel.java",
    "content": "/*\n * To change this template, choose Tools | Templates\n * and open the template in the editor.\n */\n\npackage de.grimmfrost.tda.utils;\n\n//import org.jdesktop.swingx.treetable.AbstractTreeTableModel;\n\n/**\n *\n * @author irockel\n */\npublic class MonitorsTableModel {//extends AbstractTreeTableModel {\n\n    public int getColumnCount() {\n        throw new UnsupportedOperationException(\"Not supported yet.\");\n    }\n\n    public Object getValueAt(Object arg0, int arg1) {\n        throw new UnsupportedOperationException(\"Not supported yet.\");\n    }\n\n    public Object getChild(Object parent, int index) {\n        throw new UnsupportedOperationException(\"Not supported yet.\");\n    }\n\n    public int getChildCount(Object parent) {\n        throw new UnsupportedOperationException(\"Not supported yet.\");\n    }\n\n    public int getIndexOfChild(Object parent, Object child) {\n        throw new UnsupportedOperationException(\"Not supported yet.\");\n    }\n\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/PrefManager.java",
    "content": "/*\n * PrefManager.java\n *\n * Thread Dump Analysis Tool, parses Thread Dump input and displays it as tree\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: PrefManager.java,v 1.28 2010-04-01 09:20:28 irockel Exp $\n */\npackage de.grimmfrost.tda.utils;\n\nimport de.grimmfrost.tda.model.CustomCategory;\nimport de.grimmfrost.tda.filter.Filter;\nimport de.grimmfrost.tda.filter.FilterChecker;\nimport java.awt.Dimension;\nimport java.awt.Point;\nimport java.io.File;\nimport java.util.List;\nimport java.util.logging.Logger;\nimport java.util.ArrayList;\nimport java.util.Iterator;\nimport java.util.prefs.BackingStoreException;\nimport java.util.prefs.Preferences;\nimport javax.swing.DefaultListModel;\nimport javax.swing.ListModel;\n\n/**\n * Singleton class for accessing system preferences.\n * Window sizes, and positions are stored here and also the last accessed path\n * is stored here.\n *\n * @author irockel\n */\npublic class PrefManager {\n    private static final Logger LOGGER = LogManager.getLogger(PrefManager.class);\n    public static final String PARAM_DELIM = \"\\u00A7\\u00A7\\u00A7\\u00A7\";\n    \n    public static final String FILTER_SEP = \"\\u00ac\\u00ac\\u00ac\\u00ac\";\n\n    \n    private final static PrefManager prefManager = new PrefManager();\n    \n    private final Preferences toolPrefs;\n    \n    /** Creates a new instance of PrefManager */\n    private PrefManager() {\n        toolPrefs = Preferences.userNodeForPackage(this.getClass());\n    }\n    \n    public static PrefManager get() {\n        return(prefManager);\n    }\n\n    public long getMaxLogfileSize() {\n        return(toolPrefs.getInt(\"maxlogfilesize\", 1024));\n    }\n    \n    public int getWindowState() {\n        return(toolPrefs.getInt(\"windowState\", -1));\n    }\n    \n    public void setWindowState(int windowState) {\n        toolPrefs.putInt(\"windowState\", windowState);\n    }\n    \n    public File getSelectedPath() {\n        return(new File(toolPrefs.get(\"selectedPath\", \"\")));\n    }\n    \n    public void setSelectedPath(File directory) {\n        toolPrefs.put(\"selectedPath\", directory.getAbsolutePath());\n    }\n    \n    public Dimension getPreferredSize() {\n        return(new Dimension(toolPrefs.getInt(\"windowWidth\", 800),\n               toolPrefs.getInt(\"windowHeight\", 600)));\n    }\n    \n    public void setPreferredSize(Dimension size) {\n        toolPrefs.putInt(\"windowHeight\", size.height);\n        toolPrefs.putInt(\"windowWidth\", size.width);\n    }\n    \n    public Dimension getPreferredSizeFileChooser() {\n        return(new Dimension(toolPrefs.getInt(\"fileChooser.windowWidth\", 0),\n               toolPrefs.getInt(\"fileChooser.windowHeight\", 0)));\n    }\n    \n    public void setPreferredSizeFileChooser(Dimension size) {\n        toolPrefs.putInt(\"fileChooser.windowHeight\", size.height);\n        toolPrefs.putInt(\"fileChooser.windowWidth\", size.width);\n    }\n    \n    public void setMaxLogfileSize(int size) {\n        toolPrefs.putInt(\"maxlogfilesize\", size);\n    }\n    \n    public Point getWindowPos() {\n        Point point = new Point(toolPrefs.getInt(\"windowPosX\", 0),\n                toolPrefs.getInt(\"windowPosY\", 0));\n        return(point);\n    }\n    \n    public void setWindowPos(int x, int y) {\n        toolPrefs.putInt(\"windowPosX\", x);\n        toolPrefs.putInt(\"windowPosY\", y);\n    }\n    \n    public int getMaxRows() {\n        return(toolPrefs.getInt(\"maxRowsForChecking\", 10));\n    }\n    \n    public void setMaxRows(int rows) {\n        toolPrefs.putInt(\"maxRowsForChecking\", rows);\n    }\n    \n\n    public int getStreamResetBuffer() {\n        return(toolPrefs.getInt(\"streamResetBuffer\", 16384));\n    }\n    \n    public void setStreamResetBuffer(int buffer) {\n        toolPrefs.putInt(\"streamResetBuffer\", buffer);\n    }\n    \n    public boolean getForceLoggcLoading() {\n        return(toolPrefs.getBoolean(\"forceLoggcLoading\", false));\n    }\n    \n    public void setForceLoggcLoading(boolean force) {\n        toolPrefs.putBoolean(\"forceLoggcLoading\", force);\n    }\n    \n    public boolean getJDK16DefaultParsing() {\n        return(toolPrefs.getBoolean(\"jdk16DefaultParsing\", true));\n    }\n    \n    public void setJDK16DefaultParsing(boolean defaultParsing) {\n        toolPrefs.putBoolean(\"jdk16DefaultParsing\", defaultParsing);\n    }\n    \n    public boolean getShowToolbar() {\n        return(toolPrefs.getBoolean(\"showToolbar\", true));\n    }\n    \n    public void setShowToolbar(boolean state) {\n        toolPrefs.putBoolean(\"showToolbar\", state);\n    }\n\n    public String getDateParsingRegex() {\n        return(toolPrefs.get(\"dateParsingRegex\", \"(\\\\d\\\\d\\\\d\\\\d\\\\-\\\\d\\\\d\\\\-\\\\d\\\\d\\\\s\\\\d\\\\d:\\\\d\\\\d:\\\\d\\\\d).*\"));\n    }\n    \n    public void setDateParsingRegex(String dateRegex) {\n        if(dateRegex == null) {\n            // don't save null values.\n            dateRegex = \"\";\n        }\n        toolPrefs.put(\"dateParsingRegex\", dateRegex);\n    }\n    \n    public String[] getDateParsingRegexs() {\n        String elems = toolPrefs.get(\"dateParsingRegexs\", \"(\\\\d\\\\d\\\\d\\\\d\\\\-\\\\d\\\\d\\\\-\\\\d\\\\d\\\\s\\\\d\\\\d:\\\\d\\\\d:\\\\d\\\\d).*\");\n        if(elems.equals(\"\")) {\n            elems = getDateParsingRegex();\n        }\n        return(elems.split(PARAM_DELIM));\n    }\n    \n    public void setDateParsingRegexs(ListModel regexs) {\n        toolPrefs.put(\"dateParsingRegexs\", regexsToString(regexs));\n    }\n    \n    private String regexsToString(ListModel regexs) {\n        StringBuffer elems = new StringBuffer();\n        for(int i = 0; i < regexs.getSize(); i++) {\n            elems.append(regexs.getElementAt(i));\n            if(i+1 < regexs.getSize()) {\n                elems.append(PARAM_DELIM);\n            }\n        }\n        return(elems.toString());\n    }\n    \n    public void addToRecentFiles(String file) {\n        String[] currentFiles = getRecentFiles();\n        \n        // only add files already in it\n        if(!hasInRecentFiles(file, currentFiles)) {\n            int start = currentFiles.length == 10 ? 1 : 0;\n            StringBuffer recentFiles = new StringBuffer();\n            \n            for(int i = start; i < currentFiles.length; i++) {\n                recentFiles.append(currentFiles[i]);\n                recentFiles.append(PARAM_DELIM);\n            }\n            \n            // append new files\n            recentFiles.append(file);\n            toolPrefs.put(\"recentFiles\", recentFiles.toString());\n        }\n    }\n    \n    public void setRecentFiles(String[] files) {\n        StringBuffer recentFiles = new StringBuffer();\n        for (int i = 0; i < files.length; i++) {\n            recentFiles.append(files[i]);\n            if (i + 1 < files.length) {\n                recentFiles.append(PARAM_DELIM);\n            }\n        }\n        toolPrefs.put(\"recentFiles\", recentFiles.toString());\n    }\n\n    public String[] getRecentFiles() {\n        return(toolPrefs.get(\"recentFiles\", \"\").split(PARAM_DELIM));\n    }\n    \n    public void addToRecentSessions(String file) {\n        String[] currentFiles = getRecentSessions();\n        \n        // only add files already in it\n        if(!hasInRecentFiles(file, currentFiles)) {\n            int start = currentFiles.length == 10 ? 1 : 0;\n            StringBuffer recentSessions = new StringBuffer();\n            \n            for(int i = start; i < currentFiles.length; i++) {\n                recentSessions.append(currentFiles[i]);\n                recentSessions.append(PARAM_DELIM);\n            }\n            \n            // append new files\n            recentSessions.append(file);\n            toolPrefs.put(\"recentSessions\", recentSessions.toString());\n        }\n    }\n    \n    public void setRecentSessions(String[] files) {\n        StringBuffer recentSessions = new StringBuffer();\n        for (int i = 0; i < files.length; i++) {\n            recentSessions.append(files[i]);\n            if (i + 1 < files.length) {\n                recentSessions.append(PARAM_DELIM);\n            }\n        }\n        toolPrefs.put(\"recentSessions\", recentSessions.toString());\n    }\n\n    public String[] getRecentSessions() {\n        return(toolPrefs.get(\"recentSessions\", \"\").split(PARAM_DELIM));\n    }\n\n    public void setUseGTKLF(boolean value) {\n        toolPrefs.putBoolean(\"useGTKLF\", value);\n    }\n    \n    public boolean isUseGTKLF() {\n        return(toolPrefs.getBoolean(\"useGTKLF\", System.getProperty(\"os.name\").startsWith(\"Linux\")));\n    }\n    \n    public void setMillisTimeStamp(boolean value) {\n        toolPrefs.putBoolean(\"millisTimeStamp\", value);\n    }\n    \n    public boolean getMillisTimeStamp() {\n        return(toolPrefs.getBoolean(\"millisTimeStamp\", false));\n    }\n    \n    public void setShowHotspotClasses(boolean value) {\n        toolPrefs.putBoolean(\"showHotspotClasses\", value);\n    }\n    \n    public boolean getShowHotspotClasses() {\n        return(toolPrefs.getBoolean(\"showHotspotClasses\", false));\n    }\n    \n    /**\n     * temporary storage for filters to not to have them be parsed again\n     */\n    private final List cachedFilters = new ArrayList();\n    \n    public ListModel getFilters() {\n        DefaultListModel filters = null;\n        if(this.cachedFilters.isEmpty()) {\n            String filterString = toolPrefs.get(\"filters\", \"\");\n            if(filterString.length() > 0) {\n                filters = new DefaultListModel();\n                String[] sFilters = filterString.split(PARAM_DELIM);\n                filters.ensureCapacity(sFilters.length);\n                try {\n                    for(int i = 0; i < sFilters.length; i++) {\n                        String[] filterData = sFilters[i].split(FILTER_SEP);\n                        Filter newFilter = new Filter(filterData[0],\n                                filterData[1], Integer.parseInt(filterData[2]),\n                                filterData[3].equals(\"true\"), filterData[4].equals(\"true\"), filterData[5].equals(\"true\"));\n                        filters.add(i, newFilter);\n                    }\n                } catch (ArrayIndexOutOfBoundsException aioob) {\n                    // fall back to default filters\n                    filters = getPredefinedFilters();\n                }\n\t\t// initialize cached filters\n\t\tsetFilterCache(filters);\n            } else {\n                filters = getPredefinedFilters();\n            }\n        } else {\n\t    // populate filters from cache\n            filters = getCachedFilters();\n        }\n        return(filters);\n    }\n    \n    /**\n     * Populates a new DefaultModelList object with the current list of filters.\n     * \n     * @return populated DefaultModelList object\n     */\n    private DefaultListModel getCachedFilters() {\n        DefaultListModel modelFilters = new DefaultListModel();\n        Iterator it = this.cachedFilters.iterator();\n        while (it.hasNext()) {\n            modelFilters.addElement(it.next());\n        }\n        return modelFilters;\n    }\n\n    /**\n     * Populates the cached filters using a new list of filters.\n     * \n     * @param filters updated list of filters\n     */\n    private void setFilterCache(DefaultListModel filters) {\n        // remove existing filters\n        this.cachedFilters.clear();\n        for (int f = 0; f < filters.size(); f++) {\n            this.cachedFilters.add(filters.get(f));\n        }\n    }\n\n    /**\n     * temporary storage for categories to not to have them be parsed again\n     */\n    private final java.util.List cachedCategories = new ArrayList();\n    \n    /**\n     * get custom categories.\n     * @return list model with custom categories.\n     */\n    public ListModel getCategories() {\n        DefaultListModel categories = null;\n        if (this.cachedCategories.isEmpty()) {\n            String categoryString = toolPrefs.get(\"categories\", \"\");\n            if (categoryString.length() > 0) {\n                categories = new DefaultListModel();\n                String[] sCategories = categoryString.split(PARAM_DELIM);\n                categories.ensureCapacity(sCategories.length);\n                try {\n                    FilterChecker fc = FilterChecker.getFilterChecker();\n                    for (int i = 0; i < sCategories.length; i++) {\n                        String[] catData = sCategories[i].split(FILTER_SEP);\n                        CustomCategory newCat = new CustomCategory(catData[0]);\n                        \n                        for(int j = 1; j < catData.length; j++) {\n                            Filter filter = getFromFilters(catData[j].trim());\n                            if(filter != null) {\n                                newCat.addToFilters(filter);\n                            }\n                        }\n                        categories.add(i, newCat);\n                    }\n                } catch (ArrayIndexOutOfBoundsException aioob) {\n                    System.out.println(\"couldn't parse categories, \" + aioob.getMessage());\n                    aioob.printStackTrace();\n                    // fall back to default categories\n                    categories = new DefaultListModel();\n                }\n                // initialize cache\n                setCategoryCache(categories);\n            } else {\n                categories = new DefaultListModel();\n            }\n        } else {\n            // populate categories from cache\n            categories = getCachedCategories();\n        }\n        return (categories);\n    }\n    \n    /**\n     * Populates a new DefaultModelList object with the current list of\n     * categories.\n     * \n     * @return populated DefaultModelList object\n     */\n    private DefaultListModel getCachedCategories() {\n        DefaultListModel modelFilters = new DefaultListModel();\n        Iterator it = this.cachedCategories.iterator();\n        while (it.hasNext()) {\n            modelFilters.addElement(it.next());\n        }\n        return modelFilters;\n    }\n\n    /**\n     * Populates the cached categories using a new list of categories.\n     * \n     * @param categories\n     *            populated object of {@link CustomCategory} objects\n     */\n    private void setCategoryCache(DefaultListModel categories) {\n        // remove existing categories\n        this.cachedCategories.clear();\n        for (int f = 0; f < categories.size(); f++) {\n            this.cachedCategories.add(categories.get(f));\n        }\n    }\n\n    /**\n     * get filter for given key from filters\n     * @param key filter key to look up\n     * @return filter, null otherwise.\n     */\n    private Filter getFromFilters(String key) {\n        ListModel filters = getFilters();\n        for(int i = 0; i < filters.getSize(); i++) {\n            Filter filter = (Filter) filters.getElementAt(i);\n            if(filter.getName().equals(key)) {\n                return(filter);\n            } \n        }\n        \n        return(null);\n    }\n    \n    /**\n     * generate the default filter set.\n     */\n    private DefaultListModel getPredefinedFilters() {\n        Filter newFilter = new Filter(\"System Thread Exclusion Filter\", \".*at\\\\s.*\", Filter.HAS_IN_STACK_RULE, true, false, false);\n        DefaultListModel filters = new DefaultListModel();\n        filters.ensureCapacity(2);\n        filters.add(0, newFilter);\n        newFilter = new Filter(\"Idle Threads Filter\", \"\", Filter.SLEEPING_RULE, true, true, false);\n        filters.add(1, newFilter);\n        return(filters);\n    }\n    \n    public void setFilters(DefaultListModel filters) {\n        // store into cache\n        StringBuffer filterString = new StringBuffer();\n        for(int i = 0; i < filters.getSize(); i++) {\n            if(i > 0) {\n                filterString.append(PARAM_DELIM);\n            }\n            filterString.append(((Filter)filters.getElementAt(i)).getName());\n            filterString.append(FILTER_SEP);\n            filterString.append(((Filter)filters.getElementAt(i)).getFilterExpression());\n            filterString.append(FILTER_SEP);\n            filterString.append(((Filter)filters.getElementAt(i)).getFilterRule());\n            filterString.append(FILTER_SEP);\n            filterString.append(((Filter)filters.getElementAt(i)).isGeneralFilter());\n            filterString.append(FILTER_SEP);\n            filterString.append(((Filter)filters.getElementAt(i)).isExclusionFilter());\n            filterString.append(FILTER_SEP);\n            filterString.append(((Filter)filters.getElementAt(i)).isEnabled());\n        }\n        toolPrefs.put(\"filters\", filterString.toString());\n\tsetFilterCache(filters);\n        setFilterLastChanged();\n    }\n    \n    /**\n     * store categories\n     * @param categories\n     */\n    public void setCategories(DefaultListModel categories) {\n        // store into cache\n        StringBuffer catString = new StringBuffer();\n        for (int i = 0; i < categories.getSize(); i++) {\n            if (i > 0) {\n                catString.append(PARAM_DELIM);\n            }\n            CustomCategory cat = (CustomCategory) categories.getElementAt(i);\n            catString.append(cat.getName());\n            catString.append(FILTER_SEP);\n            Iterator catIter = cat.iterOfFilters();\n            while ((catIter != null) && (catIter.hasNext())) {\n                Filter filter = (Filter) catIter.next();\n                catString.append(filter.getName());\n                catString.append(FILTER_SEP);\n                \n            }\n        }\n        toolPrefs.put(\"categories\", catString.toString());\n\tsetCategoryCache(categories);\n    }\n\n    \n    private long filterLastChanged = -1;\n    \n    /**\n     * return time stamp of last change time stamp of filter settings\n     */\n    public long getFiltersLastChanged(){\n        return(filterLastChanged);\n    }\n    \n    private void setFilterLastChanged() {\n        filterLastChanged = System.currentTimeMillis();\n    }\n        \n    public void flush() {\n        try {\n            toolPrefs.flush();\n        } catch (BackingStoreException ex) {\n            ex.printStackTrace();\n        }\n    }\n\n    /**\n     * check if new file is in given recent file list\n     */\n    private boolean hasInRecentFiles(String file, String[] currentFiles) {\n        boolean found = false;\n        \n        for(int i = 0; i < currentFiles.length; i++) {\n           if(file.equals(currentFiles[i])) {\n               found = true;\n               break;\n           } \n        }\n        return found;\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/ResourceManager.java",
    "content": "/*\n * To change this template, choose Tools | Templates\n * and open the template in the editor.\n */\n\npackage de.grimmfrost.tda.utils;\n\nimport java.util.ResourceBundle;\n\n/**\n *\n * @author irockel\n */\npublic class ResourceManager {\n    private static ResourceBundle locale;\n    \n    public static String translate(String key) {\n        if(locale == null) {\n            locale = ResourceBundle.getBundle(\"de/grimmfrost/tda/locale\");\n        }\n        \n        return(locale.getString(key));\n    }\n   \n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/StatusBar.java",
    "content": "/*\n * StatusBar.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: StatusBar.java,v 1.5 2008-04-27 20:31:14 irockel Exp $\n */\npackage de.grimmfrost.tda.utils;\n\nimport java.awt.BorderLayout;\nimport java.awt.Color;\nimport java.awt.Component;\nimport java.awt.Dimension;\nimport java.awt.FlowLayout;\nimport java.awt.Graphics;\nimport java.text.NumberFormat;\nimport javax.swing.Icon;\nimport javax.swing.JLabel;\nimport javax.swing.JPanel;\nimport javax.swing.JProgressBar;\n\n/**\n * status bar of tda\n *\n * @author irockel\n */\npublic class StatusBar extends JPanel {\n    private JLabel infoLabel = null;\n    private JProgressBar memStatus = null;\n    private JLabel errorLabel = null;\n    private JLabel errorLabelText = null;\n    private static StatusBar instance = null;\n    \n    /** \n     * Creates a new instance of StatusBar \n     */\n    public StatusBar(boolean showMemory) {\n        super(new BorderLayout());\n        instance = this;\n        add(createInfoPanel(), BorderLayout.WEST);\n        if(showMemory) {\n            JPanel rightPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 5, 0));\n            rightPanel.setOpaque(false);\n            \n            errorLabel = new JLabel(new RedDotIcon());\n            errorLabel.setVisible(false);\n            errorLabel.setToolTipText(\"An error has occurred. Please check the logfile (see README on GitHub for details).\");\n            rightPanel.add(errorLabel);\n\n            errorLabelText = new JLabel(\"Error occurred!\");\n            errorLabelText.setToolTipText(\"An error has occurred. Please check the logfile (see README on GitHub for details).\");\n            errorLabelText.setVisible(false);\n            rightPanel.add(errorLabelText);\n\n            rightPanel.add(createMemoryStatus());\n            \n            JPanel iconPanel = new JPanel(new BorderLayout());\n            iconPanel.add(new JLabel(new AngledLinesWindowsCornerIcon()), BorderLayout.SOUTH);\n            rightPanel.add(iconPanel);\n\n            add(rightPanel, BorderLayout.EAST);\n        } else { // plugin mode\n            setBackground(Color.WHITE);\n        }\n    }\n\n    /**\n     * @return the instance of the status bar.\n     */\n    public static StatusBar getInstance() {\n        return instance;\n    }\n\n    /**\n     * Show the error indicator in the status bar.\n     */\n    public void showErrorIndicator() {\n        if (errorLabel != null) {\n            errorLabel.setVisible(true);\n            errorLabelText.setVisible(true);\n        }\n    }\n    \n    /**\n     * set the info text of the status bar\n     */\n    public void setInfoText(String text) {\n        infoLabel.setText(text);\n    }\n    \n    private JPanel createInfoPanel() {\n        infoLabel = new JLabel(AppInfo.getStatusBarInfo());\n        FlowLayout fl = new FlowLayout(FlowLayout.LEFT);\n        fl.setHgap(5);\n        JPanel infoPanel = new JPanel(fl);\n        infoPanel.setOpaque(false);\n        infoPanel.add(infoLabel);\n        \n        return(infoPanel);\n    }\n    \n    /**\n     * create the memory status panel, also includes a resize icon on the lower right\n     */\n    private JPanel createMemoryStatus() {\n        memStatus = new JProgressBar(0, 100);\n        memStatus.setPreferredSize(new Dimension(100, 15));\n        memStatus.setStringPainted(true);\n        JPanel memPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 0, 0));\n        memPanel.setOpaque(false);\n        memPanel.add(memStatus);\n        \n        // Start Updater\n        new Thread(new MemoryStatusUpdater(memStatus)).start();\n        \n        return memPanel;\n    }\n    \n}\n\n/**\n * simple icon for a red dot\n */\nclass RedDotIcon implements Icon {\n    public int getIconHeight() {\n        return 10;\n    }\n\n    public int getIconWidth() {\n        return 10;\n    }\n\n    public void paintIcon(Component c, Graphics g, int x, int y) {\n        g.setColor(Color.RED);\n        g.fillOval(x, y, 10, 10);\n    }\n}\n\n/**\n * runnable object for running in a background thread to update the memory\n * status of the application\n */\nclass MemoryStatusUpdater implements Runnable {\n    private JProgressBar memStatus = null;\n    private Runtime rt = Runtime.getRuntime();\n\n    private NumberFormat formatter;\n    \n    public MemoryStatusUpdater(JProgressBar memStatus) {\n        this.memStatus = memStatus;\n        this.formatter = NumberFormat.getInstance();\n        formatter.setMaximumFractionDigits(1);\n    }\n    \n    public void run() {\n        try {\n            while(true) {\n                double factor = (double) (int) rt.totalMemory() / 100;\n                int perc = (int) ((rt.totalMemory() - rt.freeMemory()) / factor);\n                memStatus.setValue(perc);\n                double usedMem = (rt.totalMemory() - rt.freeMemory()) / 1024.0 / 1024.0;\n                double totalMem = rt.totalMemory() / 1024.0 / 1024.0;\n                memStatus.setString(formatter.format(usedMem) + \"MB/\" +\n                        formatter.format(totalMem) +\"MB\");\n                memStatus.setToolTipText(memStatus.getString() + \" Memory used.\");\n                Thread.sleep(5000);\n            }\n        } catch (InterruptedException ex) {\n            ex.printStackTrace();\n        }\n    }\n    \n}\n\n/**\n * paint a resize corner icon\n */\nclass AngledLinesWindowsCornerIcon implements Icon {\n    private static final Color WHITE_LINE_COLOR = new Color(255, 255, 255);\n    \n    private static final Color GRAY_LINE_COLOR = new Color(172, 168, 153);\n    private static final int WIDTH = 13;\n    \n    private static final int HEIGHT = 13;\n    \n    public int getIconHeight() {\n        return WIDTH;\n    }\n    \n    public int getIconWidth() {\n        return HEIGHT;\n    }\n    \n    public void paintIcon(Component c, Graphics g, int x, int y) {\n        \n        g.setColor(WHITE_LINE_COLOR);\n        g.drawLine(0, 12, 12, 0);\n        g.drawLine(5, 12, 12, 5);\n        g.drawLine(10, 12, 12, 10);\n        \n        g.setColor(GRAY_LINE_COLOR);\n        g.drawLine(1, 12, 12, 1);\n        g.drawLine(2, 12, 12, 2);\n        g.drawLine(3, 12, 12, 3);\n        \n        g.drawLine(6, 12, 12, 6);\n        g.drawLine(7, 12, 12, 7);\n        g.drawLine(8, 12, 12, 8);\n        \n        g.drawLine(11, 12, 12, 11);\n        g.drawLine(12, 12, 12, 12);\n        \n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/SwingWorker.java",
    "content": "/*\n * SwingWorker.java\n *\n * Thread Dump Analysis Tool, parses Thread Dump input and displays it as tree\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: SwingWorker.java,v 1.1 2006-03-01 11:32:44 irockel Exp $\n */\npackage de.grimmfrost.tda.utils;\n\nimport javax.swing.SwingUtilities;\n\n/**\n * This is the 3rd version of SwingWorker (also known as\n * SwingWorker 3), an abstract class that you subclass to\n * perform GUI-related work in a dedicated thread.  For\n * instructions on and examples of using this class, see:\n * \n * http://java.sun.com/docs/books/tutorial/uiswing/misc/threads.html\n *\n * Note that the API changed slightly in the 3rd version:\n * You must now invoke start() on the SwingWorker after\n * creating it.\n */\npublic abstract class SwingWorker {\n    private Object value;  // see getValue(), setValue()\n\n    /** \n     * Class to maintain reference to current worker thread\n     * under separate synchronization control.\n     */\n    private static class ThreadVar {\n        private Thread thread;\n        ThreadVar(Thread t) { thread = t; }\n        synchronized Thread get() { return thread; }\n        synchronized void clear() { thread = null; }\n    }\n\n    private ThreadVar threadVar;\n\n    /** \n     * Get the value produced by the worker thread, or null if it \n     * hasn't been constructed yet.\n     */\n    protected synchronized Object getValue() { \n        return value; \n    }\n\n    /** \n     * Set the value produced by worker thread \n     */\n    private synchronized void setValue(Object x) { \n        value = x; \n    }\n\n    /** \n     * Compute the value to be returned by the <code>get</code> method. \n     */\n    public abstract Object construct();\n\n    /**\n     * Called on the event dispatching thread (not on the worker thread)\n     * after the <code>construct</code> method has returned.\n     */\n    public void finished() {\n    }\n\n    /**\n     * A new method that interrupts the worker thread.  Call this method\n     * to force the worker to stop what it's doing.\n     */\n    public void interrupt() {\n        Thread t = threadVar.get();\n        if (t != null) {\n            t.interrupt();\n        }\n        threadVar.clear();\n    }\n\n    /**\n     * Return the value created by the <code>construct</code> method.  \n     * Returns null if either the constructing thread or the current\n     * thread was interrupted before a value was produced.\n     * \n     * @return the value created by the <code>construct</code> method\n     */\n    public Object get() {\n        while (true) {  \n            Thread t = threadVar.get();\n            if (t == null) {\n                return getValue();\n            }\n            try {\n                t.join();\n            }\n            catch (InterruptedException e) {\n                Thread.currentThread().interrupt(); // propagate\n                return null;\n            }\n        }\n    }\n\n\n    /**\n     * Start a thread that will call the <code>construct</code> method\n     * and then exit.\n     */\n    public SwingWorker() {\n        final Runnable doFinished = new Runnable() {\n           public void run() { finished(); }\n        };\n\n        Runnable doConstruct = new Runnable() { \n            public void run() {\n                try {\n                    setValue(construct());\n                }\n                finally {\n                    threadVar.clear();\n                }\n\n                SwingUtilities.invokeLater(doFinished);\n            }\n        };\n\n        Thread t = new Thread(doConstruct);\n        threadVar = new ThreadVar(t);\n    }\n\n    /**\n     * Start the worker thread.\n     */\n    public void start() {\n        Thread t = threadVar.get();\n        if (t != null) {\n            t.start();\n        }\n    }\n}"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/TableSorter.java",
    "content": "/*\n * TableSorter.java\n *\n * This class is taken from the java tutorial at java.sun.com with \n * an unkown license.\n *\n * $Id: TableSorter.java,v 1.1 2006-03-01 19:19:38 irockel Exp $\n */\n\npackage de.grimmfrost.tda.utils;\n\nimport java.awt.*;\nimport java.awt.event.*;\nimport java.util.*;\nimport java.util.List;\n\nimport javax.swing.*;\nimport javax.swing.event.TableModelEvent;\nimport javax.swing.event.TableModelListener;\nimport javax.swing.table.*;\n\n/**\n * TableSorter is a decorator for TableModels; adding sorting\n * functionality to a supplied TableModel. TableSorter does\n * not store or copy the data in its TableModel; instead it maintains\n * a map from the row indexes of the view to the row indexes of the\n * model. As requests are made of the sorter (like getValueAt(row, col))\n * they are passed to the underlying model after the row numbers\n * have been translated via the internal mapping array. This way,\n * the TableSorter appears to hold another copy of the table\n * with the rows in a different order.\n *\n * TableSorter registers itself as a listener to the underlying model,\n * just as the JTable itself would. Events recieved from the model\n * are examined, sometimes manipulated (typically widened), and then\n * passed on to the TableSorter's listeners (typically the JTable).\n * If a change to the model has invalidated the order of TableSorter's\n * rows, a note of this is made and the sorter will resort the\n * rows the next time a value is requested.\n *\n * When the tableHeader property is set, either by using the\n * setTableHeader() method or the two argument constructor, the\n * table header may be used as a complete UI for TableSorter.\n * The default renderer of the tableHeader is decorated with a renderer\n * that indicates the sorting status of each column. In addition,\n * a mouse listener is installed with the following behavior:\n * <ul>\n * <li>\n * Mouse-click: Clears the sorting status of all other columns\n * and advances the sorting status of that column through three\n * values: {NOT_SORTED, ASCENDING, DESCENDING} (then back to\n * NOT_SORTED again).\n * <li>\n * SHIFT-mouse-click: Clears the sorting status of all other columns\n * and cycles the sorting status of the column through the same\n * three values, in the opposite order: {NOT_SORTED, DESCENDING, ASCENDING}.\n * <li>\n * CONTROL-mouse-click and CONTROL-SHIFT-mouse-click: as above except\n * that the changes to the column do not cancel the statuses of columns\n * that are already sorting - giving a way to initiate a compound\n * sort.\n * </ul>\n *\n * This is a long overdue rewrite of a class of the same name that\n * first appeared in the swing table demos in 1997.\n * \n * @author Philip Milne\n * @author Brendon McLean \n * @author Dan van Enckevort\n * @author Parwinder Sekhon\n * @version 2.0 02/27/04\n */\n\npublic class TableSorter extends AbstractTableModel {\n    protected TableModel tableModel;\n\n    public static final int DESCENDING = -1;\n    public static final int NOT_SORTED = 0;\n    public static final int ASCENDING = 1;\n\n    private static Directive EMPTY_DIRECTIVE = new Directive(-1, NOT_SORTED);\n\n    public static final Comparator COMPARABLE_COMAPRATOR = new Comparator() {\n        public int compare(Object o1, Object o2) {\n            return ((Comparable) o1).compareTo(o2);\n        }\n    };\n    public static final Comparator LEXICAL_COMPARATOR = new Comparator() {\n        public int compare(Object o1, Object o2) {\n            return o1.toString().compareTo(o2.toString());\n        }\n    };\n\n    private Row[] viewToModel;\n    private int[] modelToView;\n\n    private JTableHeader tableHeader;\n    private MouseListener mouseListener;\n    private TableModelListener tableModelListener;\n    private Map columnComparators = new HashMap();\n    private List sortingColumns = new ArrayList();\n\n    public TableSorter() {\n        this.mouseListener = new MouseHandler();\n        this.tableModelListener = new TableModelHandler();\n    }\n\n    public TableSorter(TableModel tableModel) {\n        this();\n        setTableModel(tableModel);\n    }\n\n    public TableSorter(TableModel tableModel, JTableHeader tableHeader) {\n        this();\n        setTableHeader(tableHeader);\n        setTableModel(tableModel);\n    }\n\n    private void clearSortingState() {\n        viewToModel = null;\n        modelToView = null;\n    }\n\n    public TableModel getTableModel() {\n        return tableModel;\n    }\n\n    public void setTableModel(TableModel tableModel) {\n        if (this.tableModel != null) {\n            this.tableModel.removeTableModelListener(tableModelListener);\n        }\n\n        this.tableModel = tableModel;\n        if (this.tableModel != null) {\n            this.tableModel.addTableModelListener(tableModelListener);\n        }\n\n        clearSortingState();\n        fireTableStructureChanged();\n    }\n\n    public JTableHeader getTableHeader() {\n        return tableHeader;\n    }\n\n    public void setTableHeader(JTableHeader tableHeader) {\n        if (this.tableHeader != null) {\n            this.tableHeader.removeMouseListener(mouseListener);\n            TableCellRenderer defaultRenderer = this.tableHeader.getDefaultRenderer();\n            if (defaultRenderer instanceof SortableHeaderRenderer) {\n                this.tableHeader.setDefaultRenderer(((SortableHeaderRenderer) defaultRenderer).tableCellRenderer);\n            }\n        }\n        this.tableHeader = tableHeader;\n        if (this.tableHeader != null) {\n            this.tableHeader.addMouseListener(mouseListener);\n            this.tableHeader.setDefaultRenderer(\n                    new SortableHeaderRenderer(this.tableHeader.getDefaultRenderer()));\n        }\n    }\n\n    public boolean isSorting() {\n        return sortingColumns.size() != 0;\n    }\n\n    private Directive getDirective(int column) {\n        for (int i = 0; i < sortingColumns.size(); i++) {\n            Directive directive = (Directive)sortingColumns.get(i);\n            if (directive.column == column) {\n                return directive;\n            }\n        }\n        return EMPTY_DIRECTIVE;\n    }\n\n    public int getSortingStatus(int column) {\n        return getDirective(column).direction;\n    }\n\n    private void sortingStatusChanged() {\n        clearSortingState();\n        fireTableDataChanged();\n        if (tableHeader != null) {\n            tableHeader.repaint();\n        }\n    }\n\n    public void setSortingStatus(int column, int status) {\n        Directive directive = getDirective(column);\n        if (directive != EMPTY_DIRECTIVE) {\n            sortingColumns.remove(directive);\n        }\n        if (status != NOT_SORTED) {\n            sortingColumns.add(new Directive(column, status));\n        }\n        sortingStatusChanged();\n    }\n\n    protected Icon getHeaderRendererIcon(int column, int size) {\n        Directive directive = getDirective(column);\n        if (directive == EMPTY_DIRECTIVE) {\n            return null;\n        }\n        return new Arrow(directive.direction == DESCENDING, size, sortingColumns.indexOf(directive));\n    }\n\n    private void cancelSorting() {\n        sortingColumns.clear();\n        sortingStatusChanged();\n    }\n\n    public void setColumnComparator(Class type, Comparator comparator) {\n        if (comparator == null) {\n            columnComparators.remove(type);\n        } else {\n            columnComparators.put(type, comparator);\n        }\n    }\n\n    protected Comparator getComparator(int column) {\n        Class columnType = tableModel.getColumnClass(column);\n        Comparator comparator = (Comparator) columnComparators.get(columnType);\n        if (comparator != null) {\n            return comparator;\n        }\n        if (Comparable.class.isAssignableFrom(columnType)) {\n            return COMPARABLE_COMAPRATOR;\n        }\n        return LEXICAL_COMPARATOR;\n    }\n\n    private Row[] getViewToModel() {\n        if (viewToModel == null) {\n            int tableModelRowCount = tableModel.getRowCount();\n            viewToModel = new Row[tableModelRowCount];\n            for (int row = 0; row < tableModelRowCount; row++) {\n                viewToModel[row] = new Row(row);\n            }\n\n            if (isSorting()) {\n                Arrays.sort(viewToModel);\n            }\n        }\n        return viewToModel;\n    }\n\n    public int modelIndex(int viewIndex) {\n        return getViewToModel()[viewIndex].modelIndex;\n    }\n\n    private int[] getModelToView() {\n        if (modelToView == null) {\n            int n = getViewToModel().length;\n            modelToView = new int[n];\n            for (int i = 0; i < n; i++) {\n                modelToView[modelIndex(i)] = i;\n            }\n        }\n        return modelToView;\n    }\n\n    // TableModel interface methods \n\n    public int getRowCount() {\n        return (tableModel == null) ? 0 : tableModel.getRowCount();\n    }\n\n    public int getColumnCount() {\n        return (tableModel == null) ? 0 : tableModel.getColumnCount();\n    }\n\n    public String getColumnName(int column) {\n        return tableModel.getColumnName(column);\n    }\n\n    public Class getColumnClass(int column) {\n        return tableModel.getColumnClass(column);\n    }\n\n    public boolean isCellEditable(int row, int column) {\n        return tableModel.isCellEditable(modelIndex(row), column);\n    }\n\n    public Object getValueAt(int row, int column) {\n        return tableModel.getValueAt(modelIndex(row), column);\n    }\n\n    public void setValueAt(Object aValue, int row, int column) {\n        tableModel.setValueAt(aValue, modelIndex(row), column);\n    }\n\n    // Helper classes\n    \n    private class Row implements Comparable {\n        private int modelIndex;\n\n        public Row(int index) {\n            this.modelIndex = index;\n        }\n\n        public int compareTo(Object o) {\n            int row1 = modelIndex;\n            int row2 = ((Row) o).modelIndex;\n\n            for (Iterator it = sortingColumns.iterator(); it.hasNext();) {\n                Directive directive = (Directive) it.next();\n                int column = directive.column;\n                Object o1 = tableModel.getValueAt(row1, column);\n                Object o2 = tableModel.getValueAt(row2, column);\n\n                int comparison = 0;\n                // Define null less than everything, except null.\n                if (o1 == null && o2 == null) {\n                    comparison = 0;\n                } else if (o1 == null) {\n                    comparison = -1;\n                } else if (o2 == null) {\n                    comparison = 1;\n                } else {\n                    comparison = getComparator(column).compare(o1, o2);\n                }\n                if (comparison != 0) {\n                    return directive.direction == DESCENDING ? -comparison : comparison;\n                }\n            }\n            return 0;\n        }\n    }\n\n    private class TableModelHandler implements TableModelListener {\n        public void tableChanged(TableModelEvent e) {\n            // If we're not sorting by anything, just pass the event along.             \n            if (!isSorting()) {\n                clearSortingState();\n                fireTableChanged(e);\n                return;\n            }\n                \n            // If the table structure has changed, cancel the sorting; the             \n            // sorting columns may have been either moved or deleted from             \n            // the model. \n            if (e.getFirstRow() == TableModelEvent.HEADER_ROW) {\n                cancelSorting();\n                fireTableChanged(e);\n                return;\n            }\n\n            // We can map a cell event through to the view without widening             \n            // when the following conditions apply: \n            // \n            // a) all the changes are on one row (e.getFirstRow() == e.getLastRow()) and, \n            // b) all the changes are in one column (column != TableModelEvent.ALL_COLUMNS) and,\n            // c) we are not sorting on that column (getSortingStatus(column) == NOT_SORTED) and, \n            // d) a reverse lookup will not trigger a sort (modelToView != null)\n            //\n            // Note: INSERT and DELETE events fail this test as they have column == ALL_COLUMNS.\n            // \n            // The last check, for (modelToView != null) is to see if modelToView \n            // is already allocated. If we don't do this check; sorting can become \n            // a performance bottleneck for applications where cells  \n            // change rapidly in different parts of the table. If cells \n            // change alternately in the sorting column and then outside of             \n            // it this class can end up re-sorting on alternate cell updates - \n            // which can be a performance problem for large tables. The last \n            // clause avoids this problem. \n            int column = e.getColumn();\n            if (e.getFirstRow() == e.getLastRow()\n                    && column != TableModelEvent.ALL_COLUMNS\n                    && getSortingStatus(column) == NOT_SORTED\n                    && modelToView != null) {\n                int viewIndex = getModelToView()[e.getFirstRow()];\n                fireTableChanged(new TableModelEvent(TableSorter.this, \n                                                     viewIndex, viewIndex, \n                                                     column, e.getType()));\n                return;\n            }\n\n            // Something has happened to the data that may have invalidated the row order. \n            clearSortingState();\n            fireTableDataChanged();\n            return;\n        }\n    }\n\n    private class MouseHandler extends MouseAdapter {\n        public void mouseClicked(MouseEvent e) {\n            JTableHeader h = (JTableHeader) e.getSource();\n            TableColumnModel columnModel = h.getColumnModel();\n            int viewColumn = columnModel.getColumnIndexAtX(e.getX());\n            int column = columnModel.getColumn(viewColumn).getModelIndex();\n            if (column != -1) {\n                int status = getSortingStatus(column);\n                if (!e.isControlDown()) {\n                    cancelSorting();\n                }\n                // Cycle the sorting states through {NOT_SORTED, ASCENDING, DESCENDING} or \n                // {NOT_SORTED, DESCENDING, ASCENDING} depending on whether shift is pressed. \n                status = status + (e.isShiftDown() ? -1 : 1);\n                status = (status + 4) % 3 - 1; // signed mod, returning {-1, 0, 1}\n                setSortingStatus(column, status);\n            }\n        }\n    }\n\n    private static class Arrow implements Icon {\n        private boolean descending;\n        private int size;\n        private int priority;\n\n        public Arrow(boolean descending, int size, int priority) {\n            this.descending = descending;\n            this.size = size;\n            this.priority = priority;\n        }\n\n        public void paintIcon(Component c, Graphics g, int x, int y) {\n            Color color = c == null ? Color.GRAY : c.getBackground();             \n            // In a compound sort, make each succesive triangle 20% \n            // smaller than the previous one. \n            int dx = (int)(size/2*Math.pow(0.8, priority));\n            int dy = descending ? dx : -dx;\n            // Align icon (roughly) with font baseline. \n            y = y + 5*size/6 + (descending ? -dy : 0);\n            int shift = descending ? 1 : -1;\n            g.translate(x, y);\n\n            // Right diagonal. \n            g.setColor(color.darker());\n            g.drawLine(dx / 2, dy, 0, 0);\n            g.drawLine(dx / 2, dy + shift, 0, shift);\n            \n            // Left diagonal. \n            g.setColor(color.brighter());\n            g.drawLine(dx / 2, dy, dx, 0);\n            g.drawLine(dx / 2, dy + shift, dx, shift);\n            \n            // Horizontal line. \n            if (descending) {\n                g.setColor(color.darker().darker());\n            } else {\n                g.setColor(color.brighter().brighter());\n            }\n            g.drawLine(dx, 0, 0, 0);\n\n            g.setColor(color);\n            g.translate(-x, -y);\n        }\n\n        public int getIconWidth() {\n            return size;\n        }\n\n        public int getIconHeight() {\n            return size;\n        }\n    }\n\n    private class SortableHeaderRenderer implements TableCellRenderer {\n        private TableCellRenderer tableCellRenderer;\n\n        public SortableHeaderRenderer(TableCellRenderer tableCellRenderer) {\n            this.tableCellRenderer = tableCellRenderer;\n        }\n\n        public Component getTableCellRendererComponent(JTable table, \n                                                       Object value,\n                                                       boolean isSelected, \n                                                       boolean hasFocus,\n                                                       int row, \n                                                       int column) {\n            Component c = tableCellRenderer.getTableCellRendererComponent(table, \n                    value, isSelected, hasFocus, row, column);\n            if (c instanceof JLabel) {\n                JLabel l = (JLabel) c;\n                l.setHorizontalTextPosition(JLabel.LEFT);\n                int modelColumn = table.convertColumnIndexToModel(column);\n                l.setIcon(getHeaderRendererIcon(modelColumn, l.getFont().getSize()));\n            }\n            return c;\n        }\n    }\n\n    private static class Directive {\n        private int column;\n        private int direction;\n\n        public Directive(int column, int direction) {\n            this.column = column;\n            this.direction = direction;\n        }\n    }\n}"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/ThreadsTableModel.java",
    "content": "/*\n * ThreadsTableModel.java\n  *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: ThreadsTableModel.java,v 1.6 2008-04-27 20:31:14 irockel Exp $\n */\npackage de.grimmfrost.tda.utils;\n\nimport de.grimmfrost.tda.model.ThreadInfo;\n\nimport java.util.Vector;\nimport javax.swing.table.AbstractTableModel;\nimport javax.swing.tree.DefaultMutableTreeNode;\n\n/**\n * table model for displaying thread overview.\n * \n * @author irockel\n */\npublic class ThreadsTableModel extends AbstractTableModel {\n    \n    private Vector elements;\n    \n    private String[] columnNames = null;\n    \n    /**\n     * \n     * @param rootNode\n     */\n    public ThreadsTableModel(DefaultMutableTreeNode rootNode) {\n        // transform child nodes in proper vector.\n        if(rootNode != null) {\n            elements = new Vector();\n            for(int i = 0; i < rootNode.getChildCount(); i++) {\n                DefaultMutableTreeNode childNode = (DefaultMutableTreeNode) rootNode.getChildAt(i);\n                elements.add(childNode.getUserObject());\n                ThreadInfo ti = (ThreadInfo) childNode.getUserObject();\n                if(columnNames == null) {\n                    if(ti.getTokens().length > 3) {\n                        columnNames = new String[] {\"Name\", \"Type\", \"Prio\", \"Thread-ID\", \"Native-ID\", \"State\", \"Address Range\"};\n                    } else {\n                        columnNames = new String[] {\"Name\", \"Thread-ID\", \"State\"};\n                    }\n                }\n            }\n        }\n    }\n    \n    public String getColumnName(int col) {\n        return columnNames[col];\n    }\n\n    public int getRowCount() {\n        return(elements.size());\n    }\n\n    public int getColumnCount() {\n        return(columnNames.length);\n    }\n\n    public Object getValueAt(int rowIndex, int columnIndex) {\n        ThreadInfo ti = ((ThreadInfo) elements.elementAt(rowIndex));\n        String[] columns = ti.getTokens();\n        //System.out.println(\"Info: \" + ti.getInfo() + \", rowIndex\"  + rowIndex + \", columnIndex: \" + columnIndex);\n        if(getColumnCount() > 3) {\n            if (columnIndex > 1 && columnIndex < 5) {\n                // Handle null or empty strings safely\n                if (columns[columnIndex] != null && !columns[columnIndex].trim().isEmpty()) {\n                    try {\n                        return new Long(columns[columnIndex]);\n                    } catch (NumberFormatException e) {\n                        return 0L; // Return 0 for invalid numbers\n                    }\n                } else {\n                    return 0L; // Return 0 for null or empty values\n                }\n            } else {\n                return columns[columnIndex] != null ? columns[columnIndex] : \"\";\n            }\n        } else {\n            if (columnIndex == 1) {\n                // Handle null or empty strings safely\n                if (columns[columnIndex] != null && !columns[columnIndex].trim().isEmpty()) {\n                    try {\n                        return new Long(columns[columnIndex]);\n                    } catch (NumberFormatException e) {\n                        return 0L; // Return 0 for invalid numbers\n                    }\n                } else {\n                    return 0L; // Return 0 for null or empty values\n                }\n            } else {\n                return columns[columnIndex] != null ? columns[columnIndex] : \"\";\n            }\n            \n        }\n    }\n    \n    /**\n     * get the thread info object at the specified line\n     * @param rowIndex the row index\n     * @return thread info object at this line.\n     */\n    public ThreadInfo getInfoObjectAtRow(int rowIndex) {\n        return(rowIndex >= 0 && rowIndex < getRowCount() ? (ThreadInfo) elements.get(rowIndex) : null);\n    }\n    \n    /**\n     * {@inheritDoc}\n     */\n    public Class getColumnClass(int columnIndex) {\n        if(columnIndex > 1 && columnIndex < 5) {\n            return Integer.class;\n        } else {\n            return String.class;\n        }\n    }\n    \n    /**\n     * search for the specified (partial) name in thread names\n     * \n     * @param startRow row to start the search\n     * @param name the (partial) name\n     * @return the index of the row or -1 if not found.\n     */\n    public int searchRowWithName(int startRow, String name) {\n        int i = startRow;\n        boolean found = false;\n        while(!found && (i < getRowCount())) {\n            found = getInfoObjectAtRow(i++).getTokens()[0].indexOf(name) >= 0;\n        }\n        \n        return(found ? i-1 : -1);\n    }\n\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/ThreadsTableSelectionModel.java",
    "content": "/*\n * To change this template, choose Tools | Templates\n * and open the template in the editor.\n */\n\npackage de.grimmfrost.tda.utils;\n\nimport javax.swing.DefaultListSelectionModel;\nimport javax.swing.JTable;\n\n/**\n *\n * @author irockel\n */\npublic class ThreadsTableSelectionModel extends DefaultListSelectionModel {\n    private JTable table = null;\n    \n    public ThreadsTableSelectionModel(JTable table) {\n        this.table = table;\n        \n    }\n    \n    public JTable getTable() {\n        return(table);\n    }\n\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/TipOfDay.java",
    "content": "/*\n * TipOfDay.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: TipOfDay.java,v 1.1 2008-09-16 20:46:27 irockel Exp $\n */\npackage de.grimmfrost.tda.utils;\n\nimport de.grimmfrost.tda.TDA;\nimport java.io.IOException;\nimport java.util.Properties;\nimport java.util.Random;\n\n/**\n * read random tip of day from tips.properties.\n * \n * @author irockel\n */\npublic class TipOfDay {\n    private static Properties tips;\n    private static int tipsCount = 0;\n    private static Random rand = new Random();\n        \n    public static String getTipOfDay() {\n        if(tips == null) {\n            loadTips();\n        }\n        return(tips.getProperty(\"tip.\" + (rand.nextInt(tipsCount))));\n    }\n    \n    private static void loadTips() {\n        tips = new Properties();\n        try {\n            tips.load(TDA.class.getResourceAsStream(\"doc/tips.properties\"));\n        } catch (IOException ex) {\n            ex.printStackTrace();\n        }\n        tipsCount = Integer.parseInt(tips.getProperty(\"tips.count\"));\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/TreeRenderer.java",
    "content": "/*\n * TreeRenderer.java\n  *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: TreeRenderer.java,v 1.10 2008-03-13 21:16:08 irockel Exp $\n */\n\npackage de.grimmfrost.tda.utils;\n\nimport de.grimmfrost.tda.*;\nimport de.grimmfrost.tda.model.*;\n\nimport java.awt.Color;\nimport java.awt.Component;\nimport javax.swing.Icon;\nimport javax.swing.JTree;\nimport javax.swing.tree.DefaultMutableTreeNode;\nimport javax.swing.tree.DefaultTreeCellRenderer;\n\n/**\n * adds icons to tda root tree\n * @author irockel\n */\npublic class TreeRenderer extends DefaultTreeCellRenderer {\n\n    public TreeRenderer() {\n       // empty constructor\n    }\n\n    public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel,\n                        boolean expanded, boolean leaf, int row, boolean hasFocus) {\n\n        super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);\n        if (leaf && isCategory(value)) {\n            setIcon(getIconFromCategory(value));\n        } else if (leaf && isThreadInfo(value)) {\n            setIcon(TDA.createImageIcon(\"Thread.png\"));\n        } else if(leaf && isHistogramInfo(value)) {\n            setIcon(TDA.createImageIcon(\"Histogram.png\"));\n        } else if (leaf && isLogfile(value)) {\n            setIcon(TDA.createImageIcon(\"Root.png\"));\n        } else if (leaf && isLogFileContent(value)) {\n            setIcon(TDA.createImageIcon(\"LogfileContent.png\"));\n        } else if(!leaf) {\n            if(((DefaultMutableTreeNode) value).isRoot() || isLogfile(value)) {\n                setIcon(TDA.createImageIcon(\"Root.png\"));\n            } else if(isThreadInfo(value)) {\n                if(((ThreadInfo) ((DefaultMutableTreeNode) value).getUserObject()).areALotOfWaiting()) {\n                    setIcon(TDA.createImageIcon(\"MonitorRed.png\"));\n                } else {\n                    setIcon(TDA.createImageIcon(\"Monitor.png\"));\n                }\n            } else {\n                setIcon(TDA.createImageIcon(\"ThreadDump.png\"));\n            }\n        }\n        this.setBackgroundNonSelectionColor(new Color(0,0,0,0));\n        \n        return this;\n    }\n\n    protected boolean isCategory(Object value) {\n        DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;\n        return(node.getUserObject() instanceof Category);\n    }\n        \n    protected Icon getIconFromCategory(Object value) {\n        DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;\n        Category nodeInfo = (Category) node.getUserObject();\n        \n        return(nodeInfo.getIcon());\n    }    \n\n    private boolean isHistogramInfo(Object value) {\n        DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;\n        return(node.getUserObject() instanceof HistogramInfo);\n    }\n    \n    private boolean isThreadInfo(Object value) {\n        DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;\n        return((node.getUserObject() instanceof ThreadInfo));\n    }\n    \n    private boolean isLogfile(Object value) {\n        DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;\n        return(node.getUserObject() instanceof Logfile);\n    }\n\n    private boolean isLogFileContent(Object value) {\n        DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;\n        return(node.getUserObject() instanceof LogFileContent);\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/ViewScrollPane.java",
    "content": "/*\n * PreferencesDialog.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: ViewScrollPane.java,v 1.1 2008-04-27 20:31:14 irockel Exp $\n */\npackage de.grimmfrost.tda.utils;\n\nimport java.awt.Color;\nimport java.awt.Component;\nimport javax.swing.BorderFactory;\nimport javax.swing.JScrollPane;\n\n/**\n * custom scroll pane to be used in tda for consistent look and feel in the tool.\n * \n * @author irockel\n */\npublic class ViewScrollPane extends JScrollPane {\n    \n    /**\n     * constructor for the view scroll pane\n     * \n     * @param comp the component to wrap into the scroll pane\n     * @param white true, if the scrollpane should be in flat white.\n     */\n    public ViewScrollPane(Component comp, boolean white) {\n        super(comp);\n        if(white) {\n            setOpaque(true);\n            setBorder(BorderFactory.createEmptyBorder());\n            setBackground(Color.WHITE);\n            getHorizontalScrollBar().setBackground(Color.WHITE);\n        }\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/jedit/DefaultInputHandler.java",
    "content": "/*\n * DefaultInputHandler.java - Default implementation of an input handler\n * Copyright (C) 1999 Slava Pestov\n *\n * You may use and modify this package for any purpose. Redistribution is\n * permitted, in both source and binary form, provided that this notice\n * remains intact in all source distributions of this package.\n */\npackage de.grimmfrost.tda.utils.jedit;\n\nimport javax.swing.KeyStroke;\nimport java.awt.event.*;\nimport java.awt.Toolkit;\nimport java.util.Hashtable;\nimport java.util.StringTokenizer;\nimport java.util.Map;\n\n/**\n * The default input handler. It maps sequences of keystrokes into actions\n * and inserts key typed events into the text area.\n * @author Slava Pestov\n * @version $Id: DefaultInputHandler.java,v 1.2 2007-11-09 16:05:46 irockel Exp $\n */\npublic class DefaultInputHandler extends InputHandler {\n    /**\n     * Creates a new input handler with no key bindings defined.\n     */\n    public DefaultInputHandler() {\n        bindings = currentBindings = new Hashtable();\n    }\n\n    /**\n     * Sets up the default key bindings.\n     */\n    public void addDefaultKeyBindings() {\n        addKeyBinding(\"BACK_SPACE\",BACKSPACE);\n        addKeyBinding(\"C+BACK_SPACE\",BACKSPACE_WORD);\n        addKeyBinding(\"DELETE\",DELETE);\n        addKeyBinding(\"C+DELETE\",DELETE_WORD);\n\n        addKeyBinding(\"ENTER\",INSERT_BREAK);\n        addKeyBinding(\"TAB\",INSERT_TAB);\n\n        addKeyBinding(\"INSERT\",OVERWRITE);\n        addKeyBinding(\"C+\\\\\",TOGGLE_RECT);\n\n        addKeyBinding(\"HOME\",HOME);\n        addKeyBinding(\"END\",END);\n        addKeyBinding(\"S+HOME\",SELECT_HOME);\n        addKeyBinding(\"S+END\",SELECT_END);\n        addKeyBinding(\"C+HOME\",DOCUMENT_HOME);\n        addKeyBinding(\"C+END\",DOCUMENT_END);\n        addKeyBinding(\"CS+HOME\",SELECT_DOC_HOME);\n        addKeyBinding(\"CS+END\",SELECT_DOC_END);\n\n        addKeyBinding(\"PAGE_UP\",PREV_PAGE);\n        addKeyBinding(\"PAGE_DOWN\",NEXT_PAGE);\n        addKeyBinding(\"S+PAGE_UP\",SELECT_PREV_PAGE);\n        addKeyBinding(\"S+PAGE_DOWN\",SELECT_NEXT_PAGE);\n\n        addKeyBinding(\"LEFT\",PREV_CHAR);\n        addKeyBinding(\"S+LEFT\",SELECT_PREV_CHAR);\n        addKeyBinding(\"C+LEFT\",PREV_WORD);\n        addKeyBinding(\"CS+LEFT\",SELECT_PREV_WORD);\n        addKeyBinding(\"RIGHT\",NEXT_CHAR);\n        addKeyBinding(\"S+RIGHT\",SELECT_NEXT_CHAR);\n        addKeyBinding(\"C+RIGHT\",NEXT_WORD);\n        addKeyBinding(\"CS+RIGHT\",SELECT_NEXT_WORD);\n        addKeyBinding(\"UP\",PREV_LINE);\n        addKeyBinding(\"S+UP\",SELECT_PREV_LINE);\n        addKeyBinding(\"DOWN\",NEXT_LINE);\n        addKeyBinding(\"S+DOWN\",SELECT_NEXT_LINE);\n\n        addKeyBinding(\"C+ENTER\",REPEAT);\n    }\n\n    /**\n     * add a action listener for a specific key stroke\n     * @param keyStroke key binding to add\n     * @param action action to perform if key is pressed.\n     */\n    public void addKeyBinding(KeyStroke keyStroke, ActionListener action) {\n        Object o = bindings.get(keyStroke);\n        if(o instanceof Map) {\n            ((Map) o).put(keyStroke, action);\n        } else {\n            bindings.put(keyStroke, action);\n        }\n    }\n\n    /**\n     * Adds a key binding to this input handler. The key binding is\n     * a list of white space separated key strokes of the form\n     * <i>[modifiers+]key</i> where modifier is C for Control, A for Alt,\n     * or S for Shift, and key is either a character (a-z) or a field\n     * name in the KeyEvent class prefixed with VK_ (e.g., BACK_SPACE)\n     * @param keyBinding The key binding\n     * @param action The action\n     */\n    public void addKeyBinding(String keyBinding, ActionListener action) {\n        Hashtable current = bindings;\n\n        StringTokenizer st = new StringTokenizer(keyBinding);\n        while(st.hasMoreTokens()) {\n            KeyStroke keyStroke = parseKeyStroke(st.nextToken());\n            if(keyStroke == null)\n                return;\n\n            if(st.hasMoreTokens()) {\n                Object o = current.get(keyStroke);\n                if(o instanceof Hashtable)\n                    current = (Hashtable)o;\n                else {\n                    o = new Hashtable();\n                    current.put(keyStroke,o);\n                    current = (Hashtable)o;\n                }\n            } else\n                current.put(keyStroke,action);\n        }\n    }\n\n    /**\n     * Removes a key binding from this input handler. This is not yet\n     * implemented.\n     * @param keyBinding The key binding\n     */\n    public void removeKeyBinding(String keyBinding) {\n        throw new InternalError(\"Not yet implemented\");\n    }\n\n    /**\n     * Removes all key bindings from this input handler.\n     */\n    public void removeAllKeyBindings() {\n        bindings.clear();\n    }\n\n    /**\n     * Returns a copy of this input handler that shares the same\n     * key bindings. Setting key bindings in the copy will also\n     * set them in the original.\n     */\n    public InputHandler copy() {\n        return new DefaultInputHandler(this);\n    }\n\n    /**\n     * Handle a key pressed event. This will look up the binding for\n     * the key stroke and execute it.\n     */\n    public void keyPressed(KeyEvent evt) {\n        int keyCode = evt.getKeyCode();\n        int modifiers = evt.getModifiers();\n\n        if(keyCode == KeyEvent.VK_CONTROL ||\n                keyCode == KeyEvent.VK_SHIFT ||\n                keyCode == KeyEvent.VK_ALT ||\n                keyCode == KeyEvent.VK_META)\n            return;\n\n        if((modifiers & ~KeyEvent.SHIFT_MASK) != 0\n                || evt.isActionKey()\n                || keyCode == KeyEvent.VK_BACK_SPACE\n                || keyCode == KeyEvent.VK_DELETE\n                || keyCode == KeyEvent.VK_ENTER\n                || keyCode == KeyEvent.VK_TAB\n                || keyCode == KeyEvent.VK_ESCAPE) {\n            if(grabAction != null) {\n                handleGrabAction(evt);\n                return;\n            }\n\n            KeyStroke keyStroke = KeyStroke.getKeyStroke(keyCode,\n                                  modifiers);\n            Object o = currentBindings.get(keyStroke);\n            if(o == null) {\n                // Don't beep if the user presses some\n                // key we don't know about unless a\n                // prefix is active. Otherwise it will\n                // beep when caps lock is pressed, etc.\n                if(currentBindings != bindings) {\n                    Toolkit.getDefaultToolkit().beep();\n                    // F10 should be passed on, but C+e F10\n                    // shouldn't\n                    repeatCount = 0;\n                    repeat = false;\n                    evt.consume();\n                }\n                currentBindings = bindings;\n                return;\n            } else if(o instanceof ActionListener) {\n                currentBindings = bindings;\n\n                executeAction(((ActionListener)o),\n                              evt.getSource(), String.valueOf(evt.getKeyChar()), evt.getModifiers());\n\n                evt.consume();\n                return;\n            } else if(o instanceof Hashtable) {\n                currentBindings = (Hashtable)o;\n                evt.consume();\n                return;\n            }\n        }\n    }\n\n    /**\n     * Handle a key typed event. This inserts the key into the text area.\n     */\n    public void keyTyped(KeyEvent evt) {\n        int modifiers = evt.getModifiers();\n        char c = evt.getKeyChar();\n        if(c != KeyEvent.CHAR_UNDEFINED &&\n                (modifiers & KeyEvent.ALT_MASK) == 0) {\n            if(c >= 0x20 && c != 0x7f) {\n                KeyStroke keyStroke = KeyStroke.getKeyStroke(\n                                          Character.toUpperCase(c));\n                Object o = currentBindings.get(keyStroke);\n\n                if(o instanceof Hashtable) {\n                    currentBindings = (Hashtable)o;\n                    return;\n                } else if(o instanceof ActionListener) {\n                    currentBindings = bindings;\n                    executeAction((ActionListener)o,\n                                  evt.getSource(),\n                                  String.valueOf(c), modifiers);\n                    return;\n                }\n\n                currentBindings = bindings;\n\n                if(grabAction != null) {\n                    handleGrabAction(evt);\n                    return;\n                }\n\n                // 0-9 adds another 'digit' to the repeat number\n                if(repeat && Character.isDigit(c)) {\n                    repeatCount *= 10;\n                    repeatCount += (c - '0');\n                    return;\n                }\n\n                executeAction(INSERT_CHAR,evt.getSource(),\n                              String.valueOf(evt.getKeyChar()), modifiers);\n\n                repeatCount = 0;\n                repeat = false;\n            }\n        }\n    }\n\n    /**\n     * Converts a string to a keystroke. The string should be of the\n     * form <i>modifiers</i>+<i>shortcut</i> where <i>modifiers</i>\n     * is any combination of A for Alt, C for Control, S for Shift\n     * or M for Meta, and <i>shortcut</i> is either a single character,\n     * or a keycode name from the <code>KeyEvent</code> class, without\n     * the <code>VK_</code> prefix.\n     * @param keyStroke A string description of the key stroke\n     */\n    public static KeyStroke parseKeyStroke(String keyStroke) {\n        if(keyStroke == null)\n            return null;\n        int modifiers = 0;\n        int index = keyStroke.indexOf('+');\n        if(index != -1) {\n            for(int i = 0; i < index; i++) {\n                switch(Character.toUpperCase(keyStroke\n                                             .charAt(i))) {\n                case 'A':\n                    modifiers |= InputEvent.ALT_MASK;\n                    break;\n                case 'C':\n                    modifiers |= InputEvent.CTRL_MASK;\n                    break;\n                case 'M':\n                    modifiers |= InputEvent.META_MASK;\n                    break;\n                case 'S':\n                    modifiers |= InputEvent.SHIFT_MASK;\n                    break;\n                }\n            }\n        }\n        String key = keyStroke.substring(index + 1);\n        if(key.length() == 1) {\n            char ch = Character.toUpperCase(key.charAt(0));\n            if(modifiers == 0)\n                return KeyStroke.getKeyStroke(ch);\n            else\n                return KeyStroke.getKeyStroke(ch,modifiers);\n        } else if(key.length() == 0) {\n            System.err.println(\"Invalid key stroke: \" + keyStroke);\n            return null;\n        } else {\n            int ch;\n\n            try {\n                ch = KeyEvent.class.getField(\"VK_\".concat(key))\n                     .getInt(null);\n            } catch(Exception e) {\n                System.err.println(\"Invalid key stroke: \"\n                                   + keyStroke);\n                return null;\n            }\n\n            return KeyStroke.getKeyStroke(ch,modifiers);\n        }\n    }\n\n    // private members\n    private Hashtable bindings;\n    private Hashtable currentBindings;\n\n    private DefaultInputHandler(DefaultInputHandler copy) {\n        bindings = currentBindings = copy.bindings;\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/jedit/InputHandler.java",
    "content": "/*\n * InputHandler.java - Manages key bindings and executes actions\n * Copyright (C) 1999 Slava Pestov\n *\n * You may use and modify this package for any purpose. Redistribution is\n * permitted, in both source and binary form, provided that this notice\n * remains intact in all source distributions of this package.\n */\npackage de.grimmfrost.tda.utils.jedit;\n\nimport javax.swing.text.*;\nimport javax.swing.JPopupMenu;\nimport java.awt.event.*;\nimport java.awt.Component;\nimport java.util.*;\nimport javax.swing.*;\n\n/**\n * An input handler converts the user's key strokes into concrete actions.\n * It also takes care of macro recording and action repetition.<p>\n *\n * This class provides all the necessary support code for an input\n * handler, but doesn't actually do any key binding logic. It is up\n * to the implementations of this class to do so.\n *\n * @author Slava Pestov\n * @version $Id: InputHandler.java,v 1.3 2007-11-09 16:05:46 irockel Exp $\n */\npublic abstract class InputHandler extends KeyAdapter {\n    /**\n     * If this client property is set to Boolean.TRUE on the text area,\n     * the home/end keys will support 'smart' BRIEF-like behaviour\n     * (one press = start/end of line, two presses = start/end of\n     * viewscreen, three presses = start/end of document). By default,\n     * this property is not set.\n     */\n    public static final String SMART_HOME_END_PROPERTY = \"InputHandler.homeEnd\";\n\n    public static final ActionListener BACKSPACE = new backspace();\n    public static final ActionListener BACKSPACE_WORD = new backspace_word();\n    public static final ActionListener DELETE = new delete();\n    public static final ActionListener DELETE_WORD = new delete_word();\n    public static final ActionListener END = new end(false);\n    public static final ActionListener DOCUMENT_END = new document_end(false);\n    public static final ActionListener SELECT_END = new end(true);\n    public static final ActionListener SELECT_DOC_END = new document_end(true);\n    public static final ActionListener INSERT_BREAK = new insert_break();\n    public static final ActionListener INSERT_TAB = new insert_tab();\n    public static final ActionListener HOME = new home(false);\n    public static final ActionListener DOCUMENT_HOME = new document_home(false);\n    public static final ActionListener SELECT_HOME = new home(true);\n    public static final ActionListener SELECT_DOC_HOME = new document_home(true);\n    public static final ActionListener NEXT_CHAR = new next_char(false);\n    public static final ActionListener NEXT_LINE = new next_line(false);\n    public static final ActionListener NEXT_PAGE = new next_page(false);\n    public static final ActionListener NEXT_WORD = new next_word(false);\n    public static final ActionListener SELECT_NEXT_CHAR = new next_char(true);\n    public static final ActionListener SELECT_NEXT_LINE = new next_line(true);\n    public static final ActionListener SELECT_NEXT_PAGE = new next_page(true);\n    public static final ActionListener SELECT_NEXT_WORD = new next_word(true);\n    public static final ActionListener OVERWRITE = new overwrite();\n    public static final ActionListener PREV_CHAR = new prev_char(false);\n    public static final ActionListener PREV_LINE = new prev_line(false);\n    public static final ActionListener PREV_PAGE = new prev_page(false);\n    public static final ActionListener PREV_WORD = new prev_word(false);\n    public static final ActionListener SELECT_PREV_CHAR = new prev_char(true);\n    public static final ActionListener SELECT_PREV_LINE = new prev_line(true);\n    public static final ActionListener SELECT_PREV_PAGE = new prev_page(true);\n    public static final ActionListener SELECT_PREV_WORD = new prev_word(true);\n    public static final ActionListener REPEAT = new repeat();\n    public static final ActionListener TOGGLE_RECT = new toggle_rect();\n\n    // Default action\n    public static final ActionListener INSERT_CHAR = new insert_char();\n\n    private static Hashtable actions;\n\n    static\n    {\n        actions = new Hashtable();\n        actions.put(\"backspace\",BACKSPACE);\n        actions.put(\"backspace-word\",BACKSPACE_WORD);\n        actions.put(\"delete\",DELETE);\n        actions.put(\"delete-word\",DELETE_WORD);\n        actions.put(\"end\",END);\n        actions.put(\"select-end\",SELECT_END);\n        actions.put(\"document-end\",DOCUMENT_END);\n        actions.put(\"select-doc-end\",SELECT_DOC_END);\n        actions.put(\"insert-break\",INSERT_BREAK);\n        actions.put(\"insert-tab\",INSERT_TAB);\n        actions.put(\"home\",HOME);\n        actions.put(\"select-home\",SELECT_HOME);\n        actions.put(\"document-home\",DOCUMENT_HOME);\n        actions.put(\"select-doc-home\",SELECT_DOC_HOME);\n        actions.put(\"next-char\",NEXT_CHAR);\n        actions.put(\"next-line\",NEXT_LINE);\n        actions.put(\"next-page\",NEXT_PAGE);\n        actions.put(\"next-word\",NEXT_WORD);\n        actions.put(\"select-next-char\",SELECT_NEXT_CHAR);\n        actions.put(\"select-next-line\",SELECT_NEXT_LINE);\n        actions.put(\"select-next-page\",SELECT_NEXT_PAGE);\n        actions.put(\"select-next-word\",SELECT_NEXT_WORD);\n        actions.put(\"overwrite\",OVERWRITE);\n        actions.put(\"prev-char\",PREV_CHAR);\n        actions.put(\"prev-line\",PREV_LINE);\n        actions.put(\"prev-page\",PREV_PAGE);\n        actions.put(\"prev-word\",PREV_WORD);\n        actions.put(\"select-prev-char\",SELECT_PREV_CHAR);\n        actions.put(\"select-prev-line\",SELECT_PREV_LINE);\n        actions.put(\"select-prev-page\",SELECT_PREV_PAGE);\n        actions.put(\"select-prev-word\",SELECT_PREV_WORD);\n        actions.put(\"repeat\",REPEAT);\n        actions.put(\"toggle-rect\",TOGGLE_RECT);\n        actions.put(\"insert-char\",INSERT_CHAR);\n    }\n\n    /**\n     * Returns a named text area action.\n     * @param name The action name\n     */\n    public static ActionListener getAction(String name) {\n        return (ActionListener)actions.get(name);\n    }\n\n    /**\n     * Returns the name of the specified text area action.\n     * @param listener The action\n     */\n    public static String getActionName(ActionListener listener) {\n        Enumeration enumActions = getActions();\n        while(enumActions.hasMoreElements()) {\n            String name = (String)enumActions.nextElement();\n            ActionListener _listener = getAction(name);\n            if(_listener == listener)\n                return name;\n        }\n        return null;\n    }\n\n    /**\n     * Returns an enumeration of all available actions.\n     */\n    public static Enumeration getActions() {\n        return actions.keys();\n    }\n\n    /**\n     * Adds the default key bindings to this input handler.\n     * This should not be called in the constructor of this\n     * input handler, because applications might load the\n     * key bindings from a file, etc.\n     */\n    public abstract void addDefaultKeyBindings();\n\n    /**\n     * add a action listener for a specific key stroke\n     * @param keyStroke key binding to add\n     * @param action action to perform if key is pressed.\n     */\n    public abstract void addKeyBinding(KeyStroke keyStroke, ActionListener action);\n\n    /**\n     * Adds a key binding to this input handler.\n     * @param keyBinding The key binding (the format of this is\n     * input-handler specific)\n     * @param action The action\n     */\n    public abstract void addKeyBinding(String keyBinding, ActionListener action);\n\n    /**\n     * Removes a key binding from this input handler.\n     * @param keyBinding The key binding\n     */\n    public abstract void removeKeyBinding(String keyBinding);\n\n    /**\n     * Removes all key bindings from this input handler.\n     */\n    public abstract void removeAllKeyBindings();\n\n    /**\n     * Grabs the next key typed event and invokes the specified\n     * action with the key as a the action command.\n     * @param action The action\n     */\n    public void grabNextKeyStroke(ActionListener action) {\n        grabAction = action;\n    }\n\n    /**\n     * Returns if repeating is enabled. When repeating is enabled,\n     * actions will be executed multiple times. This is usually\n     * invoked with a special key stroke in the input handler.\n     */\n    public boolean isRepeatEnabled() {\n        return repeat;\n    }\n\n    /**\n     * Enables repeating. When repeating is enabled, actions will be\n     * executed multiple times. Once repeating is enabled, the input\n     * handler should read a number from the keyboard.\n     */\n    public void setRepeatEnabled(boolean repeat) {\n        this.repeat = repeat;\n    }\n\n    /**\n     * Returns the number of times the next action will be repeated.\n     */\n    public int getRepeatCount() {\n        return (repeat ? Math.max(1,repeatCount) : 1);\n    }\n\n    /**\n     * Sets the number of times the next action will be repeated.\n     * @param repeatCount The repeat count\n     */\n    public void setRepeatCount(int repeatCount) {\n        this.repeatCount = repeatCount;\n    }\n\n    /**\n     * Returns the macro recorder. If this is non-null, all executed\n     * actions should be forwarded to the recorder.\n     */\n    public InputHandler.MacroRecorder getMacroRecorder() {\n        return recorder;\n    }\n\n    /**\n     * Sets the macro recorder. If this is non-null, all executed\n     * actions should be forwarded to the recorder.\n     * @param recorder The macro recorder\n     */\n    public void setMacroRecorder(InputHandler.MacroRecorder recorder) {\n        this.recorder = recorder;\n    }\n\n    /**\n     * Returns a copy of this input handler that shares the same\n     * key bindings. Setting key bindings in the copy will also\n     * set them in the original.\n     */\n    public abstract InputHandler copy();\n\n    /**\n     * Executes the specified action, repeating and recording it as\n     * necessary.\n     * @param listener The action listener\n     * @param source The event source\n     * @param actionCommand The action command\n     */\n    public void executeAction(ActionListener listener, Object source,\n                              String actionCommand, int modifiers) {\n        // create event\n        ActionEvent evt = new ActionEvent(source,\n                                          ActionEvent.ACTION_PERFORMED,\n                                          actionCommand, modifiers);\n\n        // don't do anything if the action is a wrapper\n        // (like EditAction.Wrapper)\n        if(listener instanceof Wrapper) {\n            listener.actionPerformed(evt);\n            return;\n        }\n\n        // remember old values, in case action changes them\n        boolean _repeat = repeat;\n        int _repeatCount = getRepeatCount();\n\n        // execute the action\n        if(listener instanceof InputHandler.NonRepeatable)\n            listener.actionPerformed(evt);\n        else {\n            for(int i = 0; i < Math.max(1,repeatCount); i++)\n                listener.actionPerformed(evt);\n        }\n\n        // do recording. Notice that we do no recording whatsoever\n        // for actions that grab keys\n        if(grabAction == null) {\n            if(recorder != null) {\n                if(!(listener instanceof InputHandler.NonRecordable)) {\n                    if(_repeatCount != 1)\n                        recorder.actionPerformed(REPEAT,String.valueOf(_repeatCount));\n\n                    recorder.actionPerformed(listener,actionCommand);\n                }\n            }\n\n            // If repeat was true originally, clear it\n            // Otherwise it might have been set by the action, etc\n            if(_repeat) {\n                repeat = false;\n                repeatCount = 0;\n            }\n        }\n    }\n\n    /**\n     * Returns the text area that fired the specified event.\n     * @param evt The event\n     */\n    public static JEditTextArea getTextArea(EventObject evt) {\n        if(evt != null) {\n            Object o = evt.getSource();\n            if(o instanceof Component) {\n                // find the parent text area\n                Component c = (Component)o;\n                for(;;) {\n                    if(c instanceof JEditTextArea)\n                        return (JEditTextArea)c;\n                    else if(c == null)\n                        break;\n                    if(c instanceof JPopupMenu)\n                        c = ((JPopupMenu)c)\n                            .getInvoker();\n                    else\n                        c = c.getParent();\n                }\n            }\n        }\n\n        // this shouldn't happen\n        System.err.println(\"BUG: getTextArea() returning null\");\n        System.err.println(\"Report this to Slava Pestov <sp@gjt.org>\");\n        return null;\n    }\n\n    // protected members\n\n    /**\n     * If a key is being grabbed, this method should be called with\n     * the appropriate key event. It executes the grab action with\n     * the typed character as the parameter.\n     */\n    protected void handleGrabAction(KeyEvent evt) {\n        // Clear it *before* it is executed so that executeAction()\n        // resets the repeat count\n        ActionListener _grabAction = grabAction;\n        grabAction = null;\n        executeAction(_grabAction,evt.getSource(),\n                      String.valueOf(evt.getKeyChar()), evt.getModifiers());\n    }\n\n    // protected members\n    protected ActionListener grabAction;\n    protected boolean repeat;\n    protected int repeatCount;\n    protected InputHandler.MacroRecorder recorder;\n\n    /**\n     * If an action implements this interface, it should not be repeated.\n     * Instead, it will handle the repetition itself.\n     */\n    public interface NonRepeatable {}\n\n    /**\n     * If an action implements this interface, it should not be recorded\n     * by the macro recorder. Instead, it will do its own recording.\n     */\n    public interface NonRecordable {}\n\n    /**\n     * For use by EditAction.Wrapper only.\n     * @since jEdit 2.2final\n     */\n    public interface Wrapper {}\n\n    /**\n     * Macro recorder.\n     */\n    public interface MacroRecorder {\n        void actionPerformed(ActionListener listener,\n                             String actionCommand);\n    }\n\n    public static class backspace implements ActionListener {\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n\n            if(!textArea.isEditable()) {\n                textArea.getToolkit().beep();\n                return;\n            }\n\n            if(textArea.getSelectionStart()\n                    != textArea.getSelectionEnd()) {\n                textArea.setSelectedText(\"\");\n            } else {\n                int caret = textArea.getCaretPosition();\n                if(caret == 0) {\n                    textArea.getToolkit().beep();\n                    return;\n                }\n                try {\n                    textArea.getDocument().remove(caret - 1,1);\n                } catch(BadLocationException bl) {\n                    bl.printStackTrace();\n                }\n            }\n        }\n    }\n\n    public static class backspace_word implements ActionListener {\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            int start = textArea.getSelectionStart();\n            if(start != textArea.getSelectionEnd()) {\n                textArea.setSelectedText(\"\");\n            }\n\n            int line = textArea.getCaretLine();\n            int lineStart = textArea.getLineStartOffset(line);\n            int caret = start - lineStart;\n\n            String lineText = textArea.getLineText(textArea\n                                                   .getCaretLine());\n\n            if(caret == 0) {\n                if(lineStart == 0) {\n                    textArea.getToolkit().beep();\n                    return;\n                }\n                caret--;\n            } else {\n                String noWordSep = (String)textArea.getDocument().getProperty(\"noWordSep\");\n                caret = TextUtilities.findWordStart(lineText,caret,noWordSep);\n            }\n\n            try {\n                textArea.getDocument().remove(\n                    caret + lineStart,\n                    start - (caret + lineStart));\n            } catch(BadLocationException bl) {\n                bl.printStackTrace();\n            }\n        }\n    }\n\n    public static class delete implements ActionListener {\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n\n            if(!textArea.isEditable()) {\n                textArea.getToolkit().beep();\n                return;\n            }\n\n            if(textArea.getSelectionStart()\n                    != textArea.getSelectionEnd()) {\n                textArea.setSelectedText(\"\");\n            } else {\n                int caret = textArea.getCaretPosition();\n                if(caret == textArea.getDocumentLength()) {\n                    textArea.getToolkit().beep();\n                    return;\n                }\n                try {\n                    textArea.getDocument().remove(caret,1);\n                } catch(BadLocationException bl) {\n                    bl.printStackTrace();\n                }\n            }\n        }\n    }\n\n    public static class delete_word implements ActionListener {\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            int start = textArea.getSelectionStart();\n            if(start != textArea.getSelectionEnd()) {\n                textArea.setSelectedText(\"\");\n            }\n\n            int line = textArea.getCaretLine();\n            int lineStart = textArea.getLineStartOffset(line);\n            int caret = start - lineStart;\n\n            String lineText = textArea.getLineText(textArea\n                                                   .getCaretLine());\n\n            if(caret == lineText.length()) {\n                if(lineStart + caret == textArea.getDocumentLength()) {\n                    textArea.getToolkit().beep();\n                    return;\n                }\n                caret++;\n            } else {\n                String noWordSep = (String)textArea.getDocument().getProperty(\"noWordSep\");\n                caret = TextUtilities.findWordEnd(lineText,caret,noWordSep);\n            }\n\n            try {\n                textArea.getDocument().remove(start,\n                                              (caret + lineStart) - start);\n            } catch(BadLocationException bl) {\n                bl.printStackTrace();\n            }\n        }\n    }\n\n    public static class end implements ActionListener {\n        private boolean select;\n\n        public end(boolean select) {\n            this.select = select;\n        }\n\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n\n            int caret = textArea.getCaretPosition();\n\n            int lastOfLine = textArea.getLineEndOffset(\n                                 textArea.getCaretLine()) - 1;\n            int lastVisibleLine = textArea.getFirstLine()\n                                  + textArea.getVisibleLines();\n            if(lastVisibleLine >= textArea.getLineCount()) {\n                lastVisibleLine = Math.min(textArea.getLineCount() - 1,\n                                           lastVisibleLine);\n            } else\n                lastVisibleLine -= (textArea.getElectricScroll() + 1);\n\n            int lastVisible = textArea.getLineEndOffset(lastVisibleLine) - 1;\n            int lastDocument = textArea.getDocumentLength();\n\n            if(caret == lastDocument) {\n                textArea.getToolkit().beep();\n                return;\n            } else if(!Boolean.TRUE.equals(textArea.getClientProperty(\n                                               SMART_HOME_END_PROPERTY)))\n                caret = lastOfLine;\n            else if(caret == lastVisible)\n                caret = lastDocument;\n            else if(caret == lastOfLine)\n                caret = lastVisible;\n            else\n                caret = lastOfLine;\n\n            if(select)\n                textArea.select(textArea.getMarkPosition(),caret);\n            else\n                textArea.setCaretPosition(caret);\n        }\n    }\n\n    public static class document_end implements ActionListener {\n        private boolean select;\n\n        public document_end(boolean select) {\n            this.select = select;\n        }\n\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            if(select)\n                textArea.select(textArea.getMarkPosition(),\n                                textArea.getDocumentLength());\n            else\n                textArea.setCaretPosition(textArea\n                                          .getDocumentLength());\n        }\n    }\n\n    public static class home implements ActionListener {\n        private boolean select;\n\n        public home(boolean select) {\n            this.select = select;\n        }\n\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n\n            int caret = textArea.getCaretPosition();\n\n            int firstLine = textArea.getFirstLine();\n\n            int firstOfLine = textArea.getLineStartOffset(\n                                  textArea.getCaretLine());\n            int firstVisibleLine = (firstLine == 0 ? 0 :\n                                    firstLine + textArea.getElectricScroll());\n            int firstVisible = textArea.getLineStartOffset(\n                                   firstVisibleLine);\n\n            if(caret == 0) {\n                textArea.getToolkit().beep();\n                return;\n            } else if(!Boolean.TRUE.equals(textArea.getClientProperty(\n                                               SMART_HOME_END_PROPERTY)))\n                caret = firstOfLine;\n            else if(caret == firstVisible)\n                caret = 0;\n            else if(caret == firstOfLine)\n                caret = firstVisible;\n            else\n                caret = firstOfLine;\n\n            if(select)\n                textArea.select(textArea.getMarkPosition(),caret);\n            else\n                textArea.setCaretPosition(caret);\n        }\n    }\n\n    public static class document_home implements ActionListener {\n        private boolean select;\n\n        public document_home(boolean select) {\n            this.select = select;\n        }\n\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            if(select)\n                textArea.select(textArea.getMarkPosition(),0);\n            else\n                textArea.setCaretPosition(0);\n        }\n    }\n\n    public static class insert_break implements ActionListener {\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n\n            if(!textArea.isEditable()) {\n                textArea.getToolkit().beep();\n                return;\n            }\n\n            textArea.setSelectedText(\"\\n\");\n        }\n    }\n\n    public static class insert_tab implements ActionListener {\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n\n            if(!textArea.isEditable()) {\n                textArea.getToolkit().beep();\n                return;\n            }\n\n            textArea.overwriteSetSelectedText(\"\\t\");\n        }\n    }\n\n    public static class next_char implements ActionListener {\n        private boolean select;\n\n        public next_char(boolean select) {\n            this.select = select;\n        }\n\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            int caret = textArea.getCaretPosition();\n            if(caret == textArea.getDocumentLength()) {\n                textArea.getToolkit().beep();\n                return;\n            }\n\n            if(select)\n                textArea.select(textArea.getMarkPosition(),\n                                caret + 1);\n            else\n                textArea.setCaretPosition(caret + 1);\n        }\n    }\n\n    public static class next_line implements ActionListener {\n        private boolean select;\n\n        public next_line(boolean select) {\n            this.select = select;\n        }\n\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            int caret = textArea.getCaretPosition();\n            int line = textArea.getCaretLine();\n\n            if(line == textArea.getLineCount() - 1) {\n                textArea.getToolkit().beep();\n                return;\n            }\n\n            int magic = textArea.getMagicCaretPosition();\n            if(magic == -1) {\n                magic = textArea.offsetToX(line,\n                                           caret - textArea.getLineStartOffset(line));\n            }\n\n            caret = textArea.getLineStartOffset(line + 1)\n                    + textArea.xToOffset(line + 1,magic);\n            if(select)\n                textArea.select(textArea.getMarkPosition(),caret);\n            else\n                textArea.setCaretPosition(caret);\n            textArea.setMagicCaretPosition(magic);\n        }\n    }\n\n    public static class next_page implements ActionListener {\n        private boolean select;\n\n        public next_page(boolean select) {\n            this.select = select;\n        }\n\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            int lineCount = textArea.getLineCount();\n            int firstLine = textArea.getFirstLine();\n            int visibleLines = textArea.getVisibleLines();\n            int line = textArea.getCaretLine();\n\n            firstLine += visibleLines;\n\n            if(firstLine + visibleLines >= lineCount - 1)\n                firstLine = lineCount - visibleLines;\n\n            textArea.setFirstLine(firstLine);\n\n            int caret = textArea.getLineStartOffset(\n                            Math.min(textArea.getLineCount() - 1,\n                                     line + visibleLines));\n            if(select)\n                textArea.select(textArea.getMarkPosition(),caret);\n            else\n                textArea.setCaretPosition(caret);\n        }\n    }\n\n    public static class next_word implements ActionListener {\n        private boolean select;\n\n        public next_word(boolean select) {\n            this.select = select;\n        }\n\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            int caret = textArea.getCaretPosition();\n            int line = textArea.getCaretLine();\n            int lineStart = textArea.getLineStartOffset(line);\n            caret -= lineStart;\n\n            String lineText = textArea.getLineText(textArea\n                                                   .getCaretLine());\n\n            if(caret == lineText.length()) {\n                if(lineStart + caret == textArea.getDocumentLength()) {\n                    textArea.getToolkit().beep();\n                    return;\n                }\n                caret++;\n            } else {\n                String noWordSep = (String)textArea.getDocument().getProperty(\"noWordSep\");\n                caret = TextUtilities.findWordEnd(lineText,caret,noWordSep);\n            }\n\n            if(select)\n                textArea.select(textArea.getMarkPosition(),\n                                lineStart + caret);\n            else\n                textArea.setCaretPosition(lineStart + caret);\n        }\n    }\n\n    public static class overwrite implements ActionListener {\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            textArea.setOverwriteEnabled(\n                !textArea.isOverwriteEnabled());\n        }\n    }\n\n    public static class prev_char implements ActionListener {\n        private boolean select;\n\n        public prev_char(boolean select) {\n            this.select = select;\n        }\n\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            int caret = textArea.getCaretPosition();\n            if(caret == 0) {\n                textArea.getToolkit().beep();\n                return;\n            }\n\n            if(select)\n                textArea.select(textArea.getMarkPosition(),\n                                caret - 1);\n            else\n                textArea.setCaretPosition(caret - 1);\n        }\n    }\n\n    public static class prev_line implements ActionListener {\n        private boolean select;\n\n        public prev_line(boolean select) {\n            this.select = select;\n        }\n\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            int caret = textArea.getCaretPosition();\n            int line = textArea.getCaretLine();\n\n            if(line == 0) {\n                textArea.getToolkit().beep();\n                return;\n            }\n\n            int magic = textArea.getMagicCaretPosition();\n            if(magic == -1) {\n                magic = textArea.offsetToX(line,\n                                           caret - textArea.getLineStartOffset(line));\n            }\n\n            caret = textArea.getLineStartOffset(line - 1)\n                    + textArea.xToOffset(line - 1,magic);\n            if(select)\n                textArea.select(textArea.getMarkPosition(),caret);\n            else\n                textArea.setCaretPosition(caret);\n            textArea.setMagicCaretPosition(magic);\n        }\n    }\n\n    public static class prev_page implements ActionListener {\n        private boolean select;\n\n        public prev_page(boolean select) {\n            this.select = select;\n        }\n\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            int firstLine = textArea.getFirstLine();\n            int visibleLines = textArea.getVisibleLines();\n            int line = textArea.getCaretLine();\n\n            if(firstLine < visibleLines)\n                firstLine = visibleLines;\n\n            textArea.setFirstLine(firstLine - visibleLines);\n\n            int caret = textArea.getLineStartOffset(\n                            Math.max(0,line - visibleLines));\n            if(select)\n                textArea.select(textArea.getMarkPosition(),caret);\n            else\n                textArea.setCaretPosition(caret);\n        }\n    }\n\n    public static class prev_word implements ActionListener {\n        private boolean select;\n\n        public prev_word(boolean select) {\n            this.select = select;\n        }\n\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            int caret = textArea.getCaretPosition();\n            int line = textArea.getCaretLine();\n            int lineStart = textArea.getLineStartOffset(line);\n            caret -= lineStart;\n\n            String lineText = textArea.getLineText(textArea\n                                                   .getCaretLine());\n\n            if(caret == 0) {\n                if(lineStart == 0) {\n                    textArea.getToolkit().beep();\n                    return;\n                }\n                caret--;\n            } else {\n                String noWordSep = (String)textArea.getDocument().getProperty(\"noWordSep\");\n                caret = TextUtilities.findWordStart(lineText,caret,noWordSep);\n            }\n\n            if(select)\n                textArea.select(textArea.getMarkPosition(),\n                                lineStart + caret);\n            else\n                textArea.setCaretPosition(lineStart + caret);\n        }\n    }\n\n    public static class repeat implements ActionListener,\n        InputHandler.NonRecordable {\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            textArea.getInputHandler().setRepeatEnabled(true);\n            String actionCommand = evt.getActionCommand();\n            if(actionCommand != null) {\n                textArea.getInputHandler().setRepeatCount(\n                    Integer.parseInt(actionCommand));\n            }\n        }\n    }\n\n    public static class toggle_rect implements ActionListener {\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            textArea.setSelectionRectangular(\n                !textArea.isSelectionRectangular());\n        }\n    }\n\n    public static class insert_char implements ActionListener,\n        InputHandler.NonRepeatable {\n        public void actionPerformed(ActionEvent evt) {\n            JEditTextArea textArea = getTextArea(evt);\n            String str = evt.getActionCommand();\n            int repeatCount = textArea.getInputHandler().getRepeatCount();\n\n            if(textArea.isEditable()) {\n                StringBuffer buf = new StringBuffer();\n                for(int i = 0; i < repeatCount; i++)\n                    buf.append(str);\n                textArea.overwriteSetSelectedText(buf.toString());\n            } else {\n                textArea.getToolkit().beep();\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/jedit/JEditTextArea.java",
    "content": "/*\n * JEditTextArea.java - jEdit's text component\n * Copyright (C) 1999 Slava Pestov\n *\n * You may use and modify this package for any purpose. Redistribution is\n * permitted, in both source and binary form, provided that this notice\n * remains intact in all source distributions of this package.\n */\npackage de.grimmfrost.tda.utils.jedit;\n\nimport javax.swing.event.*;\nimport javax.swing.text.*;\nimport javax.swing.undo.*;\nimport javax.swing.*;\nimport java.awt.datatransfer.*;\nimport java.awt.event.*;\nimport java.awt.*;\nimport java.util.Enumeration;\nimport java.util.Vector;\n\n/**\n * jEdit's text area component. It is more suited for editing program\n * source code than JEditorPane, because it drops the unnecessary features\n * (images, variable-width lines, and so on) and adds a whole bunch of\n * useful goodies such as:\n * <ul>\n * <li>More flexible key binding scheme\n * <li>Supports macro recorders\n * <li>Rectangular selection\n * <li>Bracket highlighting\n * <li>Syntax highlighting\n * <li>Command repetition\n * <li>Block caret can be enabled\n * </ul>\n * It is also faster and doesn't have as many problems. It can be used\n * in other applications; the only other part of jEdit it depends on is\n * the syntax package.<p>\n *\n * To use it in your app, treat it like any other component, for example:\n * <pre>JEditTextArea ta = new JEditTextArea();\n * ta.setTokenMarker(new JavaTokenMarker());\n * ta.setText(\"public class Test {\\n\"\n *     + \"    public static void main(String[] args) {\\n\"\n *     + \"        System.out.println(\\\"Hello World\\\");\\n\"\n *     + \"    }\\n\"\n *     + \"}\");</pre>\n *\n * @author Slava Pestov\n * @version $Id: JEditTextArea.java,v 1.4 2008-04-27 20:31:13 irockel Exp $\n */\npublic class JEditTextArea extends JComponent {\n    /**\n\t * Adding components with this name to the text area will place\n\t * them left of the horizontal scroll bar. In jEdit, the status\n\t * bar is added this way.\n\t */\n\n    public static String LEFT_OF_SCROLLBAR = \"los\";\n\n    /**\n\t * Creates a new JEditTextArea with the default settings.\n\t */\n    public JEditTextArea() {\n        this(TextAreaDefaults.getDefaults());\n    }\n\n    /**\n\t * Creates a new JEditTextArea with the specified settings.\n\t * @param defaults The default settings\n\t */\n    public JEditTextArea(TextAreaDefaults defaults) {\n        // Enable the necessary events\n        enableEvents(AWTEvent.KEY_EVENT_MASK);\n\n        // Initialize some misc. stuff\n        painter = new TextAreaPainter(this, defaults);\n        documentHandler = new DocumentHandler();\n        listenerList = new EventListenerList();\n        caretEvent = new MutableCaretEvent();\n        lineSegment = new Segment();\n        bracketLine = bracketPosition = -1;\n        blink = true;\n\n        // Initialize the GUI\n        setLayout(new ScrollLayout());\n        add(CENTER, painter);\n        add(RIGHT, vertical = new JScrollBar(JScrollBar.VERTICAL));\n        add(BOTTOM, horizontal = new JScrollBar(JScrollBar.HORIZONTAL));\n\n        // Add some event listeners\n        vertical.addAdjustmentListener(new AdjustHandler());\n        horizontal.addAdjustmentListener(new AdjustHandler());\n        painter.addComponentListener(new ComponentHandler());\n        painter.addMouseListener(new MouseHandler());\n        painter.addMouseMotionListener(new DragHandler());\n        painter.addMouseWheelListener(new MouseHandler());\n        addFocusListener(new FocusHandler());\n\n        // Load the defaults\n        setInputHandler(defaults.inputHandler);\n        setDocument(defaults.document);\n        editable = defaults.editable;\n        caretVisible = defaults.caretVisible;\n        caretBlinks = defaults.caretBlinks;\n        electricScroll = defaults.electricScroll;\n\n        popup = defaults.popup;\n\n        // We don't seem to get the initial focus event?\n        focusedComponent = this;\n    }\n\n    /**\n\t * Returns if this component can be traversed by pressing\n\t * the Tab key. This returns false.\n\t */\n    public final boolean isManagingFocus() {\n        return true;\n    }\n\n    /**\n\t * Returns the object responsible for painting this text area.\n\t */\n    public final TextAreaPainter getPainter() {\n        return painter;\n    }\n\n    /**\n\t * Returns the input handler.\n\t */\n    public final InputHandler getInputHandler() {\n        return inputHandler;\n    }\n\n    /**\n\t * Sets the input handler.\n\t * @param inputHandler The new input handler\n\t */\n    public void setInputHandler(InputHandler inputHandler) {\n        this.inputHandler = inputHandler;\n    }\n\n    /**\n\t * Returns true if the caret is blinking, false otherwise.\n\t */\n    public final boolean isCaretBlinkEnabled() {\n        return caretBlinks;\n    }\n\n    /**\n\t * Toggles caret blinking.\n\t * @param caretBlinks True if the caret should blink, false otherwise\n\t */\n    public void setCaretBlinkEnabled(boolean caretBlinks) {\n        this.caretBlinks = caretBlinks;\n        if (!caretBlinks) {\n            blink = false;\n        }\n\n        painter.invalidateSelectedLines();\n    }\n\n    /**\n\t * Returns true if the caret is visible, false otherwise.\n\t */\n    public final boolean isCaretVisible() {\n        return (!caretBlinks || blink) && caretVisible;\n    }\n\n    /**\n\t * Sets if the caret should be visible.\n\t * @param caretVisible True if the caret should be visible, false\n\t * otherwise\n\t */\n    public void setCaretVisible(boolean caretVisible) {\n        this.caretVisible = caretVisible;\n        blink = true;\n\n        painter.invalidateSelectedLines();\n    }\n\n    /**\n\t * Blinks the caret.\n\t */\n    public final void blinkCaret() {\n        if (caretBlinks) {\n            blink = !blink;\n            painter.invalidateSelectedLines();\n        } else {\n            blink = true;\n        }\n    }\n\n    /**\n\t * Returns the number of lines from the top and button of the\n\t * text area that are always visible.\n\t */\n    public final int getElectricScroll() {\n        return electricScroll;\n    }\n\n    /**\n\t * Sets the number of lines from the top and bottom of the text\n\t * area that are always visible\n\t * @param electricScroll The number of lines always visible from\n\t * the top or bottom\n\t */\n    public final void setElectricScroll(int electricScroll) {\n        this.electricScroll = electricScroll;\n    }\n\n    /**\n\t * Updates the state of the scroll bars. This should be called\n\t * if the number of lines in the document changes, or when the\n\t * size of the text are changes.\n\t */\n    public void updateScrollBars() {\n        if (vertical != null && visibleLines != 0) {\n            vertical.setValues(firstLine, visibleLines, 0, getLineCount());\n            vertical.setUnitIncrement(2);\n            vertical.setBlockIncrement(visibleLines);\n        }\n\n        int width = painter.getWidth();\n        if (horizontal != null && width != 0) {\n            horizontal.setValues(-horizontalOffset, width, 0, width * 5);\n            horizontal.setUnitIncrement(painter.getFontMetrics().charWidth('w'));\n            horizontal.setBlockIncrement(width / 2);\n        }\n    }\n\n    /**\n\t * Returns the line displayed at the text area's origin.\n\t */\n    public final int getFirstLine() {\n        return firstLine;\n    }\n\n    /**\n\t * Sets the line displayed at the text area's origin without\n\t * updating the scroll bars.\n\t */\n    public void setFirstLine(int firstLine) {\n        if (firstLine == this.firstLine) {\n            return;\n        }\n        int oldFirstLine = this.firstLine;\n        this.firstLine = firstLine;\n        if (firstLine != vertical.getValue()) {\n            updateScrollBars();\n        }\n        painter.repaint();\n    }\n\n    /**\n\t * Returns the number of lines visible in this text area.\n\t */\n    public final int getVisibleLines() {\n        return visibleLines;\n    }\n\n    /**\n\t * Recalculates the number of visible lines. This should not\n\t * be called directly.\n\t */\n    public final void recalculateVisibleLines() {\n        if (painter == null) {\n            return;\n        }\n        int height = painter.getHeight();\n        int lineHeight = painter.getFontMetrics().getHeight();\n        int oldVisibleLines = visibleLines;\n        visibleLines = height / lineHeight;\n        updateScrollBars();\n    }\n\n    /**\n\t * Returns the horizontal offset of drawn lines.\n\t */\n    public final int getHorizontalOffset() {\n        return horizontalOffset;\n    }\n\n    /**\n\t * Sets the horizontal offset of drawn lines. This can be used to\n\t * implement horizontal scrolling.\n\t * @param horizontalOffset offset The new horizontal offset\n\t */\n    public void setHorizontalOffset(int horizontalOffset) {\n        if (horizontalOffset == this.horizontalOffset) {\n            return;\n        }\n        this.horizontalOffset = horizontalOffset;\n        if (horizontalOffset != horizontal.getValue()) {\n            updateScrollBars();\n        }\n        painter.repaint();\n    }\n\n    /**\n\t * A fast way of changing both the first line and horizontal\n\t * offset.\n\t * @param firstLine The new first line\n\t * @param horizontalOffset The new horizontal offset\n\t * @return True if any of the values were changed, false otherwise\n\t */\n    public boolean setOrigin(int firstLine, int horizontalOffset) {\n        boolean changed = false;\n        int oldFirstLine = this.firstLine;\n\n        if (horizontalOffset != this.horizontalOffset) {\n            this.horizontalOffset = horizontalOffset;\n            changed = true;\n        }\n\n        if (firstLine != this.firstLine) {\n            this.firstLine = firstLine;\n            changed = true;\n        }\n\n        if (changed) {\n            updateScrollBars();\n            painter.repaint();\n        }\n\n        return changed;\n    }\n\n    /**\n\t * Ensures that the caret is visible by scrolling the text area if\n\t * necessary.\n\t * @return True if scrolling was actually performed, false if the\n\t * caret was already visible\n\t */\n    public boolean scrollToCaret() {\n        int line = getCaretLine();\n        int lineStart = getLineStartOffset(line);\n        int offset = Math.max(0, Math.min(getLineLength(line) - 1,\n                getCaretPosition() - lineStart));\n\n        return scrollTo(line, offset);\n    }\n\n    /**\n\t * Ensures that the specified line and offset is visible by scrolling\n\t * the text area if necessary.\n\t * @param line The line to scroll to\n\t * @param offset The offset in the line to scroll to\n\t * @return True if scrolling was actually performed, false if the\n\t * line and offset was already visible\n\t */\n    public boolean scrollTo(int line, int offset) {\n        // visibleLines == 0 before the component is realized\n\t\t// we can't do any proper scrolling then, so we have\n\t\t// this hack...\n        if (visibleLines == 0) {\n            setFirstLine(Math.max(0, line - electricScroll));\n            return true;\n        }\n\n        int newFirstLine = firstLine;\n        int newHorizontalOffset = horizontalOffset;\n\n        if (line < firstLine + electricScroll) {\n            newFirstLine = Math.max(0, line - electricScroll);\n        } else if (line + electricScroll >= firstLine + visibleLines) {\n            newFirstLine = (line - visibleLines) + electricScroll + 1;\n            if (newFirstLine + visibleLines >= getLineCount()) {\n                newFirstLine = getLineCount() - visibleLines;\n            }\n            if (newFirstLine < 0) {\n                newFirstLine = 0;\n            }\n        }\n\n        int x = _offsetToX(line, offset);\n        int width = painter.getFontMetrics().charWidth('w');\n\n        if (x < 0) {\n            newHorizontalOffset = Math.min(0, horizontalOffset - x + width + 5);\n        } else if (x + width >= painter.getWidth()) {\n            newHorizontalOffset = horizontalOffset +\n                    (painter.getWidth() - x) - width - 5;\n        }\n\n        return setOrigin(newFirstLine, newHorizontalOffset);\n    }\n\n    /**\n\t * Converts a line index to a y co-ordinate.\n\t * @param line The line\n\t */\n    public int lineToY(int line) {\n        FontMetrics fm = painter.getFontMetrics();\n        return (line - firstLine) * fm.getHeight() - (fm.getLeading() + fm.getMaxDescent());\n    }\n\n    /**\n\t * Converts a y co-ordinate to a line index.\n\t * @param y The y co-ordinate\n\t */\n    public int yToLine(int y) {\n        FontMetrics fm = painter.getFontMetrics();\n        int height = fm.getHeight();\n        return Math.max(0, Math.min(getLineCount() - 1,\n                y / height + firstLine));\n    }\n\n    /**\n\t * Converts an offset in a line into an x co-ordinate. This is a\n\t * slow version that can be used any time.\n\t * @param line The line\n\t * @param offset The offset, from the start of the line\n\t */\n    public final int offsetToX(int line, int offset) {\n        // don't use cached tokens\n        painter.currentLineTokens = null;\n        return _offsetToX(line, offset);\n    }\n\n    /**\n\t * Converts an offset in a line into an x co-ordinate. This is a\n\t * fast version that should only be used if no changes were made\n\t * to the text since the last repaint.\n\t * @param line The line\n\t * @param offset The offset, from the start of the line\n\t */\n    public int _offsetToX(int line, int offset) {\n        TokenMarker tokenMarker = getTokenMarker();\n\n        /* Use painter's cached info for speed */\n        FontMetrics fm = painter.getFontMetrics();\n\n        getLineText(line, lineSegment);\n\n        int segmentOffset = lineSegment.offset;\n        int x = horizontalOffset;\n\n        /* If syntax coloring is disabled, do simple translation */\n        if (tokenMarker == null) {\n            lineSegment.count = offset;\n            return x + Utilities.getTabbedTextWidth(lineSegment,\n                    fm, x, painter, 0);\n        } /* If syntax coloring is enabled, we have to do this because\n\t\t * tokens can vary in width */ else {\n            Token tokens;\n            if (painter.currentLineIndex == line && painter.currentLineTokens != null) {\n                tokens = painter.currentLineTokens;\n            } else {\n                painter.currentLineIndex = line;\n                tokens = painter.currentLineTokens = tokenMarker.markTokens(lineSegment, line);\n            }\n\n            Toolkit toolkit = painter.getToolkit();\n            Font defaultFont = painter.getFont();\n            SyntaxStyle[] styles = painter.getStyles();\n\n            for (;;) {\n                byte id = tokens.id;\n                if (id == Token.END) {\n                    return x;\n                }\n\n                if (id == Token.NULL) {\n                    fm = painter.getFontMetrics();\n                } else {\n                    fm = styles[id].getFontMetrics(defaultFont);\n                }\n\n                int length = tokens.length;\n\n                if (offset + segmentOffset < lineSegment.offset + length) {\n                    lineSegment.count = offset - (lineSegment.offset - segmentOffset);\n                    return x + Utilities.getTabbedTextWidth(lineSegment, fm, x, painter, 0);\n                } else {\n                    lineSegment.count = length;\n                    x += Utilities.getTabbedTextWidth(lineSegment, fm, x, painter, 0);\n                    lineSegment.offset += length;\n                }\n                tokens = tokens.next;\n            }\n        }\n    }\n\n    /**\n\t * Converts an x co-ordinate to an offset within a line.\n\t * @param line The line\n\t * @param x The x co-ordinate\n\t */\n    public int xToOffset(int line, int x) {\n        TokenMarker tokenMarker = getTokenMarker();\n\n        /* Use painter's cached info for speed */\n        FontMetrics fm = painter.getFontMetrics();\n\n        getLineText(line, lineSegment);\n\n        char[] segmentArray = lineSegment.array;\n        int segmentOffset = lineSegment.offset;\n        int segmentCount = lineSegment.count;\n\n        int width = horizontalOffset;\n\n        if (tokenMarker == null) {\n            for (int i = 0; i < segmentCount; i++) {\n                char c = segmentArray[i + segmentOffset];\n                int charWidth;\n                if (c == '\\t') {\n                    charWidth = (int) painter.nextTabStop(width, i) - width;\n                } else {\n                    charWidth = fm.charWidth(c);\n                }\n\n                if (painter.isBlockCaretEnabled()) {\n                    if (x - charWidth <= width) {\n                        return i;\n                    }\n                } else {\n                    if (x - charWidth / 2 <= width) {\n                        return i;\n                    }\n                }\n\n                width += charWidth;\n            }\n\n            return segmentCount;\n        } else {\n            Token tokens;\n            if (painter.currentLineIndex == line && painter.currentLineTokens != null) {\n                tokens = painter.currentLineTokens;\n            } else {\n                painter.currentLineIndex = line;\n                tokens = painter.currentLineTokens = tokenMarker.markTokens(lineSegment, line);\n            }\n\n            int offset = 0;\n            Toolkit toolkit = painter.getToolkit();\n            Font defaultFont = painter.getFont();\n            SyntaxStyle[] styles = painter.getStyles();\n\n            for (;;) {\n                byte id = tokens.id;\n                if (id == Token.END) {\n                    return offset;\n                }\n\n                if (id == Token.NULL) {\n                    fm = painter.getFontMetrics();\n                } else {\n                    fm = styles[id].getFontMetrics(defaultFont);\n                }\n\n                int length = tokens.length;\n\n                for (int i = 0; i < length; i++) {\n                    char c = segmentArray[segmentOffset + offset + i];\n                    int charWidth;\n                    if (c == '\\t') {\n                        charWidth = (int) painter.nextTabStop(width, offset + i) - width;\n                    } else {\n                        charWidth = fm.charWidth(c);\n                    }\n\n                    if (painter.isBlockCaretEnabled()) {\n                        if (x - charWidth <= width) {\n                            return offset + i;\n                        }\n                    } else {\n                        if (x - charWidth / 2 <= width) {\n                            return offset + i;\n                        }\n                    }\n\n                    width += charWidth;\n                }\n\n                offset += length;\n                tokens = tokens.next;\n            }\n        }\n    }\n\n    /**\n\t * Converts a point to an offset, from the start of the text.\n\t * @param x The x co-ordinate of the point\n\t * @param y The y co-ordinate of the point\n\t */\n    public int xyToOffset(int x, int y) {\n        int line = yToLine(y);\n        int start = getLineStartOffset(line);\n        return start + xToOffset(line, x);\n    }\n\n    /**\n\t * Returns the document this text area is editing.\n\t */\n    public final SyntaxDocument getDocument() {\n        return document;\n    }\n\n    /**\n\t * Sets the document this text area is editing.\n\t * @param document The document\n\t */\n    public void setDocument(SyntaxDocument document) {\n        if (this.document == document) {\n            return;\n        }\n        if (this.document != null) {\n            this.document.removeDocumentListener(documentHandler);\n        }\n        this.document = document;\n\n        document.addDocumentListener(documentHandler);\n\n        select(0, 0);\n        updateScrollBars();\n        painter.repaint();\n    }\n\n    /**\n\t * Returns the document's token marker. Equivalent to calling\n\t * <code>getDocument().getTokenMarker()</code>.\n\t */\n    public final TokenMarker getTokenMarker() {\n        return document.getTokenMarker();\n    }\n\n    /**\n\t * Sets the document's token marker. Equivalent to caling\n\t * <code>getDocument().setTokenMarker()</code>.\n\t * @param tokenMarker The token marker\n\t */\n    public final void setTokenMarker(TokenMarker tokenMarker) {\n        document.setTokenMarker(tokenMarker);\n    }\n\n    /**\n\t * Returns the length of the document. Equivalent to calling\n\t * <code>getDocument().getLength()</code>.\n\t */\n    public final int getDocumentLength() {\n        return document.getLength();\n    }\n\n    /**\n\t * Returns the number of lines in the document.\n\t */\n    public final int getLineCount() {\n        return document.getDefaultRootElement().getElementCount();\n    }\n\n    /**\n\t * Returns the line containing the specified offset.\n\t * @param offset The offset\n\t */\n    public final int getLineOfOffset(int offset) {\n        return document.getDefaultRootElement().getElementIndex(offset);\n    }\n\n    /**\n\t * Returns the start offset of the specified line.\n\t * @param line The line\n\t * @return The start offset of the specified line, or -1 if the line is\n\t * invalid\n\t */\n    public int getLineStartOffset(int line) {\n        Element lineElement = document.getDefaultRootElement().getElement(line);\n        if (lineElement == null) {\n            return -1;\n        } else {\n            return lineElement.getStartOffset();\n        }\n    }\n\n    /**\n\t * Returns the end offset of the specified line.\n\t * @param line The line\n\t * @return The end offset of the specified line, or -1 if the line is\n\t * invalid.\n\t */\n    public int getLineEndOffset(int line) {\n        Element lineElement = document.getDefaultRootElement().getElement(line);\n        if (lineElement == null) {\n            return -1;\n        } else {\n            return lineElement.getEndOffset();\n        }\n    }\n\n    /**\n\t * Returns the length of the specified line.\n\t * @param line The line\n\t */\n    public int getLineLength(int line) {\n        Element lineElement = document.getDefaultRootElement().getElement(line);\n        if (lineElement == null) {\n            return -1;\n        } else {\n            return lineElement.getEndOffset() - lineElement.getStartOffset() - 1;\n        }\n    }\n\n    /**\n\t * Returns the entire text of this text area.\n\t */\n    public String getText() {\n        try {\n            return document.getText(0, document.getLength());\n        } catch (BadLocationException bl) {\n            bl.printStackTrace();\n            return null;\n        }\n    }\n\n    /**\n\t * Sets the entire text of this text area.\n\t */\n    public void setText(String text) {\n        try {\n            document.beginCompoundEdit();\n            document.remove(0, document.getLength());\n            document.insertString(0, text, null);\n        } catch (BadLocationException bl) {\n            bl.printStackTrace();\n        } finally {\n            document.endCompoundEdit();\n        }\n    }\n\n    /**\n\t * Returns the specified substring of the document.\n\t * @param start The start offset\n\t * @param len The length of the substring\n\t * @return The substring, or null if the offsets are invalid\n\t */\n    public final String getText(int start, int len) {\n        try {\n            return document.getText(start, len);\n        } catch (BadLocationException bl) {\n            bl.printStackTrace();\n            return null;\n        }\n    }\n\n    /**\n\t * Copies the specified substring of the document into a segment.\n\t * If the offsets are invalid, the segment will contain a null string.\n\t * @param start The start offset\n\t * @param len The length of the substring\n\t * @param segment The segment\n\t */\n    public final void getText(int start, int len, Segment segment) {\n        try {\n            document.getText(start, len, segment);\n        } catch (BadLocationException bl) {\n            bl.printStackTrace();\n            segment.offset = segment.count = 0;\n        }\n    }\n\n    /**\n\t * Returns the text on the specified line.\n\t * @param lineIndex The line\n\t * @return The text, or null if the line is invalid\n\t */\n    public final String getLineText(int lineIndex) {\n        int start = getLineStartOffset(lineIndex);\n        return getText(start, getLineEndOffset(lineIndex) - start - 1);\n    }\n\n    /**\n\t * Copies the text on the specified line into a segment. If the line\n\t * is invalid, the segment will contain a null string.\n\t * @param lineIndex The line\n\t */\n    public final void getLineText(int lineIndex, Segment segment) {\n        int start = getLineStartOffset(lineIndex);\n        getText(start, getLineEndOffset(lineIndex) - start - 1, segment);\n    }\n\n    /**\n\t * Returns the selection start offset.\n\t */\n    public final int getSelectionStart() {\n        return selectionStart;\n    }\n\n    /**\n\t * Returns the offset where the selection starts on the specified\n\t * line.\n\t */\n    public int getSelectionStart(int line) {\n        if (line == selectionStartLine) {\n            return selectionStart;\n        } else if (rectSelect) {\n            Element map = document.getDefaultRootElement();\n            int start = selectionStart - map.getElement(selectionStartLine).getStartOffset();\n\n            Element lineElement = map.getElement(line);\n            int lineStart = lineElement.getStartOffset();\n            int lineEnd = lineElement.getEndOffset() - 1;\n            return Math.min(lineEnd, lineStart + start);\n        } else {\n            return getLineStartOffset(line);\n        }\n    }\n\n    /**\n\t * Returns the selection start line.\n\t */\n    public final int getSelectionStartLine() {\n        return selectionStartLine;\n    }\n\n    /**\n\t * Sets the selection start. The new selection will be the new\n\t * selection start and the old selection end.\n\t * @param selectionStart The selection start\n\t * @see #select(int,int)\n\t */\n    public final void setSelectionStart(int selectionStart) {\n        select(selectionStart, selectionEnd);\n    }\n\n    /**\n\t * Returns the selection end offset.\n\t */\n    public final int getSelectionEnd() {\n        return selectionEnd;\n    }\n\n    /**\n\t * Returns the offset where the selection ends on the specified\n\t * line.\n\t */\n    public int getSelectionEnd(int line) {\n        if (line == selectionEndLine) {\n            return selectionEnd;\n        } else if (rectSelect) {\n            Element map = document.getDefaultRootElement();\n            int end = selectionEnd - map.getElement(selectionEndLine).getStartOffset();\n\n            Element lineElement = map.getElement(line);\n            int lineStart = lineElement.getStartOffset();\n            int lineEnd = lineElement.getEndOffset() - 1;\n            return Math.min(lineEnd, lineStart + end);\n        } else {\n            return getLineEndOffset(line) - 1;\n        }\n    }\n\n    /**\n\t * Returns the selection end line.\n\t */\n    public final int getSelectionEndLine() {\n        return selectionEndLine;\n    }\n\n    /**\n\t * Sets the selection end. The new selection will be the old\n\t * selection start and the bew selection end.\n\t * @param selectionEnd The selection end\n\t * @see #select(int,int)\n\t */\n    public final void setSelectionEnd(int selectionEnd) {\n        select(selectionStart, selectionEnd);\n    }\n\n    /**\n\t * Returns the caret position. This will either be the selection\n\t * start or the selection end, depending on which direction the\n\t * selection was made in.\n\t */\n    public final int getCaretPosition() {\n        return (biasLeft ? selectionStart : selectionEnd);\n    }\n\n    /**\n\t * Returns the caret line.\n\t */\n    public final int getCaretLine() {\n        return (biasLeft ? selectionStartLine : selectionEndLine);\n    }\n\n    /**\n\t * Returns the mark position. This will be the opposite selection\n\t * bound to the caret position.\n\t * @see #getCaretPosition()\n\t */\n    public final int getMarkPosition() {\n        return (biasLeft ? selectionEnd : selectionStart);\n    }\n\n    /**\n\t * Returns the mark line.\n\t */\n    public final int getMarkLine() {\n        return (biasLeft ? selectionEndLine : selectionStartLine);\n    }\n\n    /**\n\t * Sets the caret position. The new selection will consist of the\n\t * caret position only (hence no text will be selected)\n\t * @param caret The caret position\n\t * @see #select(int,int)\n\t */\n    public final void setCaretPosition(int caret) {\n        select(caret, caret);\n    }\n\n    /**\n\t * Selects all text in the document.\n\t */\n    public final void selectAll() {\n        select(0, getDocumentLength());\n    }\n\n    /**\n\t * Moves the mark to the caret position.\n\t */\n    public final void selectNone() {\n        select(getCaretPosition(), getCaretPosition());\n    }\n\n    /**\n\t * Selects from the start offset to the end offset. This is the\n\t * general selection method used by all other selecting methods.\n\t * The caret position will be start if start &lt; end, and end\n\t * if end &gt; start.\n\t * @param start The start offset\n\t * @param end The end offset\n\t */\n    public void select(int start, int end) {\n        int newStart,\n         newEnd;\n        boolean newBias;\n        if (start <= end) {\n            newStart = start;\n            newEnd = end;\n            newBias = false;\n        } else {\n            newStart = end;\n            newEnd = start;\n            newBias = true;\n        }\n\n        if (newStart < 0 || newEnd > getDocumentLength()) {\n            throw new IllegalArgumentException(\"Bounds out of\" + \" range: \" + newStart + \",\" +\n                    newEnd);\n        }\n\n        // If the new position is the same as the old, we don't\n\t\t// do all this crap, however we still do the stuff at\n\t\t// the end (clearing magic position, scrolling)\n        if (newStart != selectionStart || newEnd != selectionEnd || newBias != biasLeft) {\n            int newStartLine = getLineOfOffset(newStart);\n            int newEndLine = getLineOfOffset(newEnd);\n\n            if (painter.isBracketHighlightEnabled()) {\n                if (bracketLine != -1) {\n                    painter.invalidateLine(bracketLine);\n                }\n                updateBracketHighlight(end);\n                if (bracketLine != -1) {\n                    painter.invalidateLine(bracketLine);\n                }\n            }\n\n            painter.invalidateLineRange(selectionStartLine, selectionEndLine);\n            painter.invalidateLineRange(newStartLine, newEndLine);\n\n            document.addUndoableEdit(new CaretUndo(selectionStart, selectionEnd));\n\n            selectionStart = newStart;\n            selectionEnd = newEnd;\n            selectionStartLine = newStartLine;\n            selectionEndLine = newEndLine;\n            biasLeft = newBias;\n\n            fireCaretEvent();\n        }\n\n        // When the user is typing, etc, we don't want the caret\n\t\t// to blink\n        blink = true;\n        caretTimer.restart();\n\n        // Disable rectangle select if selection start = selection end\n        if (selectionStart == selectionEnd) {\n            rectSelect = false;\n        }\n\n        // Clear the `magic' caret position used by up/down\n        magicCaret = -1;\n\n        scrollToCaret();\n    }\n\n    /**\n\t * Returns the selected text, or null if no selection is active.\n\t */\n    public final String getSelectedText() {\n        if (selectionStart == selectionEnd) {\n            return null;\n        }\n\n        if (rectSelect) {\n            // Return each row of the selection on a new line\n\n            Element map = document.getDefaultRootElement();\n\n            int start = selectionStart - map.getElement(selectionStartLine).getStartOffset();\n            int end = selectionEnd - map.getElement(selectionEndLine).getStartOffset();\n\n            // Certain rectangles satisfy this condition...\n            if (end < start) {\n                int tmp = end;\n                end = start;\n                start = tmp;\n            }\n\n            StringBuffer buf = new StringBuffer();\n            Segment seg = new Segment();\n\n            for (int i = selectionStartLine; i <= selectionEndLine; i++) {\n                Element lineElement = map.getElement(i);\n                int lineStart = lineElement.getStartOffset();\n                int lineEnd = lineElement.getEndOffset() - 1;\n                int lineLen = lineEnd - lineStart;\n\n                lineStart = Math.min(lineStart + start, lineEnd);\n                lineLen = Math.min(end - start, lineEnd - lineStart);\n\n                getText(lineStart, lineLen, seg);\n                buf.append(seg.array, seg.offset, seg.count);\n\n                if (i != selectionEndLine) {\n                    buf.append('\\n');\n                }\n            }\n\n            return buf.toString();\n        } else {\n            return getText(selectionStart,\n                    selectionEnd - selectionStart);\n        }\n    }\n\n    /**\n\t * Replaces the selection with the specified text.\n\t * @param selectedText The replacement text for the selection\n\t */\n    public void setSelectedText(String selectedText) {\n        if (!editable) {\n            throw new InternalError(\"Text component\" + \" read only\");\n        }\n\n        document.beginCompoundEdit();\n\n        try {\n            if (rectSelect) {\n                Element map = document.getDefaultRootElement();\n\n                int start = selectionStart - map.getElement(selectionStartLine).getStartOffset();\n                int end = selectionEnd - map.getElement(selectionEndLine).getStartOffset();\n\n                // Certain rectangles satisfy this condition...\n                if (end < start) {\n                    int tmp = end;\n                    end = start;\n                    start = tmp;\n                }\n\n                int lastNewline = 0;\n                int currNewline = 0;\n\n                for (int i = selectionStartLine; i <= selectionEndLine; i++) {\n                    Element lineElement = map.getElement(i);\n                    int lineStart = lineElement.getStartOffset();\n                    int lineEnd = lineElement.getEndOffset() - 1;\n                    int rectStart = Math.min(lineEnd, lineStart + start);\n\n                    document.remove(rectStart, Math.min(lineEnd - rectStart,\n                            end - start));\n\n                    if (selectedText == null) {\n                        continue;\n                    }\n\n                    currNewline = selectedText.indexOf('\\n', lastNewline);\n                    if (currNewline == -1) {\n                        currNewline = selectedText.length();\n                    }\n\n                    document.insertString(rectStart, selectedText.substring(lastNewline, currNewline), null);\n\n                    lastNewline = Math.min(selectedText.length(),\n                            currNewline + 1);\n                }\n\n                if (selectedText != null &&\n                        currNewline != selectedText.length()) {\n                    int offset = map.getElement(selectionEndLine).getEndOffset() - 1;\n                    document.insertString(offset, \"\\n\", null);\n                    document.insertString(offset + 1, selectedText.substring(currNewline + 1), null);\n                }\n            } else {\n                document.remove(selectionStart,\n                        selectionEnd - selectionStart);\n                if (selectedText != null) {\n                    document.insertString(selectionStart,\n                            selectedText, null);\n                }\n            }\n        } catch (BadLocationException bl) {\n            bl.printStackTrace();\n            throw new InternalError(\"Cannot replace\" + \" selection\");\n        } // No matter what happends... stops us from leaving document\n        // in a bad state\n        finally {\n            document.endCompoundEdit();\n        }\n\n        setCaretPosition(selectionEnd);\n    }\n\n    /**\n\t * Returns true if this text area is editable, false otherwise.\n\t */\n    public final boolean isEditable() {\n        return editable;\n    }\n\n    /**\n\t * Sets if this component is editable.\n\t * @param editable True if this text area should be editable,\n\t * false otherwise\n\t */\n    public final void setEditable(boolean editable) {\n        this.editable = editable;\n    }\n\n    /**\n\t * Returns the right click popup menu.\n\t */\n    public final JPopupMenu getRightClickPopup() {\n        return popup;\n    }\n\n    /**\n\t * Sets the right click popup menu.\n\t * @param popup The popup\n\t */\n    public final void setRightClickPopup(JPopupMenu popup) {\n        this.popup = popup;\n    }\n\n    /**\n\t * Returns the `magic' caret position. This can be used to preserve\n\t * the column position when moving up and down lines.\n\t */\n    public final int getMagicCaretPosition() {\n        return magicCaret;\n    }\n\n    /**\n\t * Sets the `magic' caret position. This can be used to preserve\n\t * the column position when moving up and down lines.\n\t * @param magicCaret The magic caret position\n\t */\n    public final void setMagicCaretPosition(int magicCaret) {\n        this.magicCaret = magicCaret;\n    }\n\n    /**\n\t * Similar to <code>setSelectedText()</code>, but overstrikes the\n\t * appropriate number of characters if overwrite mode is enabled.\n\t * @param str The string\n\t * @see #setSelectedText(String)\n\t * @see #isOverwriteEnabled()\n\t */\n    public void overwriteSetSelectedText(String str) {\n        // Don't overstrike if there is a selection\n        if (!overwrite || selectionStart != selectionEnd) {\n            setSelectedText(str);\n            return;\n        }\n\n        // Don't overstrike if we're on the end of\n\t\t// the line\n        int caret = getCaretPosition();\n        int caretLineEnd = getLineEndOffset(getCaretLine());\n        if (caretLineEnd - caret <= str.length()) {\n            setSelectedText(str);\n            return;\n        }\n\n        document.beginCompoundEdit();\n\n        try {\n            document.remove(caret, str.length());\n            document.insertString(caret, str, null);\n        } catch (BadLocationException bl) {\n            bl.printStackTrace();\n        } finally {\n            document.endCompoundEdit();\n        }\n    }\n\n    /**\n\t * Returns true if overwrite mode is enabled, false otherwise.\n\t */\n    public final boolean isOverwriteEnabled() {\n        return overwrite;\n    }\n\n    /**\n\t * Sets if overwrite mode should be enabled.\n\t * @param overwrite True if overwrite mode should be enabled,\n\t * false otherwise.\n\t */\n    public final void setOverwriteEnabled(boolean overwrite) {\n        this.overwrite = overwrite;\n        painter.invalidateSelectedLines();\n    }\n\n    /**\n\t * Returns true if the selection is rectangular, false otherwise.\n\t */\n    public final boolean isSelectionRectangular() {\n        return rectSelect;\n    }\n\n    /**\n\t * Sets if the selection should be rectangular.\n\t * @param rectSelect True if the selection should be rectangular,\n\t * false otherwise.\n\t */\n    public final void setSelectionRectangular(boolean rectSelect) {\n        this.rectSelect = rectSelect;\n        painter.invalidateSelectedLines();\n    }\n\n    /**\n\t * Returns the position of the highlighted bracket (the bracket\n\t * matching the one before the caret)\n\t */\n    public final int getBracketPosition() {\n        return bracketPosition;\n    }\n\n    /**\n\t * Returns the line of the highlighted bracket (the bracket\n\t * matching the one before the caret)\n\t */\n    public final int getBracketLine() {\n        return bracketLine;\n    }\n\n    /**\n\t * Adds a caret change listener to this text area.\n\t * @param listener The listener\n\t */\n    public final void addCaretListener(CaretListener listener) {\n        listenerList.add(CaretListener.class, listener);\n    }\n\n    /**\n\t * Removes a caret change listener from this text area.\n\t * @param listener The listener\n\t */\n    public final void removeCaretListener(CaretListener listener) {\n        listenerList.remove(CaretListener.class, listener);\n    }\n\n    /**\n\t * Deletes the selected text from the text area and places it\n\t * into the clipboard.\n\t */\n    public void cut() {\n        if (editable) {\n            copy();\n            setSelectedText(\"\");\n        }\n    }\n\n    /**\n\t * Places the selected text into the clipboard.\n\t */\n    public void copy() {\n        if (selectionStart != selectionEnd) {\n            Clipboard clipboard = getToolkit().getSystemClipboard();\n\n            String selection = getSelectedText();\n\n            int repeatCount = inputHandler.getRepeatCount();\n            StringBuffer buf = new StringBuffer();\n            for (int i = 0; i < repeatCount; i++) {\n                buf.append(selection);\n            }\n\n            clipboard.setContents(new StringSelection(buf.toString()), null);\n        }\n    }\n\n    /**\n\t * Inserts the clipboard contents into the text.\n\t */\n    public void paste() {\n        if (editable) {\n            Clipboard clipboard = getToolkit().getSystemClipboard();\n            try {\n                // The MacOS MRJ doesn't convert \\r to \\n,\n\t\t\t\t// so do it here\n                String selection = ((String) clipboard.getContents(this).getTransferData(DataFlavor.stringFlavor)).replace('\\r', '\\n');\n\n                int repeatCount = inputHandler.getRepeatCount();\n                StringBuffer buf = new StringBuffer();\n                for (int i = 0; i < repeatCount; i++) {\n                    buf.append(selection);\n                }\n                selection = buf.toString();\n                setSelectedText(selection);\n            } catch (Exception e) {\n                getToolkit().beep();\n                System.err.println(\"Clipboard does not\" + \" contain a string\");\n            }\n        }\n    }\n\n    /**\n\t * Called by the AWT when this component is removed from it's parent.\n\t * This stops clears the currently focused component.\n\t */\n    public void removeNotify() {\n        super.removeNotify();\n        if (focusedComponent == this) {\n            focusedComponent = null;\n        }\n    }\n\n    /**\n\t * Forwards key events directly to the input handler.\n\t * This is slightly faster than using a KeyListener\n\t * because some Swing overhead is avoided.\n\t */\n    public void processKeyEvent(KeyEvent evt) {\n        if (inputHandler == null) {\n            return;\n        }\n        switch (evt.getID()) {\n            case KeyEvent.KEY_TYPED:\n                inputHandler.keyTyped(evt);\n                break;\n            case KeyEvent.KEY_PRESSED:\n                inputHandler.keyPressed(evt);\n                break;\n            case KeyEvent.KEY_RELEASED:\n                inputHandler.keyReleased(evt);\n                break;\n        }\n    }\n\n    // protected members\n\n    protected static String CENTER = \"center\";\n    protected static String RIGHT = \"right\";\n    protected static String BOTTOM = \"bottom\";\n    protected JEditTextArea focusedComponent;\n    protected Timer caretTimer;\n    protected TextAreaPainter painter;\n    protected JPopupMenu popup;\n    protected EventListenerList listenerList;\n    protected MutableCaretEvent caretEvent;\n    protected boolean caretBlinks;\n    protected boolean caretVisible;\n    protected boolean blink;\n    protected boolean editable;\n    protected int firstLine;\n    protected int visibleLines;\n    protected int electricScroll;\n    protected int horizontalOffset;\n    protected JScrollBar vertical;\n    protected JScrollBar horizontal;\n    protected boolean scrollBarsInitialized;\n    protected InputHandler inputHandler;\n    protected SyntaxDocument document;\n    protected DocumentHandler documentHandler;\n    protected Segment lineSegment;\n    protected int selectionStart;\n    protected int selectionStartLine;\n    protected int selectionEnd;\n    protected int selectionEndLine;\n    protected boolean biasLeft;\n    protected int bracketPosition;\n    protected int bracketLine;\n    protected int magicCaret;\n    protected boolean overwrite;\n    protected boolean rectSelect;\n\n    protected void fireCaretEvent() {\n        Object[] listeners = listenerList.getListenerList();\n        for (int i = listeners.length - 2; i >= 0; i--) {\n            if (listeners[i] == CaretListener.class) {\n                ((CaretListener) listeners[i + 1]).caretUpdate(caretEvent);\n            }\n        }\n    }\n\n    protected void updateBracketHighlight(int newCaretPosition) {\n        if (newCaretPosition == 0) {\n            bracketPosition = bracketLine = -1;\n            return;\n        }\n\n        try {\n            int offset = TextUtilities.findMatchingBracket(document, newCaretPosition - 1);\n            if (offset != -1) {\n                bracketLine = getLineOfOffset(offset);\n                bracketPosition = offset - getLineStartOffset(bracketLine);\n                return;\n            }\n        } catch (BadLocationException bl) {\n            bl.printStackTrace();\n        }\n\n        bracketLine = bracketPosition = -1;\n    }\n\n    protected void documentChanged(DocumentEvent evt) {\n        DocumentEvent.ElementChange ch = evt.getChange(document.getDefaultRootElement());\n\n        int count;\n        if (ch == null) {\n            count = 0;\n        } else {\n            count = ch.getChildrenAdded().length -\n                    ch.getChildrenRemoved().length;\n        }\n\n        int line = getLineOfOffset(evt.getOffset());\n        if (count == 0) {\n            painter.invalidateLine(line);\n        } // do magic stuff\n        else if (line < firstLine) {\n            setFirstLine(firstLine + count);\n        } // end of magic stuff\n        else {\n            painter.invalidateLineRange(line, firstLine + visibleLines);\n            updateScrollBars();\n        }\n    }\n\n    class ScrollLayout implements LayoutManager {\n\n        public void addLayoutComponent(String name, Component comp) {\n            if (name.equals(CENTER)) {\n                center = comp;\n            } else if (name.equals(RIGHT)) {\n                right = comp;\n            } else if (name.equals(BOTTOM)) {\n                bottom = comp;\n            } else if (name.equals(LEFT_OF_SCROLLBAR)) {\n                leftOfScrollBar.addElement(comp);\n            }\n        }\n\n        public void removeLayoutComponent(Component comp) {\n            if (center == comp) {\n                center = null;\n            }\n            if (right == comp) {\n                right = null;\n            }\n            if (bottom == comp) {\n                bottom = null;\n            } else {\n                leftOfScrollBar.removeElement(comp);\n            }\n        }\n\n        public Dimension preferredLayoutSize(Container parent) {\n            Dimension dim = new Dimension();\n            Insets insets = getInsets();\n            dim.width = insets.left + insets.right;\n            dim.height = insets.top + insets.bottom;\n\n            Dimension centerPref = center.getPreferredSize();\n            dim.width += centerPref.width;\n            dim.height += centerPref.height;\n            Dimension rightPref = right.getPreferredSize();\n            dim.width += rightPref.width;\n            Dimension bottomPref = bottom.getPreferredSize();\n            dim.height += bottomPref.height;\n\n            return dim;\n        }\n\n        public Dimension minimumLayoutSize(Container parent) {\n            Dimension dim = new Dimension();\n            Insets insets = getInsets();\n            dim.width = insets.left + insets.right;\n            dim.height = insets.top + insets.bottom;\n\n            Dimension centerPref = center.getMinimumSize();\n            dim.width += centerPref.width;\n            dim.height += centerPref.height;\n            Dimension rightPref = right.getMinimumSize();\n            dim.width += rightPref.width;\n            Dimension bottomPref = bottom.getMinimumSize();\n            dim.height += bottomPref.height;\n\n            return dim;\n        }\n\n        public void layoutContainer(Container parent) {\n            Dimension size = parent.getSize();\n            Insets insets = parent.getInsets();\n            int itop = insets.top;\n            int ileft = insets.left;\n            int ibottom = insets.bottom;\n            int iright = insets.right;\n\n            int rightWidth = right.getPreferredSize().width;\n            int bottomHeight = bottom.getPreferredSize().height;\n            int centerWidth = size.width - rightWidth - ileft - iright;\n            int centerHeight = size.height - bottomHeight - itop - ibottom;\n\n            center.setBounds(ileft,\n                    itop,\n                    centerWidth,\n                    centerHeight);\n\n            right.setBounds(ileft + centerWidth,\n                    itop,\n                    rightWidth,\n                    centerHeight);\n\n            // Lay out all status components, in order\n            Enumeration status = leftOfScrollBar.elements();\n            while (status.hasMoreElements()) {\n                Component comp = (Component) status.nextElement();\n                Dimension dim = comp.getPreferredSize();\n                comp.setBounds(ileft,\n                        itop + centerHeight,\n                        dim.width,\n                        bottomHeight);\n                ileft += dim.width;\n            }\n\n            bottom.setBounds(ileft,\n                    itop + centerHeight,\n                    size.width - rightWidth - ileft - iright,\n                    bottomHeight);\n        }\n\n        // private members\n\n        private Component center;\n        private Component right;\n        private Component bottom;\n        private Vector leftOfScrollBar = new Vector();\n    }\n\n    class CaretBlinker implements ActionListener {\n\n        public void actionPerformed(ActionEvent evt) {\n            if (focusedComponent != null && focusedComponent.hasFocus()) {\n                focusedComponent.blinkCaret();\n            }\n        }\n    }\n\n    class MutableCaretEvent extends CaretEvent {\n\n        MutableCaretEvent() {\n            super(JEditTextArea.this);\n        }\n\n        public int getDot() {\n            return getCaretPosition();\n        }\n\n        public int getMark() {\n            return getMarkPosition();\n        }\n    }\n\n    class AdjustHandler implements AdjustmentListener {\n\n        public void adjustmentValueChanged(final AdjustmentEvent evt) {\n            if (!scrollBarsInitialized) {\n                return;\n            }\n\n            // If this is not done, mousePressed events accumilate\n\t\t\t// and the result is that scrolling doesn't stop after\n\t\t\t// the mouse is released\n            SwingUtilities.invokeLater(new Runnable() {\n\n                        public void run() {\n                            if (evt.getAdjustable() == vertical) {\n                                setFirstLine(vertical.getValue());\n                            } else {\n                                setHorizontalOffset(-horizontal.getValue());\n                            }\n                        }\n                    });\n        }\n    }\n\n    class ComponentHandler extends ComponentAdapter {\n\n        public void componentResized(ComponentEvent evt) {\n            recalculateVisibleLines();\n            scrollBarsInitialized = true;\n        }\n    }\n\n    class DocumentHandler implements DocumentListener {\n\n        public void insertUpdate(DocumentEvent evt) {\n            documentChanged(evt);\n\n            int offset = evt.getOffset();\n            int length = evt.getLength();\n\n            int newStart;\n            int newEnd;\n\n            if (selectionStart > offset || (selectionStart == selectionEnd && selectionStart == offset)) {\n                newStart = selectionStart + length;\n            } else {\n                newStart = selectionStart;\n            }\n\n            if (selectionEnd >= offset) {\n                newEnd = selectionEnd + length;\n            } else {\n                newEnd = selectionEnd;\n            }\n\n            select(newStart, newEnd);\n        }\n\n        public void removeUpdate(DocumentEvent evt) {\n            documentChanged(evt);\n\n            int offset = evt.getOffset();\n            int length = evt.getLength();\n\n            int newStart;\n            int newEnd;\n\n            if (selectionStart > offset) {\n                if (selectionStart > offset + length) {\n                    newStart = selectionStart - length;\n                } else {\n                    newStart = offset;\n                }\n            } else {\n                newStart = selectionStart;\n            }\n\n            if (selectionEnd > offset) {\n                if (selectionEnd > offset + length) {\n                    newEnd = selectionEnd - length;\n                } else {\n                    newEnd = offset;\n                }\n            } else {\n                newEnd = selectionEnd;\n            }\n\n            select(newStart, newEnd);\n        }\n\n        public void changedUpdate(DocumentEvent evt) {\n        }\n    }\n\n    class DragHandler implements MouseMotionListener {\n\n        public void mouseDragged(MouseEvent evt) {\n            if (popup != null && popup.isVisible()) {\n                return;\n            }\n\n            setSelectionRectangular((evt.getModifiers() & InputEvent.CTRL_MASK) != 0);\n            select(getMarkPosition(), xyToOffset(evt.getX(), evt.getY()));\n        }\n\n        public void mouseMoved(MouseEvent evt) {\n        }\n    }\n\n    class FocusHandler implements FocusListener {\n\n        public void focusGained(FocusEvent evt) {\n            setCaretVisible(true);\n            focusedComponent = JEditTextArea.this;\n        }\n\n        public void focusLost(FocusEvent evt) {\n            setCaretVisible(false);\n            focusedComponent = null;\n        }\n    }\n\n    class MouseHandler extends MouseAdapter implements MouseWheelListener {\n\n        public void mousePressed(MouseEvent evt) {\n            requestFocus();\n\n            // Focus events not fired sometimes?\n            setCaretVisible(true);\n            focusedComponent = JEditTextArea.this;\n\n            if ((evt.getModifiers() & InputEvent.BUTTON3_MASK) != 0 && popup != null) {\n                popup.show(painter, evt.getX(), evt.getY());\n                return;\n            }\n\n            int line = yToLine(evt.getY());\n            int offset = xToOffset(line, evt.getX());\n            int dot = getLineStartOffset(line) + offset;\n\n            switch (evt.getClickCount()) {\n                case 1:\n                    doSingleClick(evt, line, offset, dot);\n                    break;\n                case 2:\n                    // It uses the bracket matching stuff, so\n\t\t\t\t// it can throw a BLE\n                    try {\n                        doDoubleClick(evt, line, offset, dot);\n                    } catch (BadLocationException bl) {\n                        bl.printStackTrace();\n                    }\n                    break;\n                case 3:\n                    doTripleClick(evt, line, offset, dot);\n                    break;\n            }\n        }\n\n        private void doSingleClick(MouseEvent evt, int line,\n                int offset, int dot) {\n            if ((evt.getModifiers() & InputEvent.SHIFT_MASK) != 0) {\n                rectSelect = (evt.getModifiers() & InputEvent.CTRL_MASK) != 0;\n                select(getMarkPosition(), dot);\n            } else {\n                setCaretPosition(dot);\n            }\n        }\n\n        private void doDoubleClick(MouseEvent evt, int line,\n                int offset, int dot) throws BadLocationException {\n            // Ignore empty lines\n            if (getLineLength(line) == 0) {\n                return;\n            }\n\n            try {\n                int bracket = TextUtilities.findMatchingBracket(document, Math.max(0, dot - 1));\n                if (bracket != -1) {\n                    int mark = getMarkPosition();\n                    // Hack\n                    if (bracket > mark) {\n                        bracket++;\n                        mark--;\n                    }\n                    select(mark, bracket);\n                    return;\n                }\n            } catch (BadLocationException bl) {\n                bl.printStackTrace();\n            }\n\n            // Ok, it's not a bracket... select the word\n            String lineText = getLineText(line);\n            char ch = lineText.charAt(Math.max(0, offset - 1));\n\n            String noWordSep = (String) document.getProperty(\"noWordSep\");\n            if (noWordSep == null) {\n                noWordSep = \"\";\n            }\n\n            // If the user clicked on a non-letter char,\n\t\t\t// we select the surrounding non-letters\n            boolean selectNoLetter = (!Character.isLetterOrDigit(ch) && noWordSep.indexOf(ch) == -1);\n\n            int wordStart = 0;\n\n            for (int i = offset - 1; i >= 0; i--) {\n                ch = lineText.charAt(i);\n                if (selectNoLetter ^ (!Character.isLetterOrDigit(ch) &&\n                        noWordSep.indexOf(ch) == -1)) {\n                    wordStart = i + 1;\n                    break;\n                }\n            }\n\n            int wordEnd = lineText.length();\n            for (int i = offset; i < lineText.length(); i++) {\n                ch = lineText.charAt(i);\n                if (selectNoLetter ^ (!Character.isLetterOrDigit(ch) &&\n                        noWordSep.indexOf(ch) == -1)) {\n                    wordEnd = i;\n                    break;\n                }\n            }\n\n            int lineStart = getLineStartOffset(line);\n            select(lineStart + wordStart, lineStart + wordEnd);\n        }\n\n        private void doTripleClick(MouseEvent evt, int line,\n                int offset, int dot) {\n            select(getLineStartOffset(line), getLineEndOffset(line) - 1);\n        }\n\n        /**\n         * mouse wheel action to be able to scroll the jedit area by\n         * mouse wheel.\n         */\n        public void mouseWheelMoved(MouseWheelEvent e) {\n            if (getFirstLine() + e.getUnitsToScroll() > 0) {\n                if (getFirstLine() + getVisibleLines() + e.getUnitsToScroll() <= getLineCount()) {\n                    setFirstLine(getFirstLine() + e.getUnitsToScroll());\n                } else {\n                    setFirstLine(getLineCount() - getVisibleLines());\n                }\n            } else {\n                setFirstLine(0);\n            }\n        }\n    }\n\n    class CaretUndo extends AbstractUndoableEdit {\n\n        private int start;\n        private int end;\n\n        CaretUndo(int start, int end) {\n            this.start = start;\n            this.end = end;\n        }\n\n        public boolean isSignificant() {\n            return false;\n        }\n\n        public String getPresentationName() {\n            return \"caret move\";\n        }\n\n        public void undo() throws CannotUndoException {\n            super.undo();\n\n            select(start, end);\n        }\n\n        public void redo() throws CannotRedoException {\n            super.redo();\n\n            select(start, end);\n        }\n\n        public boolean addEdit(UndoableEdit edit) {\n            if (edit instanceof CaretUndo) {\n                CaretUndo cedit = (CaretUndo) edit;\n                start = cedit.start;\n                end = cedit.end;\n                cedit.die();\n\n                return true;\n            } else {\n                return false;\n            }\n        }\n    }\n    \n    {\n        caretTimer = new Timer(500, new CaretBlinker());\n        caretTimer.setInitialDelay(500);\n        caretTimer.start();\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/jedit/KeywordMap.java",
    "content": "/*\n * KeywordMap.java - Fast keyword->id map\n * Copyright (C) 1998, 1999 Slava Pestov\n * Copyright (C) 1999 Mike Dillon\n *\n * You may use and modify this package for any purpose. Redistribution is\n * permitted, in both source and binary form, provided that this notice\n * remains intact in all source distributions of this package.\n */\npackage de.grimmfrost.tda.utils.jedit;\n\nimport javax.swing.text.Segment;\n\n/**\n * A <code>KeywordMap</code> is similar to a hashtable in that it maps keys\n * to values. However, the `keys' are Swing segments. This allows lookups of\n * text substrings without the overhead of creating a new string object.\n * <p>\n * This class is used by <code>CTokenMarker</code> to map keywords to ids.\n *\n * @author Slava Pestov, Mike Dillon\n * @version $Id: KeywordMap.java,v 1.1 2007-10-03 12:50:26 irockel Exp $\n */\npublic class KeywordMap\n{\n\t/**\n\t * Creates a new <code>KeywordMap</code>.\n\t * @param ignoreCase True if keys are case insensitive\n\t */\n\tpublic KeywordMap(boolean ignoreCase)\n\t{\n\t\tthis(ignoreCase, 52);\n\t\tthis.ignoreCase = ignoreCase;\n\t}\n\n\t/**\n\t * Creates a new <code>KeywordMap</code>.\n\t * @param ignoreCase True if the keys are case insensitive\n\t * @param mapLength The number of `buckets' to create.\n\t * A value of 52 will give good performance for most maps.\n\t */\n\tpublic KeywordMap(boolean ignoreCase, int mapLength)\n\t{\n\t\tthis.mapLength = mapLength;\n\t\tthis.ignoreCase = ignoreCase;\n\t\tmap = new Keyword[mapLength];\n\t}\n\n\t/**\n\t * Looks up a key.\n\t * @param text The text segment\n\t * @param offset The offset of the substring within the text segment\n\t * @param length The length of the substring\n\t */\n\tpublic byte lookup(Segment text, int offset, int length)\n\t{\n\t\tif(length == 0)\n\t\t\treturn Token.NULL;\n\t\tKeyword k = map[getSegmentMapKey(text, offset, length)];\n\t\twhile(k != null)\n\t\t{\n\t\t\tif(length != k.keyword.length)\n\t\t\t{\n\t\t\t\tk = k.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif(SyntaxUtilities.regionMatches(ignoreCase,text,offset,\n\t\t\t\tk.keyword))\n\t\t\t\treturn k.id;\n\t\t\tk = k.next;\n\t\t}\n\t\treturn Token.NULL;\n\t}\n\n\t/**\n\t * Adds a key-value mapping.\n\t * @param keyword The key\n\t * @param id The value\n\t */\n\tpublic void add(String keyword, byte id)\n\t{\n\t\tint key = getStringMapKey(keyword);\n\t\tmap[key] = new Keyword(keyword.toCharArray(),id,map[key]);\n\t}\n\n\t/**\n\t * Returns true if the keyword map is set to be case insensitive,\n\t * false otherwise.\n\t */\n\tpublic boolean getIgnoreCase()\n\t{\n\t\treturn ignoreCase;\n\t}\n\n\t/**\n\t * Sets if the keyword map should be case insensitive.\n\t * @param ignoreCase True if the keyword map should be case\n\t * insensitive, false otherwise\n\t */\n\tpublic void setIgnoreCase(boolean ignoreCase)\n\t{\n\t\tthis.ignoreCase = ignoreCase;\n\t}\n\n\t// protected members\n\tprotected int mapLength;\n\n\tprotected int getStringMapKey(String s)\n\t{\n\t\treturn (Character.toUpperCase(s.charAt(0)) +\n\t\t\t\tCharacter.toUpperCase(s.charAt(s.length()-1)))\n\t\t\t\t% mapLength;\n\t}\n\n\tprotected int getSegmentMapKey(Segment s, int off, int len)\n\t{\n\t\treturn (Character.toUpperCase(s.array[off]) +\n\t\t\t\tCharacter.toUpperCase(s.array[off + len - 1]))\n\t\t\t\t% mapLength;\n\t}\n\n\t// private members\n\tclass Keyword\n\t{\n\t\tpublic Keyword(char[] keyword, byte id, Keyword next)\n\t\t{\n\t\t\tthis.keyword = keyword;\n\t\t\tthis.id = id;\n\t\t\tthis.next = next;\n\t\t}\n\n\t\tpublic char[] keyword;\n\t\tpublic byte id;\n\t\tpublic Keyword next;\n\t}\n\n\tprivate Keyword[] map;\n\tprivate boolean ignoreCase;\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/jedit/PopupMenu.java",
    "content": "/**\n * Thread Dump Analysis Tool, parses Thread Dump input and displays it as tree\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,h\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * TDA should have received a copy of the Lesser GNU General Public License\n * along with Foobar; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: PopupMenu.java,v 1.6 2008-04-27 20:31:13 irockel Exp $\n */\n\npackage de.grimmfrost.tda.utils.jedit;\n\nimport de.grimmfrost.tda.TDA;\nimport java.awt.Component;\nimport java.awt.event.ActionEvent;\nimport java.awt.event.ActionListener;\nimport java.awt.event.KeyEvent;\nimport javax.swing.JMenuItem;\nimport javax.swing.JOptionPane;\nimport javax.swing.JPanel;\nimport javax.swing.JPopupMenu;\nimport javax.swing.KeyStroke;\n\n/**\n * popup for the jedit text area\n * @author irockel\n */\npublic class PopupMenu extends JPopupMenu implements ActionListener {\n    private JEditTextArea ref;\n    private TDA parent;\n    private JMenuItem againMenuItem;\n    private JMenuItem copyMenuItem;\n    private JMenuItem selectNoneMenuItem;\n    \n    private String searchString;\n    \n    public PopupMenu(JEditTextArea ref, TDA parent, boolean showSave) {\n        JMenuItem menuItem;\n        \n        menuItem = new JMenuItem(\"Goto Line...\");\n        menuItem.addActionListener(this);\n        add(menuItem);\n        this.addSeparator();\n        menuItem = new JMenuItem(\"Search...\");\n        menuItem.addActionListener(this);\n        add(menuItem);\n        againMenuItem = new JMenuItem(\"Search again\");\n        againMenuItem.addActionListener(this);\n        againMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0));\n        add(againMenuItem);\n        this.addSeparator();\n        copyMenuItem = new JMenuItem(\"Copy to Clipboard\");\n        copyMenuItem.addActionListener(this);\n        copyMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_DOWN_MASK));\n        add(copyMenuItem);\n        menuItem = new JMenuItem(\"Select All\");\n        menuItem.addActionListener(this);\n        add(menuItem);\n        selectNoneMenuItem = new JMenuItem(\"Select None\");\n        selectNoneMenuItem.addActionListener(this);\n        add(selectNoneMenuItem);\n        if(showSave) {\n            this.addSeparator();\n            menuItem = new JMenuItem(\"Save Logfile...\");\n            menuItem.addActionListener(this);\n            add(menuItem);\n        }\n        \n        this.ref = ref;\n        this.parent = parent;\n    }\n\n    public void actionPerformed(ActionEvent e) {\n        if(e.getSource() instanceof JMenuItem) {\n            JMenuItem source = (JMenuItem) (e.getSource());\n            if (source.getText().equals(\"Goto Line...\")) {\n                gotoLine();\n            } else if (source.getText().equals(\"Search...\")) {\n                search();\n            } else if (source.getText().startsWith(\"Search again\")) {\n                search(searchString, ref.getCaretPosition() + 1);\n            } else if (source.getText().startsWith(\"Copy to Clipboard\")) {\n                ref.copy();\n            } else if (source.getText().startsWith(\"Select All\")) {\n                ref.selectAll();\n            } else if (source.getText().startsWith(\"Select None\")) {\n                ref.selectNone();\n            } else if (source.getText().startsWith(\"Save Logfile...\")) {\n                parent.saveLogFile();\n            }\n        } else if(e.getSource() instanceof JEditTextArea) {\n            // only one key binding\n            if (e.getModifiers() > 0) {\n                if(ref.getSelectionStart() >= 0) {\n                    ref.copy();\n                }\n            } else {\n                if (searchString != null) {\n                    search(searchString, ref.getCaretPosition() + 1);\n                }\n            }\n        }\n    }\n    \n    private void search(String searchString, int offSet) {\n        int searchIndex = ref.getText().indexOf(searchString, offSet);\n        if (searchIndex < 0) {\n            JOptionPane.showMessageDialog(parent, \"Search string not found\", \"Error\", JOptionPane.ERROR_MESSAGE);\n        } else {\n            ref.setCaretPosition(searchIndex);\n        }\n    }\n    \n    private void gotoLine() {        \n        String result = JOptionPane.showInputDialog(parent, \"Type in line number (between 1-\" + ref.getLineCount() + \")\"); \n        \n        if (result != null) {\n            int lineNumber = 0;\n            try {\n                lineNumber = Integer.parseInt(result);\n            } catch (NumberFormatException ne) {\n                JOptionPane.showMessageDialog(parent, \"Invalid line number entered\", \"Error\", JOptionPane.ERROR_MESSAGE);\n            }\n            if ((lineNumber > 0) && (lineNumber <= ref.getLineCount())) {\n                ref.setFirstLine(lineNumber);\n            }\n        }\n    }\n\n    private void search() {        \n        String result = JOptionPane.showInputDialog(parent, \"Type in search string\"); \n        \n        if (result != null) {\n            search(result, ref.getCaretPosition());\n            searchString = result;\n        }\n    }\n    \n    /**\n     * overrides default implementation for \"Search Again\" enable check.\n     */\n    public void show(Component invoker, int x, int y) {\n        super.show(invoker, x, y);\n        againMenuItem.setEnabled(searchString != null);\n        \n        String selectedText = ref.getSelectedText();\n        copyMenuItem.setEnabled(selectedText != null && selectedText.length() > 0);\n        selectNoneMenuItem.setEnabled(copyMenuItem.isEnabled());\n    }\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/jedit/SyntaxDocument.java",
    "content": "/*\n * SyntaxDocument.java - Document that can be tokenized\n * Copyright (C) 1999 Slava Pestov\n *\n * You may use and modify this package for any purpose. Redistribution is\n * permitted, in both source and binary form, provided that this notice\n * remains intact in all source distributions of this package.\n */\npackage de.grimmfrost.tda.utils.jedit;\n\nimport javax.swing.event.*;\nimport javax.swing.text.*;\nimport javax.swing.undo.UndoableEdit;\n\n/**\n * A document implementation that can be tokenized by the syntax highlighting\n * system.\n *\n * @author Slava Pestov\n * @version $Id: SyntaxDocument.java,v 1.1 2007-10-03 12:50:26 irockel Exp $\n */\npublic class SyntaxDocument extends PlainDocument\n{\n\t/**\n\t * Returns the token marker that is to be used to split lines\n\t * of this document up into tokens. May return null if this\n\t * document is not to be colorized.\n\t */\n\tpublic TokenMarker getTokenMarker()\n\t{\n\t\treturn tokenMarker;\n\t}\n\n\t/**\n\t * Sets the token marker that is to be used to split lines of\n\t * this document up into tokens. May throw an exception if\n\t * this is not supported for this type of document.\n\t * @param tm The new token marker\n\t */\n\tpublic void setTokenMarker(TokenMarker tm)\n\t{\n\t\ttokenMarker = tm;\n\t\tif(tm == null)\n\t\t\treturn;\n\t\ttokenMarker.insertLines(0,getDefaultRootElement()\n\t\t\t.getElementCount());\n\t\ttokenizeLines();\n\t}\n\n\t/**\n\t * Reparses the document, by passing all lines to the token\n\t * marker. This should be called after the document is first\n\t * loaded.\n\t */\n\tpublic void tokenizeLines()\n\t{\n\t\ttokenizeLines(0,getDefaultRootElement().getElementCount());\n\t}\n\n\t/**\n\t * Reparses the document, by passing the specified lines to the\n\t * token marker. This should be called after a large quantity of\n\t * text is first inserted.\n\t * @param start The first line to parse\n\t * @param len The number of lines, after the first one to parse\n\t */\n\tpublic void tokenizeLines(int start, int len)\n\t{\n\t\tif(tokenMarker == null || !tokenMarker.supportsMultilineTokens())\n\t\t\treturn;\n\n\t\tSegment lineSegment = new Segment();\n\t\tElement map = getDefaultRootElement();\n\n\t\tlen += start;\n\n\t\ttry\n\t\t{\n\t\t\tfor(int i = start; i < len; i++)\n\t\t\t{\n\t\t\t\tElement lineElement = map.getElement(i);\n\t\t\t\tint lineStart = lineElement.getStartOffset();\n\t\t\t\tgetText(lineStart,lineElement.getEndOffset()\n\t\t\t\t\t- lineStart - 1,lineSegment);\n\t\t\t\ttokenMarker.markTokens(lineSegment,i);\n\t\t\t}\n\t\t}\n\t\tcatch(BadLocationException bl)\n\t\t{\n\t\t\tbl.printStackTrace();\n\t\t}\n\t}\n\n\t/**\n\t * Starts a compound edit that can be undone in one operation.\n\t * Subclasses that implement undo should override this method;\n\t * this class has no undo functionality so this method is\n\t * empty.\n\t */\n\tpublic void beginCompoundEdit() {}\n\n\t/**\n\t * Ends a compound edit that can be undone in one operation.\n\t * Subclasses that implement undo should override this method;\n\t * this class has no undo functionality so this method is\n\t * empty.\n\t */\n\tpublic void endCompoundEdit() {}\n\n\t/**\n\t * Adds an undoable edit to this document's undo list. The edit\n\t * should be ignored if something is currently being undone.\n\t * @param edit The undoable edit\n\t *\n\t * @since jEdit 2.2pre1\n\t */\n\tpublic void addUndoableEdit(UndoableEdit edit) {}\n\n\t// protected members\n\tprotected TokenMarker tokenMarker;\n\n\t/**\n\t * We overwrite this method to update the token marker\n\t * state immediately so that any event listeners get a\n\t * consistent token marker.\n\t */\n\tprotected void fireInsertUpdate(DocumentEvent evt)\n\t{\n\t\tif(tokenMarker != null)\n\t\t{\n\t\t\tDocumentEvent.ElementChange ch = evt.getChange(\n\t\t\t\tgetDefaultRootElement());\n\t\t\tif(ch != null)\n\t\t\t{\n\t\t\t\ttokenMarker.insertLines(ch.getIndex() + 1,\n\t\t\t\t\tch.getChildrenAdded().length -\n\t\t\t\t\tch.getChildrenRemoved().length);\n\t\t\t}\n\t\t}\n\n\t\tsuper.fireInsertUpdate(evt);\n\t}\n\t\n\t/**\n\t * We overwrite this method to update the token marker\n\t * state immediately so that any event listeners get a\n\t * consistent token marker.\n\t */\n\tprotected void fireRemoveUpdate(DocumentEvent evt)\n\t{\n\t\tif(tokenMarker != null)\n\t\t{\n\t\t\tDocumentEvent.ElementChange ch = evt.getChange(\n\t\t\t\tgetDefaultRootElement());\n\t\t\tif(ch != null)\n\t\t\t{\n\t\t\t\ttokenMarker.deleteLines(ch.getIndex() + 1,\n\t\t\t\t\tch.getChildrenRemoved().length -\n\t\t\t\t\tch.getChildrenAdded().length);\n\t\t\t}\n\t\t}\n\n\t\tsuper.fireRemoveUpdate(evt);\n\t}\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/jedit/SyntaxStyle.java",
    "content": "/*\n * SyntaxStyle.java - A simple text style class\n * Copyright (C) 1999 Slava Pestov\n *\n * You may use and modify this package for any purpose. Redistribution is\n * permitted, in both source and binary form, provided that this notice\n * remains intact in all source distributions of this package.\n */\npackage de.grimmfrost.tda.utils.jedit;\n\nimport java.awt.*;\nimport java.util.StringTokenizer;\n\n/**\n * A simple text style class. It can specify the color, italic flag,\n * and bold flag of a run of text.\n * @author Slava Pestov\n * @version $Id: SyntaxStyle.java,v 1.1 2007-10-03 12:50:26 irockel Exp $\n */\npublic class SyntaxStyle\n{\n\t/**\n\t * Creates a new SyntaxStyle.\n\t * @param color The text color\n\t * @param italic True if the text should be italics\n\t * @param bold True if the text should be bold\n\t */\n\tpublic SyntaxStyle(Color color, boolean italic, boolean bold)\n\t{\n\t\tthis.color = color;\n\t\tthis.italic = italic;\n\t\tthis.bold = bold;\n\t}\n\n\t/**\n\t * Returns the color specified in this style.\n\t */\n\tpublic Color getColor()\n\t{\n\t\treturn color;\n\t}\n\n\t/**\n\t * Returns true if no font styles are enabled.\n\t */\n\tpublic boolean isPlain()\n\t{\n\t\treturn !(bold || italic);\n\t}\n\n\t/**\n\t * Returns true if italics is enabled for this style.\n\t */\n\tpublic boolean isItalic()\n\t{\n\t\treturn italic;\n\t}\n\n\t/**\n\t * Returns true if boldface is enabled for this style.\n\t */\n\tpublic boolean isBold()\n\t{\n\t\treturn bold;\n\t}\n\n\t/**\n\t * Returns the specified font, but with the style's bold and\n\t * italic flags applied.\n\t */\n\tpublic Font getStyledFont(Font font)\n\t{\n\t\tif(font == null)\n\t\t\tthrow new NullPointerException(\"font param must not\"\n\t\t\t\t+ \" be null\");\n\t\tif(font.equals(lastFont))\n\t\t\treturn lastStyledFont;\n\t\tlastFont = font;\n\t\tlastStyledFont = new Font(font.getFamily(),\n\t\t\t(bold ? Font.BOLD : 0)\n\t\t\t| (italic ? Font.ITALIC : 0),\n\t\t\tfont.getSize());\n\t\treturn lastStyledFont;\n\t}\n\n\t/**\n\t * Returns the font metrics for the styled font.\n\t */\n\tpublic FontMetrics getFontMetrics(Font font)\n\t{\n\t\tif(font == null)\n\t\t\tthrow new NullPointerException(\"font param must not\"\n\t\t\t\t+ \" be null\");\n\t\tif(font.equals(lastFont) && fontMetrics != null)\n\t\t\treturn fontMetrics;\n\t\tlastFont = font;\n\t\tlastStyledFont = new Font(font.getFamily(),\n\t\t\t(bold ? Font.BOLD : 0)\n\t\t\t| (italic ? Font.ITALIC : 0),\n\t\t\tfont.getSize());\n\t\tfontMetrics = Toolkit.getDefaultToolkit().getFontMetrics(\n\t\t\tlastStyledFont);\n\t\treturn fontMetrics;\n\t}\n\n\t/**\n\t * Sets the foreground color and font of the specified graphics\n\t * context to that specified in this style.\n\t * @param gfx The graphics context\n\t * @param font The font to add the styles to\n\t */\n\tpublic void setGraphicsFlags(Graphics gfx, Font font)\n\t{\n\t\tFont _font = getStyledFont(font);\n\t\tgfx.setFont(_font);\n\t\tgfx.setColor(color);\n\t}\n\n\t/**\n\t * Returns a string representation of this object.\n\t */\n\tpublic String toString()\n\t{\n\t\treturn getClass().getName() + \"[color=\" + color +\n\t\t\t(italic ? \",italic\" : \"\") +\n\t\t\t(bold ? \",bold\" : \"\") + \"]\";\n\t}\n\n\t// private members\n\tprivate Color color;\n\tprivate boolean italic;\n\tprivate boolean bold;\n\tprivate Font lastFont;\n\tprivate Font lastStyledFont;\n\tprivate FontMetrics fontMetrics;\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/jedit/SyntaxUtilities.java",
    "content": "/*\n * SyntaxUtilities.java - Utility functions used by syntax colorizing\n * Copyright (C) 1999 Slava Pestov\n *\n * You may use and modify this package for any purpose. Redistribution is\n * permitted, in both source and binary form, provided that this notice\n * remains intact in all source distributions of this package.\n */\npackage de.grimmfrost.tda.utils.jedit;\n\nimport javax.swing.text.*;\nimport java.awt.*;\n\n/**\n * Class with several utility functions used by jEdit's syntax colorizing\n * subsystem.\n *\n * @author Slava Pestov\n * @version $Id: SyntaxUtilities.java,v 1.1 2007-10-03 12:50:26 irockel Exp $\n */\npublic class SyntaxUtilities\n{\n\t/**\n\t * Checks if a subregion of a <code>Segment</code> is equal to a\n\t * string.\n\t * @param ignoreCase True if case should be ignored, false otherwise\n\t * @param text The segment\n\t * @param offset The offset into the segment\n\t * @param match The string to match\n\t */\n\tpublic static boolean regionMatches(boolean ignoreCase, Segment text,\n\t\t\t\t\t    int offset, String match)\n\t{\n\t\tint length = offset + match.length();\n\t\tchar[] textArray = text.array;\n\t\tif(length > text.offset + text.count)\n\t\t\treturn false;\n\t\tfor(int i = offset, j = 0; i < length; i++, j++)\n\t\t{\n\t\t\tchar c1 = textArray[i];\n\t\t\tchar c2 = match.charAt(j);\n\t\t\tif(ignoreCase)\n\t\t\t{\n\t\t\t\tc1 = Character.toUpperCase(c1);\n\t\t\t\tc2 = Character.toUpperCase(c2);\n\t\t\t}\n\t\t\tif(c1 != c2)\n\t\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\t\n\t/**\n\t * Checks if a subregion of a <code>Segment</code> is equal to a\n\t * character array.\n\t * @param ignoreCase True if case should be ignored, false otherwise\n\t * @param text The segment\n\t * @param offset The offset into the segment\n\t * @param match The character array to match\n\t */\n\tpublic static boolean regionMatches(boolean ignoreCase, Segment text,\n\t\t\t\t\t    int offset, char[] match)\n\t{\n\t\tint length = offset + match.length;\n\t\tchar[] textArray = text.array;\n\t\tif(length > text.offset + text.count)\n\t\t\treturn false;\n\t\tfor(int i = offset, j = 0; i < length; i++, j++)\n\t\t{\n\t\t\tchar c1 = textArray[i];\n\t\t\tchar c2 = match[j];\n\t\t\tif(ignoreCase)\n\t\t\t{\n\t\t\t\tc1 = Character.toUpperCase(c1);\n\t\t\t\tc2 = Character.toUpperCase(c2);\n\t\t\t}\n\t\t\tif(c1 != c2)\n\t\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t}\n\n\t/**\n\t * Returns the default style table. This can be passed to the\n\t * <code>setStyles()</code> method of <code>SyntaxDocument</code>\n\t * to use the default syntax styles.\n\t */\n\tpublic static SyntaxStyle[] getDefaultSyntaxStyles()\n\t{\n\t\tSyntaxStyle[] styles = new SyntaxStyle[Token.ID_COUNT];\n\n\t\tstyles[Token.COMMENT1] = new SyntaxStyle(Color.black,true,false);\n\t\tstyles[Token.COMMENT2] = new SyntaxStyle(new Color(0x990033),true,false);\n\t\tstyles[Token.KEYWORD1] = new SyntaxStyle(Color.black,false,true);\n\t\tstyles[Token.KEYWORD2] = new SyntaxStyle(Color.magenta,false,false);\n\t\tstyles[Token.KEYWORD3] = new SyntaxStyle(new Color(0x009600),false,false);\n\t\tstyles[Token.LITERAL1] = new SyntaxStyle(new Color(0x650099),false,false);\n\t\tstyles[Token.LITERAL2] = new SyntaxStyle(new Color(0x650099),false,true);\n\t\tstyles[Token.LABEL] = new SyntaxStyle(new Color(0x990033),false,true);\n\t\tstyles[Token.OPERATOR] = new SyntaxStyle(Color.black,false,true);\n\t\tstyles[Token.INVALID] = new SyntaxStyle(Color.red,false,true);\n\n\t\treturn styles;\n\t}\n\n\t/**\n\t * Paints the specified line onto the graphics context. Note that this\n\t * method munges the offset and count values of the segment.\n\t * @param line The line segment\n\t * @param tokens The token list for the line\n\t * @param styles The syntax style list\n\t * @param expander The tab expander used to determine tab stops. May\n\t * be null\n\t * @param gfx The graphics context\n\t * @param x The x co-ordinate\n\t * @param y The y co-ordinate\n\t * @return The x co-ordinate, plus the width of the painted string\n\t */\n\tpublic static int paintSyntaxLine(Segment line, Token tokens,\n\t\tSyntaxStyle[] styles, TabExpander expander, Graphics gfx,\n\t\tint x, int y)\n\t{\n\t\tFont defaultFont = gfx.getFont();\n\t\tColor defaultColor = gfx.getColor();\n\n\t\tint offset = 0;\n\t\tfor(;;)\n\t\t{\n\t\t\tbyte id = tokens.id;\n\t\t\tif(id == Token.END)\n\t\t\t\tbreak;\n\n\t\t\tint length = tokens.length;\n\t\t\tif(id == Token.NULL)\n\t\t\t{\n\t\t\t\tif(!defaultColor.equals(gfx.getColor()))\n\t\t\t\t\tgfx.setColor(defaultColor);\n\t\t\t\tif(!defaultFont.equals(gfx.getFont()))\n\t\t\t\t\tgfx.setFont(defaultFont);\n\t\t\t}\n\t\t\telse\n\t\t\t\tstyles[id].setGraphicsFlags(gfx,defaultFont);\n\n\t\t\tline.count = length;\n\t\t\tx = Utilities.drawTabbedText(line,x,y,gfx,expander,0);\n\t\t\tline.offset += length;\n\t\t\toffset += length;\n\n\t\t\ttokens = tokens.next;\n\t\t}\n\n\t\treturn x;\n\t}\n\n\t// private members\n\tprivate SyntaxUtilities() {}\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/jedit/TextAreaDefaults.java",
    "content": "/*\n * $Id: TextAreaDefaults.java,v 1.3 2008-09-30 19:20:56 irockel Exp $\n *\n * TextAreaDefaults.java - Encapsulates default values for various settings\n * Copyright (C) 1999 Slava Pestov\n *\n * You may use and modify this package for any purpose. Redistribution is\n * permitted, in both source and binary form, provided that this notice\n * remains intact in all source distributions of this package.\n */\npackage de.grimmfrost.tda.utils.jedit;\n\nimport javax.swing.JPopupMenu;\nimport java.awt.Color;\n\n/**\n * Encapsulates default settings for a text area. This can be passed\n * to the constructor once the necessary fields have been filled out.\n * The advantage of doing this over calling lots of set() methods after\n * creating the text area is that this method is faster.\n */\npublic class TextAreaDefaults\n{\n\tprivate static TextAreaDefaults DEFAULTS;\n\n\tpublic InputHandler inputHandler;\n\tpublic SyntaxDocument document;\n\tpublic boolean editable;\n\n\tpublic boolean caretVisible;\n\tpublic boolean caretBlinks;\n\tpublic boolean blockCaret;\n\tpublic int electricScroll;\n\n\tpublic int cols;\n\tpublic int rows;\n\tpublic SyntaxStyle[] styles;\n\tpublic Color caretColor;\n\tpublic Color selectionColor;\n\tpublic Color lineHighlightColor;\n\tpublic boolean lineHighlight;\n\tpublic Color bracketHighlightColor;\n\tpublic boolean bracketHighlight;\n\tpublic Color eolMarkerColor;\n\tpublic boolean eolMarkers;\n\tpublic boolean paintInvalid;\n\n\tpublic JPopupMenu popup;\n\n\t/**\n\t * Returns a new TextAreaDefaults object with the default values filled\n\t * in.\n\t */\n\tpublic static TextAreaDefaults getDefaults()\n\t{\n        DEFAULTS = new TextAreaDefaults();\n\n        DEFAULTS.inputHandler = new DefaultInputHandler();\n        DEFAULTS.inputHandler.addDefaultKeyBindings();\n        DEFAULTS.document = new SyntaxDocument();\n        DEFAULTS.editable = true;\n\n        DEFAULTS.caretVisible = true;\n        DEFAULTS.caretBlinks = true;\n        DEFAULTS.electricScroll = 3;\n\n        DEFAULTS.cols = 80;\n        DEFAULTS.rows = 5;\n        DEFAULTS.styles = SyntaxUtilities.getDefaultSyntaxStyles();\n        DEFAULTS.caretColor = Color.red;\n        DEFAULTS.selectionColor = new Color(0xccccff);\n        DEFAULTS.lineHighlightColor = new Color(0xe0e0e0);\n        DEFAULTS.lineHighlight = true;\n        DEFAULTS.bracketHighlightColor = Color.black;\n        DEFAULTS.bracketHighlight = true;\n        DEFAULTS.eolMarkerColor = new Color(0x009999);\n        DEFAULTS.eolMarkers = true;\n        DEFAULTS.paintInvalid = true;\n\n\t\treturn DEFAULTS;\n\t}\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/jedit/TextAreaPainter.java",
    "content": "/*\n * TextAreaPainter.java - Paints the text area\n * Copyright (C) 1999 Slava Pestov\n *\n * You may use and modify this package for any purpose. Redistribution is\n * permitted, in both source and binary form, provided that this notice\n * remains intact in all source distributions of this package.\n */\npackage de.grimmfrost.tda.utils.jedit;\n\nimport javax.swing.ToolTipManager;\nimport javax.swing.text.*;\nimport javax.swing.JComponent;\nimport java.awt.event.MouseEvent;\nimport java.awt.*;\n\n/**\n * The text area repaint manager. It performs double buffering and paints\n * lines of text.\n * @author Slava Pestov\n * @version $Id: TextAreaPainter.java,v 1.1 2007-10-03 12:50:26 irockel Exp $\n */\npublic class TextAreaPainter extends JComponent implements TabExpander\n{\n\t/**\n\t * Creates a new repaint manager. This should be not be called\n\t * directly.\n\t */\n\tpublic TextAreaPainter(JEditTextArea textArea, TextAreaDefaults defaults)\n\t{\n\t\tthis.textArea = textArea;\n\n\t\tsetAutoscrolls(true);\n\t\tsetDoubleBuffered(true);\n\t\tsetOpaque(true);\n\n\t\tToolTipManager.sharedInstance().registerComponent(this);\n\n\t\tcurrentLine = new Segment();\n\t\tcurrentLineIndex = -1;\n\n\t\tsetCursor(Cursor.getPredefinedCursor(Cursor.TEXT_CURSOR));\n\n\t\tsetFont(new Font(\"Monospaced\",Font.PLAIN,14));\n\t\tsetForeground(Color.black);\n\t\tsetBackground(Color.white);\n\n\t\tblockCaret = defaults.blockCaret;\n\t\tstyles = defaults.styles;\n\t\tcols = defaults.cols;\n\t\trows = defaults.rows;\n\t\tcaretColor = defaults.caretColor;\n\t\tselectionColor = defaults.selectionColor;\n\t\tlineHighlightColor = defaults.lineHighlightColor;\n\t\tlineHighlight = defaults.lineHighlight;\n\t\tbracketHighlightColor = defaults.bracketHighlightColor;\n\t\tbracketHighlight = defaults.bracketHighlight;\n\t\tpaintInvalid = defaults.paintInvalid;\n\t\teolMarkerColor = defaults.eolMarkerColor;\n\t\teolMarkers = defaults.eolMarkers;\n\t}\n\n\t/**\n\t * Returns if this component can be traversed by pressing the\n\t * Tab key. This returns false.\n\t */\n\tpublic final boolean isManagingFocus()\n\t{\n\t\treturn false;\n\t}\n\n\t/**\n\t * Returns the syntax styles used to paint colorized text. Entry <i>n</i>\n\t * will be used to paint tokens with id = <i>n</i>.\n\t */\n\tpublic final SyntaxStyle[] getStyles()\n\t{\n\t\treturn styles;\n\t}\n\n\t/**\n\t * Sets the syntax styles used to paint colorized text. Entry <i>n</i>\n\t * will be used to paint tokens with id = <i>n</i>.\n\t * @param styles The syntax styles\n\t */\n\tpublic final void setStyles(SyntaxStyle[] styles)\n\t{\n\t\tthis.styles = styles;\n\t\trepaint();\n\t}\n\n\t/**\n\t * Returns the caret color.\n\t */\n\tpublic final Color getCaretColor()\n\t{\n\t\treturn caretColor;\n\t}\n\n\t/**\n\t * Sets the caret color.\n\t * @param caretColor The caret color\n\t */\n\tpublic final void setCaretColor(Color caretColor)\n\t{\n\t\tthis.caretColor = caretColor;\n\t\tinvalidateSelectedLines();\n\t}\n\n\t/**\n\t * Returns the selection color.\n\t */\n\tpublic final Color getSelectionColor()\n\t{\n\t\treturn selectionColor;\n\t}\n\n\t/**\n\t * Sets the selection color.\n\t * @param selectionColor The selection color\n\t */\n\tpublic final void setSelectionColor(Color selectionColor)\n\t{\n\t\tthis.selectionColor = selectionColor;\n\t\tinvalidateSelectedLines();\n\t}\n\n\t/**\n\t * Returns the line highlight color.\n\t */\n\tpublic final Color getLineHighlightColor()\n\t{\n\t\treturn lineHighlightColor;\n\t}\n\n\t/**\n\t * Sets the line highlight color.\n\t * @param lineHighlightColor The line highlight color\n\t */\n\tpublic final void setLineHighlightColor(Color lineHighlightColor)\n\t{\n\t\tthis.lineHighlightColor = lineHighlightColor;\n\t\tinvalidateSelectedLines();\n\t}\n\n\t/**\n\t * Returns true if line highlight is enabled, false otherwise.\n\t */\n\tpublic final boolean isLineHighlightEnabled()\n\t{\n\t\treturn lineHighlight;\n\t}\n\n\t/**\n\t * Enables or disables current line highlighting.\n\t * @param lineHighlight True if current line highlight should be enabled,\n\t * false otherwise\n\t */\n\tpublic final void setLineHighlightEnabled(boolean lineHighlight)\n\t{\n\t\tthis.lineHighlight = lineHighlight;\n\t\tinvalidateSelectedLines();\n\t}\n\n\t/**\n\t * Returns the bracket highlight color.\n\t */\n\tpublic final Color getBracketHighlightColor()\n\t{\n\t\treturn bracketHighlightColor;\n\t}\n\n\t/**\n\t * Sets the bracket highlight color.\n\t * @param bracketHighlightColor The bracket highlight color\n\t */\n\tpublic final void setBracketHighlightColor(Color bracketHighlightColor)\n\t{\n\t\tthis.bracketHighlightColor = bracketHighlightColor;\n\t\tinvalidateLine(textArea.getBracketLine());\n\t}\n\n\t/**\n\t * Returns true if bracket highlighting is enabled, false otherwise.\n\t * When bracket highlighting is enabled, the bracket matching the\n\t * one before the caret (if any) is highlighted.\n\t */\n\tpublic final boolean isBracketHighlightEnabled()\n\t{\n\t\treturn bracketHighlight;\n\t}\n\n\t/**\n\t * Enables or disables bracket highlighting.\n\t * When bracket highlighting is enabled, the bracket matching the\n\t * one before the caret (if any) is highlighted.\n\t * @param bracketHighlight True if bracket highlighting should be\n\t * enabled, false otherwise\n\t */\n\tpublic final void setBracketHighlightEnabled(boolean bracketHighlight)\n\t{\n\t\tthis.bracketHighlight = bracketHighlight;\n\t\tinvalidateLine(textArea.getBracketLine());\n\t}\n\n\t/**\n\t * Returns true if the caret should be drawn as a block, false otherwise.\n\t */\n\tpublic final boolean isBlockCaretEnabled()\n\t{\n\t\treturn blockCaret;\n\t}\n\n\t/**\n\t * Sets if the caret should be drawn as a block, false otherwise.\n\t * @param blockCaret True if the caret should be drawn as a block,\n\t * false otherwise.\n\t */\n\tpublic final void setBlockCaretEnabled(boolean blockCaret)\n\t{\n\t\tthis.blockCaret = blockCaret;\n\t\tinvalidateSelectedLines();\n\t}\n\n\t/**\n\t * Returns the EOL marker color.\n\t */\n\tpublic final Color getEOLMarkerColor()\n\t{\n\t\treturn eolMarkerColor;\n\t}\n\n\t/**\n\t * Sets the EOL marker color.\n\t * @param eolMarkerColor The EOL marker color\n\t */\n\tpublic final void setEOLMarkerColor(Color eolMarkerColor)\n\t{\n\t\tthis.eolMarkerColor = eolMarkerColor;\n\t\trepaint();\n\t}\n\n\t/**\n\t * Returns true if EOL markers are drawn, false otherwise.\n\t */\n\tpublic final boolean getEOLMarkersPainted()\n\t{\n\t\treturn eolMarkers;\n\t}\n\n\t/**\n\t * Sets if EOL markers are to be drawn.\n\t * @param eolMarkers True if EOL markers should be drawn, false otherwise\n\t */\n\tpublic final void setEOLMarkersPainted(boolean eolMarkers)\n\t{\n\t\tthis.eolMarkers = eolMarkers;\n\t\trepaint();\n\t}\n\n\t/**\n\t * Returns true if invalid lines are painted as red tildes (~),\n\t * false otherwise.\n\t */\n\tpublic boolean getInvalidLinesPainted()\n\t{\n\t\treturn paintInvalid;\n\t}\n\n\t/**\n\t * Sets if invalid lines are to be painted as red tildes.\n\t * @param paintInvalid True if invalid lines should be drawn, false otherwise\n\t */\n\tpublic void setInvalidLinesPainted(boolean paintInvalid)\n\t{\n\t\tthis.paintInvalid = paintInvalid;\n\t}\n\n\t/**\n\t * Adds a custom highlight painter.\n\t * @param highlight The highlight\n\t */\n\tpublic void addCustomHighlight(Highlight highlight)\n\t{\n\t\thighlight.init(textArea,highlights);\n\t\thighlights = highlight;\n\t}\n\n\t/**\n\t * Highlight interface.\n\t */\n\tpublic interface Highlight\n\t{\n\t\t/**\n\t\t * Called after the highlight painter has been added.\n\t\t * @param textArea The text area\n\t\t * @param next The painter this one should delegate to\n\t\t */\n\t\tvoid init(JEditTextArea textArea, Highlight next);\n\n\t\t/**\n\t\t * This should paint the highlight and delgate to the\n\t\t * next highlight painter.\n\t\t * @param gfx The graphics context\n\t\t * @param line The line number\n\t\t * @param y The y co-ordinate of the line\n\t\t */\n\t\tvoid paintHighlight(Graphics gfx, int line, int y);\n\n\t\t/**\n\t\t * Returns the tool tip to display at the specified\n\t\t * location. If this highlighter doesn't know what to\n\t\t * display, it should delegate to the next highlight\n\t\t * painter.\n\t\t * @param evt The mouse event\n\t\t */\n\t\tString getToolTipText(MouseEvent evt);\n\t}\n\n\t/**\n\t * Returns the tool tip to display at the specified location.\n\t * @param evt The mouse event\n\t */\n\tpublic String getToolTipText(MouseEvent evt)\n\t{\n\t\tif(highlights != null)\n\t\t\treturn highlights.getToolTipText(evt);\n\t\telse\n\t\t\treturn null;\n\t}\n\n\t/**\n\t * Returns the font metrics used by this component.\n\t */\n\tpublic FontMetrics getFontMetrics()\n\t{\n\t\treturn fm;\n\t}\n\n\t/**\n\t * Sets the font for this component. This is overridden to update the\n\t * cached font metrics and to recalculate which lines are visible.\n\t * @param font The font\n\t */\n\tpublic void setFont(Font font)\n\t{\n\t\tsuper.setFont(font);\n\t\tfm = Toolkit.getDefaultToolkit().getFontMetrics(font);\n\t\ttextArea.recalculateVisibleLines();\n\t}\n\n\t/**\n\t * Repaints the text.\n\t * @param gfx The graphics context\n\t */\n\tpublic void paint(Graphics gfx)\n\t{\n\t\ttabSize = fm.charWidth(' ') * ((Integer)textArea\n\t\t\t.getDocument().getProperty(\n\t\t\tPlainDocument.tabSizeAttribute)).intValue();\n\n\t\tRectangle clipRect = gfx.getClipBounds();\n\n\t\tgfx.setColor(getBackground());\n\t\tgfx.fillRect(clipRect.x,clipRect.y,clipRect.width,clipRect.height);\n\n\t\t// We don't use yToLine() here because that method doesn't\n\t\t// return lines past the end of the document\n\t\tint height = fm.getHeight();\n\t\tint firstLine = textArea.getFirstLine();\n\t\tint firstInvalid = firstLine + clipRect.y / height;\n\t\t// Because the clipRect's height is usually an even multiple\n\t\t// of the font height, we subtract 1 from it, otherwise one\n\t\t// too many lines will always be painted.\n\t\tint lastInvalid = firstLine + (clipRect.y + clipRect.height - 1) / height;\n\n\t\ttry\n\t\t{\n\t\t\tTokenMarker tokenMarker = textArea.getDocument()\n\t\t\t\t.getTokenMarker();\n\t\t\tint x = textArea.getHorizontalOffset();\n\n\t\t\tfor(int line = firstInvalid; line <= lastInvalid; line++)\n\t\t\t{\n\t\t\t\tpaintLine(gfx,tokenMarker,line,x);\n\t\t\t}\n\n\t\t\tif(tokenMarker != null && tokenMarker.isNextLineRequested())\n\t\t\t{\n\t\t\t\tint h = clipRect.y + clipRect.height;\n\t\t\t\trepaint(0,h,getWidth(),getHeight() - h);\n\t\t\t}\n\t\t}\n\t\tcatch(Exception e)\n\t\t{\n\t\t\tSystem.err.println(\"Error repainting line\"\n\t\t\t\t+ \" range {\" + firstInvalid + \",\"\n\t\t\t\t+ lastInvalid + \"}:\");\n\t\t\te.printStackTrace();\n\t\t}\n\t}\n\n\t/**\n\t * Marks a line as needing a repaint.\n\t * @param line The line to invalidate\n\t */\n\tpublic final void invalidateLine(int line)\n\t{\n\t\trepaint(0,textArea.lineToY(line) + fm.getMaxDescent() + fm.getLeading(),\n\t\t\tgetWidth(),fm.getHeight());\n\t}\n\n\t/**\n\t * Marks a range of lines as needing a repaint.\n\t * @param firstLine The first line to invalidate\n\t * @param lastLine The last line to invalidate\n\t */\n\tpublic final void invalidateLineRange(int firstLine, int lastLine)\n\t{\n\t\trepaint(0,textArea.lineToY(firstLine) + fm.getMaxDescent() + fm.getLeading(),\n\t\t\tgetWidth(),(lastLine - firstLine + 1) * fm.getHeight());\n\t}\n\n\t/**\n\t * Repaints the lines containing the selection.\n\t */\n\tpublic final void invalidateSelectedLines()\n\t{\n\t\tinvalidateLineRange(textArea.getSelectionStartLine(),\n\t\t\ttextArea.getSelectionEndLine());\n\t}\n\n\t/**\n\t * Implementation of TabExpander interface. Returns next tab stop after\n\t * a specified point.\n\t * @param x The x co-ordinate\n\t * @param tabOffset Ignored\n\t * @return The next tab stop after <i>x</i>\n\t */\n\tpublic float nextTabStop(float x, int tabOffset)\n\t{\n\t\tint offset = textArea.getHorizontalOffset();\n\t\tint ntabs = ((int)x - offset) / tabSize;\n\t\treturn (ntabs + 1) * tabSize + offset;\n\t}\n\n\t/**\n\t * Returns the painter's preferred size.\n\t */\n\tpublic Dimension getPreferredSize()\n\t{\n\t\tDimension dim = new Dimension();\n\t\tdim.width = fm.charWidth('w') * cols;\n\t\tdim.height = fm.getHeight() * rows;\n\t\treturn dim;\n\t}\n\n\n\t/**\n\t * Returns the painter's minimum size.\n\t */\n\tpublic Dimension getMinimumSize()\n\t{\n\t\treturn getPreferredSize();\n\t}\n\n\t// package-private members\n\tint currentLineIndex;\n\tToken currentLineTokens;\n\tSegment currentLine;\n\n\t// protected members\n\tprotected JEditTextArea textArea;\n\t\n\tprotected SyntaxStyle[] styles;\n\tprotected Color caretColor;\n\tprotected Color selectionColor;\n\tprotected Color lineHighlightColor;\n\tprotected Color bracketHighlightColor;\n\tprotected Color eolMarkerColor;\n\n\tprotected boolean blockCaret;\n\tprotected boolean lineHighlight;\n\tprotected boolean bracketHighlight;\n\tprotected boolean paintInvalid;\n\tprotected boolean eolMarkers;\n\tprotected int cols;\n\tprotected int rows;\n\t\n\tprotected int tabSize;\n\tprotected FontMetrics fm;\n\n\tprotected Highlight highlights;\n\n\tprotected void paintLine(Graphics gfx, TokenMarker tokenMarker,\n\t\tint line, int x)\n\t{\n\t\tFont defaultFont = getFont();\n\t\tColor defaultColor = getForeground();\n\n\t\tcurrentLineIndex = line;\n\t\tint y = textArea.lineToY(line);\n\n\t\tif(line < 0 || line >= textArea.getLineCount())\n\t\t{\n\t\t\tif(paintInvalid)\n\t\t\t{\n\t\t\t\tpaintHighlight(gfx,line,y);\n\t\t\t\tstyles[Token.INVALID].setGraphicsFlags(gfx,defaultFont);\n\t\t\t\tgfx.drawString(\"~\",0,y + fm.getHeight());\n\t\t\t}\n\t\t}\n\t\telse if(tokenMarker == null)\n\t\t{\n\t\t\tpaintPlainLine(gfx,line,defaultFont,defaultColor,x,y);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tpaintSyntaxLine(gfx,tokenMarker,line,defaultFont,\n\t\t\t\tdefaultColor,x,y);\n\t\t}\n\t}\n\n\tprotected void paintPlainLine(Graphics gfx, int line, Font defaultFont,\n\t\tColor defaultColor, int x, int y)\n\t{\n\t\tpaintHighlight(gfx,line,y);\n\t\ttextArea.getLineText(line,currentLine);\n\n\t\tgfx.setFont(defaultFont);\n\t\tgfx.setColor(defaultColor);\n\n\t\ty += fm.getHeight();\n\t\tx = Utilities.drawTabbedText(currentLine,x,y,gfx,this,0);\n\n\t\tif(eolMarkers)\n\t\t{\n\t\t\tgfx.setColor(eolMarkerColor);\n\t\t\tgfx.drawString(\".\",x,y);\n\t\t}\n\t}\n\n\tprotected void paintSyntaxLine(Graphics gfx, TokenMarker tokenMarker,\n\t\tint line, Font defaultFont, Color defaultColor, int x, int y)\n\t{\n\t\ttextArea.getLineText(currentLineIndex,currentLine);\n\t\tcurrentLineTokens = tokenMarker.markTokens(currentLine,\n\t\t\tcurrentLineIndex);\n\n\t\tpaintHighlight(gfx,line,y);\n\n\t\tgfx.setFont(defaultFont);\n\t\tgfx.setColor(defaultColor);\n\t\ty += fm.getHeight();\n\t\tx = SyntaxUtilities.paintSyntaxLine(currentLine,\n\t\t\tcurrentLineTokens,styles,this,gfx,x,y);\n\n\t\tif(eolMarkers)\n\t\t{\n\t\t\tgfx.setColor(eolMarkerColor);\n\t\t\tgfx.drawString(\".\",x,y);\n\t\t}\n\t}\n\n\tprotected void paintHighlight(Graphics gfx, int line, int y)\n\t{\n\t\tif(line >= textArea.getSelectionStartLine()\n\t\t\t&& line <= textArea.getSelectionEndLine())\n\t\t\tpaintLineHighlight(gfx,line,y);\n\n\t\tif(highlights != null)\n\t\t\thighlights.paintHighlight(gfx,line,y);\n\n\t\tif(bracketHighlight && line == textArea.getBracketLine())\n\t\t\tpaintBracketHighlight(gfx,line,y);\n\n\t\tif(line == textArea.getCaretLine())\n\t\t\tpaintCaret(gfx,line,y);\n\t}\n\n\tprotected void paintLineHighlight(Graphics gfx, int line, int y)\n\t{\n\t\tint height = fm.getHeight();\n\t\ty += fm.getLeading() + fm.getMaxDescent();\n\n\t\tint selectionStart = textArea.getSelectionStart();\n\t\tint selectionEnd = textArea.getSelectionEnd();\n\n\t\tif(selectionStart == selectionEnd)\n\t\t{\n\t\t\tif(lineHighlight)\n\t\t\t{\n\t\t\t\tgfx.setColor(lineHighlightColor);\n\t\t\t\tgfx.fillRect(0,y,getWidth(),height);\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tgfx.setColor(selectionColor);\n\n\t\t\tint selectionStartLine = textArea.getSelectionStartLine();\n\t\t\tint selectionEndLine = textArea.getSelectionEndLine();\n\t\t\tint lineStart = textArea.getLineStartOffset(line);\n\n\t\t\tint x1, x2;\n\t\t\tif(textArea.isSelectionRectangular())\n\t\t\t{\n\t\t\t\tint lineLen = textArea.getLineLength(line);\n\t\t\t\tx1 = textArea._offsetToX(line,Math.min(lineLen,\n\t\t\t\t\tselectionStart - textArea.getLineStartOffset(\n\t\t\t\t\tselectionStartLine)));\n\t\t\t\tx2 = textArea._offsetToX(line,Math.min(lineLen,\n\t\t\t\t\tselectionEnd - textArea.getLineStartOffset(\n\t\t\t\t\tselectionEndLine)));\n\t\t\t\tif(x1 == x2)\n\t\t\t\t\tx2++;\n\t\t\t}\n\t\t\telse if(selectionStartLine == selectionEndLine)\n\t\t\t{\n\t\t\t\tx1 = textArea._offsetToX(line,\n\t\t\t\t\tselectionStart - lineStart);\n\t\t\t\tx2 = textArea._offsetToX(line,\n\t\t\t\t\tselectionEnd - lineStart);\n\t\t\t}\n\t\t\telse if(line == selectionStartLine)\n\t\t\t{\n\t\t\t\tx1 = textArea._offsetToX(line,\n\t\t\t\t\tselectionStart - lineStart);\n\t\t\t\tx2 = getWidth();\n\t\t\t}\n\t\t\telse if(line == selectionEndLine)\n\t\t\t{\n\t\t\t\tx1 = 0;\n\t\t\t\tx2 = textArea._offsetToX(line,\n\t\t\t\t\tselectionEnd - lineStart);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tx1 = 0;\n\t\t\t\tx2 = getWidth();\n\t\t\t}\n\n\t\t\t// \"inlined\" min/max()\n\t\t\tgfx.fillRect(x1 > x2 ? x2 : x1,y,x1 > x2 ?\n\t\t\t\t(x1 - x2) : (x2 - x1),height);\n\t\t}\n\n\t}\n\n\tprotected void paintBracketHighlight(Graphics gfx, int line, int y)\n\t{\n\t\tint position = textArea.getBracketPosition();\n\t\tif(position == -1)\n\t\t\treturn;\n\t\ty += fm.getLeading() + fm.getMaxDescent();\n\t\tint x = textArea._offsetToX(line,position);\n\t\tgfx.setColor(bracketHighlightColor);\n\t\t// Hack!!! Since there is no fast way to get the character\n\t\t// from the bracket matching routine, we use ( since all\n\t\t// brackets probably have the same width anyway\n\t\tgfx.drawRect(x,y,fm.charWidth('(') - 1,\n\t\t\tfm.getHeight() - 1);\n\t}\n\n\tprotected void paintCaret(Graphics gfx, int line, int y)\n\t{\n\t\tif(textArea.isCaretVisible())\n\t\t{\n\t\t\tint offset = textArea.getCaretPosition() \n\t\t\t\t- textArea.getLineStartOffset(line);\n\t\t\tint caretX = textArea._offsetToX(line,offset);\n\t\t\tint caretWidth = ((blockCaret ||\n\t\t\t\ttextArea.isOverwriteEnabled()) ?\n\t\t\t\tfm.charWidth('w') : 1);\n\t\t\ty += fm.getLeading() + fm.getMaxDescent();\n\t\t\tint height = fm.getHeight();\n\t\t\t\n\t\t\tgfx.setColor(caretColor);\n\n\t\t\tif(textArea.isOverwriteEnabled())\n\t\t\t{\n\t\t\t\tgfx.fillRect(caretX,y + height - 1,\n\t\t\t\t\tcaretWidth,1);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tgfx.drawRect(caretX,y,caretWidth - 1,height - 1);\n\t\t\t}\n\t\t}\n\t}\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/jedit/TextUtilities.java",
    "content": "/*\n * TextUtilities.java - Utility functions used by the text area classes\n * Copyright (C) 1999 Slava Pestov\n *\n * You may use and modify this package for any purpose. Redistribution is\n * permitted, in both source and binary form, provided that this notice\n * remains intact in all source distributions of this package.\n */\npackage de.grimmfrost.tda.utils.jedit;\n\nimport javax.swing.text.*;\n\n/**\n * Class with several utility functions used by the text area component.\n * @author Slava Pestov\n * @version $Id: TextUtilities.java,v 1.1 2007-10-03 12:50:26 irockel Exp $\n */\npublic class TextUtilities\n{\n\t/**\n\t * Returns the offset of the bracket matching the one at the\n\t * specified offset of the document, or -1 if the bracket is\n\t * unmatched (or if the character is not a bracket).\n\t * @param doc The document\n\t * @param offset The offset\n\t * @exception BadLocationException If an out-of-bounds access\n\t * was attempted on the document text\n\t */\n\tpublic static int findMatchingBracket(Document doc, int offset)\n\t\tthrows BadLocationException\n\t{\n\t\tif(doc.getLength() == 0)\n\t\t\treturn -1;\n\t\tchar c = doc.getText(offset,1).charAt(0);\n\t\tchar cprime; // c` - corresponding character\n\t\tboolean direction; // true = back, false = forward\n\n\t\tswitch(c)\n\t\t{\n\t\tcase '(': cprime = ')'; direction = false; break;\n\t\tcase ')': cprime = '('; direction = true; break;\n\t\tcase '[': cprime = ']'; direction = false; break;\n\t\tcase ']': cprime = '['; direction = true; break;\n\t\tcase '{': cprime = '}'; direction = false; break;\n\t\tcase '}': cprime = '{'; direction = true; break;\n\t\tdefault: return -1;\n\t\t}\n\n\t\tint count;\n\n\t\t// How to merge these two cases is left as an exercise\n\t\t// for the reader.\n\n\t\t// Go back or forward\n\t\tif(direction)\n\t\t{\n\t\t\t// Count is 1 initially because we have already\n\t\t\t// `found' one closing bracket\n\t\t\tcount = 1;\n\n\t\t\t// Get text[0,offset-1];\n\t\t\tString text = doc.getText(0,offset);\n\n\t\t\t// Scan backwards\n\t\t\tfor(int i = offset - 1; i >= 0; i--)\n\t\t\t{\n\t\t\t\t// If text[i] == c, we have found another\n\t\t\t\t// closing bracket, therefore we will need\n\t\t\t\t// two opening brackets to complete the\n\t\t\t\t// match.\n\t\t\t\tchar x = text.charAt(i);\n\t\t\t\tif(x == c)\n\t\t\t\t\tcount++;\n\n\t\t\t\t// If text[i] == cprime, we have found a\n\t\t\t\t// opening bracket, so we return i if\n\t\t\t\t// --count == 0\n\t\t\t\telse if(x == cprime)\n\t\t\t\t{\n\t\t\t\t\tif(--count == 0)\n\t\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\t// Count is 1 initially because we have already\n\t\t\t// `found' one opening bracket\n\t\t\tcount = 1;\n\n\t\t\t// So we don't have to + 1 in every loop\n\t\t\toffset++;\n\n\t\t\t// Number of characters to check\n\t\t\tint len = doc.getLength() - offset;\n\n\t\t\t// Get text[offset+1,len];\n\t\t\tString text = doc.getText(offset,len);\n\n\t\t\t// Scan forwards\n\t\t\tfor(int i = 0; i < len; i++)\n\t\t\t{\n\t\t\t\t// If text[i] == c, we have found another\n\t\t\t\t// opening bracket, therefore we will need\n\t\t\t\t// two closing brackets to complete the\n\t\t\t\t// match.\n\t\t\t\tchar x = text.charAt(i);\n\n\t\t\t\tif(x == c)\n\t\t\t\t\tcount++;\n\n\t\t\t\t// If text[i] == cprime, we have found an\n\t\t\t\t// closing bracket, so we return i if\n\t\t\t\t// --count == 0\n\t\t\t\telse if(x == cprime)\n\t\t\t\t{\n\t\t\t\t\tif(--count == 0)\n\t\t\t\t\t\treturn i + offset;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Nothing found\n\t\treturn -1;\n\t}\n\n\t/**\n\t * Locates the start of the word at the specified position.\n\t * @param line The text\n\t * @param pos The position\n\t */\n\tpublic static int findWordStart(String line, int pos, String noWordSep)\n\t{\n\t\tchar ch = line.charAt(pos - 1);\n\n\t\tif(noWordSep == null)\n\t\t\tnoWordSep = \"\";\n\t\tboolean selectNoLetter = (!Character.isLetterOrDigit(ch)\n\t\t\t&& noWordSep.indexOf(ch) == -1);\n\n\t\tint wordStart = 0;\n\t\tfor(int i = pos - 1; i >= 0; i--)\n\t\t{\n\t\t\tch = line.charAt(i);\n\t\t\tif(selectNoLetter ^ (!Character.isLetterOrDigit(ch) &&\n\t\t\t\tnoWordSep.indexOf(ch) == -1))\n\t\t\t{\n\t\t\t\twordStart = i + 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn wordStart;\n\t}\n\n\t/**\n\t * Locates the end of the word at the specified position.\n\t * @param line The text\n\t * @param pos The position\n\t */\n\tpublic static int findWordEnd(String line, int pos, String noWordSep)\n\t{\n\t\tchar ch = line.charAt(pos);\n\n\t\tif(noWordSep == null)\n\t\t\tnoWordSep = \"\";\n\t\tboolean selectNoLetter = (!Character.isLetterOrDigit(ch)\n\t\t\t&& noWordSep.indexOf(ch) == -1);\n\n\t\tint wordEnd = line.length();\n\t\tfor(int i = pos; i < line.length(); i++)\n\t\t{\n\t\t\tch = line.charAt(i);\n\t\t\tif(selectNoLetter ^ (!Character.isLetterOrDigit(ch) &&\n\t\t\t\tnoWordSep.indexOf(ch) == -1))\n\t\t\t{\n\t\t\t\twordEnd = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn wordEnd;\n\t}\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/jedit/Token.java",
    "content": "/*\n * Token.java - Generic token\n * Copyright (C) 1998, 1999 Slava Pestov\n *\n * You may use and modify this package for any purpose. Redistribution is\n * permitted, in both source and binary form, provided that this notice\n * remains intact in all source distributions of this package.\n */\npackage de.grimmfrost.tda.utils.jedit;\n\n/**\n * A linked list of tokens. Each token has three fields - a token\n * identifier, which is a byte value that can be looked up in the\n * array returned by <code>SyntaxDocument.getColors()</code>\n * to get a color value, a length value which is the length of the\n * token in the text, and a pointer to the next token in the list.\n *\n * @author Slava Pestov\n * @version $Id: Token.java,v 1.1 2007-10-03 12:50:26 irockel Exp $\n */\npublic class Token\n{\n\t/**\n\t * Normal text token id. This should be used to mark\n\t * normal text.\n\t */\n\tpublic static final byte NULL = 0;\n\n\t/**\n\t * Comment 1 token id. This can be used to mark a comment.\n\t */\n\tpublic static final byte COMMENT1 = 1;\n\n\t/**\n\t * Comment 2 token id. This can be used to mark a comment.\n\t */\n\tpublic static final byte COMMENT2 = 2;\n\n\t\n\t/**\n\t * Literal 1 token id. This can be used to mark a string\n\t * literal (eg, C mode uses this to mark \"...\" literals)\n\t */\n\tpublic static final byte LITERAL1 = 3;\n\n\t/**\n\t * Literal 2 token id. This can be used to mark an object\n\t * literal (eg, Java mode uses this to mark true, false, etc)\n\t */\n\tpublic static final byte LITERAL2 = 4;\n\n\t/**\n\t * Label token id. This can be used to mark labels\n\t * (eg, C mode uses this to mark ...: sequences)\n\t */\n\tpublic static final byte LABEL = 5;\n\n\t/**\n\t * Keyword 1 token id. This can be used to mark a\n\t * keyword. This should be used for general language\n\t * constructs.\n\t */\n\tpublic static final byte KEYWORD1 = 6;\n\n\t/**\n\t * Keyword 2 token id. This can be used to mark a\n\t * keyword. This should be used for preprocessor\n\t * commands, or variables.\n\t */\n\tpublic static final byte KEYWORD2 = 7;\n\n\t/**\n\t * Keyword 3 token id. This can be used to mark a\n\t * keyword. This should be used for data types.\n\t */\n\tpublic static final byte KEYWORD3 = 8;\n\n\t/**\n\t * Operator token id. This can be used to mark an\n\t * operator. (eg, SQL mode marks +, -, etc with this\n\t * token type)\n\t */\n\tpublic static final byte OPERATOR = 9;\n\n\t/**\n\t * Invalid token id. This can be used to mark invalid\n\t * or incomplete tokens, so the user can easily spot\n\t * syntax errors.\n\t */\n\tpublic static final byte INVALID = 10;\n\n\t/**\n\t * The total number of defined token ids.\n\t */\n\tpublic static final byte ID_COUNT = 11;\n\n\t/**\n\t * The first id that can be used for internal state\n\t * in a token marker.\n\t */\n\tpublic static final byte INTERNAL_FIRST = 100;\n\n\t/**\n\t * The last id that can be used for internal state\n\t * in a token marker.\n\t */\n\tpublic static final byte INTERNAL_LAST = 126;\n\n\t/**\n\t * The token type, that along with a length of 0\n\t * marks the end of the token list.\n\t */\n\tpublic static final byte END = 127;\n\n\t/**\n\t * The length of this token.\n\t */\n\tpublic int length;\n\n\t/**\n\t * The id of this token.\n\t */\n\tpublic byte id;\n\n\t/**\n\t * The next token in the linked list.\n\t */\n\tpublic Token next;\n\n\t/**\n\t * Creates a new token.\n\t * @param length The length of the token\n\t * @param id The id of the token\n\t */\n\tpublic Token(int length, byte id)\n\t{\n\t\tthis.length = length;\n\t\tthis.id = id;\n\t}\n\n\t/**\n\t * Returns a string representation of this token.\n\t */\n\tpublic String toString()\n\t{\n\t\treturn \"[id=\" + id + \",length=\" + length + \"]\";\n\t}\n}\n"
  },
  {
    "path": "tda/src/main/java/de/grimmfrost/tda/utils/jedit/TokenMarker.java",
    "content": "/*\n * TokenMarker.java - Generic token marker\n * Copyright (C) 1998, 1999 Slava Pestov\n *\n * You may use and modify this package for any purpose. Redistribution is\n * permitted, in both source and binary form, provided that this notice\n * remains intact in all source distributions of this package.\n */\npackage de.grimmfrost.tda.utils.jedit;\n\nimport javax.swing.text.Segment;\nimport java.util.*;\n\n/**\n * A token marker that splits lines of text into tokens. Each token carries\n * a length field and an indentification tag that can be mapped to a color\n * for painting that token.<p>\n *\n * For performance reasons, the linked list of tokens is reused after each\n * line is tokenized. Therefore, the return value of <code>markTokens</code>\n * should only be used for immediate painting. Notably, it cannot be\n * cached.\n *\n * @author Slava Pestov\n * @version $Id: TokenMarker.java,v 1.1 2007-10-03 12:50:26 irockel Exp $\n *\n */\npublic abstract class TokenMarker\n{\n\t/**\n\t * A wrapper for the lower-level <code>markTokensImpl</code> method\n\t * that is called to split a line up into tokens.\n\t * @param line The line\n\t * @param lineIndex The line number\n\t */\n\tpublic Token markTokens(Segment line, int lineIndex)\n\t{\n\t\tif(lineIndex >= length)\n\t\t{\n\t\t\tthrow new IllegalArgumentException(\"Tokenizing invalid line: \"\n\t\t\t\t+ lineIndex);\n\t\t}\n\n\t\tlastToken = null;\n\n\t\tLineInfo info = lineInfo[lineIndex];\n\t\tLineInfo prev;\n\t\tif(lineIndex == 0)\n\t\t\tprev = null;\n\t\telse\n\t\t\tprev = lineInfo[lineIndex - 1];\n\n\t\tbyte oldToken = info.token;\n\t\tbyte token = markTokensImpl(prev == null ?\n\t\t\tToken.NULL : prev.token,line,lineIndex);\n\n\t\tinfo.token = token;\n\n\t\t/*\n\t\t * This is a foul hack. It stops nextLineRequested\n\t\t * from being cleared if the same line is marked twice.\n\t\t *\n\t\t * Why is this necessary? It's all JEditTextArea's fault.\n\t\t * When something is inserted into the text, firing a\n\t\t * document event, the insertUpdate() method shifts the\n\t\t * caret (if necessary) by the amount inserted.\n\t\t *\n\t\t * All caret movement is handled by the select() method,\n\t\t * which eventually pipes the new position to scrollTo()\n\t\t * and calls repaint().\n\t\t *\n\t\t * Note that at this point in time, the new line hasn't\n\t\t * yet been painted; the caret is moved first.\n\t\t *\n\t\t * scrollTo() calls offsetToX(), which tokenizes the line\n\t\t * unless it is being called on the last line painted\n\t\t * (in which case it uses the text area's painter cached\n\t\t * token list). What scrollTo() does next is irrelevant.\n\t\t *\n\t\t * After scrollTo() has done it's job, repaint() is\n\t\t * called, and eventually we end up in paintLine(), whose\n\t\t * job is to paint the changed line. It, too, calls\n\t\t * markTokens().\n\t\t *\n\t\t * The problem was that if the line started a multiline\n\t\t * token, the first markTokens() (done in offsetToX())\n\t\t * would set nextLineRequested (because the line end\n\t\t * token had changed) but the second would clear it\n\t\t * (because the line was the same that time) and therefore\n\t\t * paintLine() would never know that it needed to repaint\n\t\t * subsequent lines.\n\t\t *\n\t\t * This bug took me ages to track down, that's why I wrote\n\t\t * all the relevant info down so that others wouldn't\n\t\t * duplicate it.\n\t\t */\n\t\t if(!(lastLine == lineIndex && nextLineRequested))\n\t\t\tnextLineRequested = (oldToken != token);\n\n\t\tlastLine = lineIndex;\n\n\t\taddToken(0,Token.END);\n\n\t\treturn firstToken;\n\t}\n\n\t/**\n\t * An abstract method that splits a line up into tokens. It\n\t * should parse the line, and call <code>addToken()</code> to\n\t * add syntax tokens to the token list. Then, it should return\n\t * the initial token type for the next line.<p>\n\t *\n\t * For example if the current line contains the start of a \n\t * multiline comment that doesn't end on that line, this method\n\t * should return the comment token type so that it continues on\n\t * the next line.\n\t *\n\t * @param token The initial token type for this line\n\t * @param line The line to be tokenized\n\t * @param lineIndex The index of the line in the document,\n\t * starting at 0\n\t * @return The initial token type for the next line\n\t */\n\tprotected abstract byte markTokensImpl(byte token, Segment line,\n\t\tint lineIndex);\n\n\t/**\n\t * Returns if the token marker supports tokens that span multiple\n\t * lines. If this is true, the object using this token marker is\n\t * required to pass all lines in the document to the\n\t * <code>markTokens()</code> method (in turn).<p>\n\t *\n\t * The default implementation returns true; it should be overridden\n\t * to return false on simpler token markers for increased speed.\n\t */\n\tpublic boolean supportsMultilineTokens()\n\t{\n\t\treturn true;\n\t}\n\n\t/**\n\t * Informs the token marker that lines have been inserted into\n\t * the document. This inserts a gap in the <code>lineInfo</code>\n\t * array.\n\t * @param index The first line number\n\t * @param lines The number of lines \n\t */\n\tpublic void insertLines(int index, int lines)\n\t{\n\t\tif(lines <= 0)\n\t\t\treturn;\n\t\tlength += lines;\n\t\tensureCapacity(length);\n\t\tint len = index + lines;\n\t\tSystem.arraycopy(lineInfo,index,lineInfo,len,\n\t\t\tlineInfo.length - len);\n\n\t\tfor(int i = index + lines - 1; i >= index; i--)\n\t\t{\n\t\t\tlineInfo[i] = new LineInfo();\n\t\t}\n\t}\n\t\n\t/**\n\t * Informs the token marker that line have been deleted from\n\t * the document. This removes the lines in question from the\n\t * <code>lineInfo</code> array.\n\t * @param index The first line number\n\t * @param lines The number of lines\n\t */\n\tpublic void deleteLines(int index, int lines)\n\t{\n\t\tif (lines <= 0)\n\t\t\treturn;\n\t\tint len = index + lines;\n\t\tlength -= lines;\n\t\tSystem.arraycopy(lineInfo,len,lineInfo,\n\t\t\tindex,lineInfo.length - len);\n\t}\n\n\t/**\n\t * Returns the number of lines in this token marker.\n\t */\n\tpublic int getLineCount()\n\t{\n\t\treturn length;\n\t}\n\n\t/**\n\t * Returns true if the next line should be repainted. This\n\t * will return true after a line has been tokenized that starts\n\t * a multiline token that continues onto the next line.\n\t */\n\tpublic boolean isNextLineRequested()\n\t{\n\t\treturn nextLineRequested;\n\t}\n\n\t// protected members\n\n\t/**\n\t * The first token in the list. This should be used as the return\n\t * value from <code>markTokens()</code>.\n\t */\n\tprotected Token firstToken;\n\n\t/**\n\t * The last token in the list. New tokens are added here.\n\t * This should be set to null before a new line is to be tokenized.\n\t */\n\tprotected Token lastToken;\n\n\t/**\n\t * An array for storing information about lines. It is enlarged and\n\t * shrunk automatically by the <code>insertLines()</code> and\n\t * <code>deleteLines()</code> methods.\n\t */\n\tprotected LineInfo[] lineInfo;\n\n\t/**\n\t * The number of lines in the model being tokenized. This can be\n\t * less than the length of the <code>lineInfo</code> array.\n\t */\n\tprotected int length;\n\n\t/**\n\t * The last tokenized line.\n\t */\n\tprotected int lastLine;\n\n\t/**\n\t * True if the next line should be painted.\n\t */\n\tprotected boolean nextLineRequested;\n\n\t/**\n\t * Creates a new <code>TokenMarker</code>. This DOES NOT create\n\t * a lineInfo array; an initial call to <code>insertLines()</code>\n\t * does that.\n\t */\n\tprotected TokenMarker()\n\t{\n\t\tlastLine = -1;\n\t}\n\n\t/**\n\t * Ensures that the <code>lineInfo</code> array can contain the\n\t * specified index. This enlarges it if necessary. No action is\n\t * taken if the array is large enough already.<p>\n\t *\n\t * It should be unnecessary to call this under normal\n\t * circumstances; <code>insertLine()</code> should take care of\n\t * enlarging the line info array automatically.\n\t *\n\t * @param index The array index\n\t */\n\tprotected void ensureCapacity(int index)\n\t{\n\t\tif(lineInfo == null)\n\t\t\tlineInfo = new LineInfo[index + 1];\n\t\telse if(lineInfo.length <= index)\n\t\t{\n\t\t\tLineInfo[] lineInfoN = new LineInfo[(index + 1) * 2];\n\t\t\tSystem.arraycopy(lineInfo,0,lineInfoN,0,\n\t\t\t\t\t lineInfo.length);\n\t\t\tlineInfo = lineInfoN;\n\t\t}\n\t}\n\n\t/**\n\t * Adds a token to the token list.\n\t * @param length The length of the token\n\t * @param id The id of the token\n\t */\n\tprotected void addToken(int length, byte id)\n\t{\n\t\tif(id >= Token.INTERNAL_FIRST && id <= Token.INTERNAL_LAST)\n\t\t\tthrow new InternalError(\"Invalid id: \" + id);\n\n\t\tif(length == 0 && id != Token.END)\n\t\t\treturn;\n\n\t\tif(firstToken == null)\n\t\t{\n\t\t\tfirstToken = new Token(length,id);\n\t\t\tlastToken = firstToken;\n\t\t}\n\t\telse if(lastToken == null)\n\t\t{\n\t\t\tlastToken = firstToken;\n\t\t\tfirstToken.length = length;\n\t\t\tfirstToken.id = id;\n\t\t}\n\t\telse if(lastToken.next == null)\n\t\t{\n\t\t\tlastToken.next = new Token(length,id);\n\t\t\tlastToken = lastToken.next;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tlastToken = lastToken.next;\n\t\t\tlastToken.length = length;\n\t\t\tlastToken.id = id;\n\t\t}\n\t}\n\n\t/**\n\t * Inner class for storing information about tokenized lines.\n\t */\n\tpublic class LineInfo\n\t{\n\t\t/**\n\t\t * Creates a new LineInfo object with token = Token.NULL\n\t\t * and obj = null.\n\t\t */\n\t\tpublic LineInfo()\n\t\t{\n\t\t}\n\n\t\t/**\n\t\t * Creates a new LineInfo object with the specified\n\t\t * parameters.\n\t\t */\n\t\tpublic LineInfo(byte token, Object obj)\n\t\t{\n\t\t\tthis.token = token;\n\t\t\tthis.obj = obj;\n\t\t}\n\n\t\t/**\n\t\t * The id of the last token of the line.\n\t\t */\n\t\tpublic byte token;\n\n\t\t/**\n\t\t * This is for use by the token marker implementations\n\t\t * themselves. It can be used to store anything that\n\t\t * is an object and that needs to exist on a per-line\n\t\t * basis.\n\t\t */\n\t\tpublic Object obj;\n\t}\n}\n"
  },
  {
    "path": "tda/src/main/resources/META-INF/services/com.sun.tools.jconsole.JConsolePlugin",
    "content": "de.grimmfrost.tda.jconsole.TDAPlugin\n"
  },
  {
    "path": "tda/src/main/resources/de/grimmfrost/tda/doc/COPYING",
    "content": "<html>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"stylesheet.css\" title=\"Style\">\n<body bgcolor=\"ffffff\"><pre>\n\t\t  GNU LESSER GENERAL PUBLIC LICENSE\n\t\t       Version 2.1, February 1999\n\n Copyright (C) 1991, 1999 Free Software Foundation, Inc.\n     51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n[This is the first released version of the Lesser GPL.  It also counts\n as the successor of the GNU Library Public License, version 2, hence\n the version number 2.1.]\n\n\t\t\t    Preamble\n\n  The licenses for most software are designed to take away your\nfreedom to share and change it.  By contrast, the GNU General Public\nLicenses are intended to guarantee your freedom to share and change\nfree software--to make sure the software is free for all its users.\n\n  This license, the Lesser General Public License, applies to some\nspecially designated software packages--typically libraries--of the\nFree Software Foundation and other authors who decide to use it.  You\ncan use it too, but we suggest you first think carefully about whether\nthis license or the ordinary General Public License is the better\nstrategy to use in any particular case, based on the explanations below.\n\n  When we speak of free software, we are referring to freedom of use,\nnot price.  Our General Public Licenses are designed to make sure that\nyou have the freedom to distribute copies of free software (and charge\nfor this service if you wish); that you receive source code or can get\nit if you want it; that you can change the software and use pieces of\nit in new free programs; and that you are informed that you can do\nthese things.\n\n  To protect your rights, we need to make restrictions that forbid\ndistributors to deny you these rights or to ask you to surrender these\nrights.  These restrictions translate to certain responsibilities for\nyou if you distribute copies of the library or if you modify it.\n\n  For example, if you distribute copies of the library, whether gratis\nor for a fee, you must give the recipients all the rights that we gave\nyou.  You must make sure that they, too, receive or can get the source\ncode.  If you link other code with the library, you must provide\ncomplete object files to the recipients, so that they can relink them\nwith the library after making changes to the library and recompiling\nit.  And you must show them these terms so they know their rights.\n\n  We protect your rights with a two-step method: (1) we copyright the\nlibrary, and (2) we offer you this license, which gives you legal\npermission to copy, distribute and/or modify the library.\n\n  To protect each distributor, we want to make it very clear that\nthere is no warranty for the free library.  Also, if the library is\nmodified by someone else and passed on, the recipients should know\nthat what they have is not the original version, so that the original\nauthor's reputation will not be affected by problems that might be\nintroduced by others.\n\f\n  Finally, software patents pose a constant threat to the existence of\nany free program.  We wish to make sure that a company cannot\neffectively restrict the users of a free program by obtaining a\nrestrictive license from a patent holder.  Therefore, we insist that\nany patent license obtained for a version of the library must be\nconsistent with the full freedom of use specified in this license.\n\n  Most GNU software, including some libraries, is covered by the\nordinary GNU General Public License.  This license, the GNU Lesser\nGeneral Public License, applies to certain designated libraries, and\nis quite different from the ordinary General Public License.  We use\nthis license for certain libraries in order to permit linking those\nlibraries into non-free programs.\n\n  When a program is linked with a library, whether statically or using\na shared library, the combination of the two is legally speaking a\ncombined work, a derivative of the original library.  The ordinary\nGeneral Public License therefore permits such linking only if the\nentire combination fits its criteria of freedom.  The Lesser General\nPublic License permits more lax criteria for linking other code with\nthe library.\n\n  We call this license the \"Lesser\" General Public License because it\ndoes Less to protect the user's freedom than the ordinary General\nPublic License.  It also provides other free software developers Less\nof an advantage over competing non-free programs.  These disadvantages\nare the reason we use the ordinary General Public License for many\nlibraries.  However, the Lesser license provides advantages in certain\nspecial circumstances.\n\n  For example, on rare occasions, there may be a special need to\nencourage the widest possible use of a certain library, so that it becomes\na de-facto standard.  To achieve this, non-free programs must be\nallowed to use the library.  A more frequent case is that a free\nlibrary does the same job as widely used non-free libraries.  In this\ncase, there is little to gain by limiting the free library to free\nsoftware only, so we use the Lesser General Public License.\n\n  In other cases, permission to use a particular library in non-free\nprograms enables a greater number of people to use a large body of\nfree software.  For example, permission to use the GNU C Library in\nnon-free programs enables many more people to use the whole GNU\noperating system, as well as its variant, the GNU/Linux operating\nsystem.\n\n  Although the Lesser General Public License is Less protective of the\nusers' freedom, it does ensure that the user of a program that is\nlinked with the Library has the freedom and the wherewithal to run\nthat program using a modified version of the Library.\n\n  The precise terms and conditions for copying, distribution and\nmodification follow.  Pay close attention to the difference between a\n\"work based on the library\" and a \"work that uses the library\".  The\nformer contains code derived from the library, whereas the latter must\nbe combined with the library in order to run.\n\n\t\t  GNU LESSER GENERAL PUBLIC LICENSE\n   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n  0. This License Agreement applies to any software library or other\nprogram which contains a notice placed by the copyright holder or\nother authorized party saying it may be distributed under the terms of\nthis Lesser General Public License (also called \"this License\").\nEach licensee is addressed as \"you\".\n\n  A \"library\" means a collection of software functions and/or data\nprepared so as to be conveniently linked with application programs\n(which use some of those functions and data) to form executables.\n\n  The \"Library\", below, refers to any such software library or work\nwhich has been distributed under these terms.  A \"work based on the\nLibrary\" means either the Library or any derivative work under\ncopyright law: that is to say, a work containing the Library or a\nportion of it, either verbatim or with modifications and/or translated\nstraightforwardly into another language.  (Hereinafter, translation is\nincluded without limitation in the term \"modification\".)\n\n  \"Source code\" for a work means the preferred form of the work for\nmaking modifications to it.  For a library, complete source code means\nall the source code for all modules it contains, plus any associated\ninterface definition files, plus the scripts used to control compilation\nand installation of the library.\n\n  Activities other than copying, distribution and modification are not\ncovered by this License; they are outside its scope.  The act of\nrunning a program using the Library is not restricted, and output from\nsuch a program is covered only if its contents constitute a work based\non the Library (independent of the use of the Library in a tool for\nwriting it).  Whether that is true depends on what the Library does\nand what the program that uses the Library does.\n  \n  1. You may copy and distribute verbatim copies of the Library's\ncomplete source code as you receive it, in any medium, provided that\nyou conspicuously and appropriately publish on each copy an\nappropriate copyright notice and disclaimer of warranty; keep intact\nall the notices that refer to this License and to the absence of any\nwarranty; and distribute a copy of this License along with the\nLibrary.\n\n  You may charge a fee for the physical act of transferring a copy,\nand you may at your option offer warranty protection in exchange for a\nfee.\n\n  2. You may modify your copy or copies of the Library or any portion\nof it, thus forming a work based on the Library, and copy and\ndistribute such modifications or work under the terms of Section 1\nabove, provided that you also meet all of these conditions:\n\n    a) The modified work must itself be a software library.\n\n    b) You must cause the files modified to carry prominent notices\n    stating that you changed the files and the date of any change.\n\n    c) You must cause the whole of the work to be licensed at no\n    charge to all third parties under the terms of this License.\n\n    d) If a facility in the modified Library refers to a function or a\n    table of data to be supplied by an application program that uses\n    the facility, other than as an argument passed when the facility\n    is invoked, then you must make a good faith effort to ensure that,\n    in the event an application does not supply such function or\n    table, the facility still operates, and performs whatever part of\n    its purpose remains meaningful.\n\n    (For example, a function in a library to compute square roots has\n    a purpose that is entirely well-defined independent of the\n    application.  Therefore, Subsection 2d requires that any\n    application-supplied function or table used by this function must\n    be optional: if the application does not supply it, the square\n    root function must still compute square roots.)\n\nThese requirements apply to the modified work as a whole.  If\nidentifiable sections of that work are not derived from the Library,\nand can be reasonably considered independent and separate works in\nthemselves, then this License, and its terms, do not apply to those\nsections when you distribute them as separate works.  But when you\ndistribute the same sections as part of a whole which is a work based\non the Library, the distribution of the whole must be on the terms of\nthis License, whose permissions for other licensees extend to the\nentire whole, and thus to each and every part regardless of who wrote\nit.\n\nThus, it is not the intent of this section to claim rights or contest\nyour rights to work written entirely by you; rather, the intent is to\nexercise the right to control the distribution of derivative or\ncollective works based on the Library.\n\nIn addition, mere aggregation of another work not based on the Library\nwith the Library (or with a work based on the Library) on a volume of\na storage or distribution medium does not bring the other work under\nthe scope of this License.\n\n  3. You may opt to apply the terms of the ordinary GNU General Public\nLicense instead of this License to a given copy of the Library.  To do\nthis, you must alter all the notices that refer to this License, so\nthat they refer to the ordinary GNU General Public License, version 2,\ninstead of to this License.  (If a newer version than version 2 of the\nordinary GNU General Public License has appeared, then you can specify\nthat version instead if you wish.)  Do not make any other change in\nthese notices.\n\n  Once this change is made in a given copy, it is irreversible for\nthat copy, so the ordinary GNU General Public License applies to all\nsubsequent copies and derivative works made from that copy.\n\n  This option is useful when you wish to copy part of the code of\nthe Library into a program that is not a library.\n\n  4. You may copy and distribute the Library (or a portion or\nderivative of it, under Section 2) in object code or executable form\nunder the terms of Sections 1 and 2 above provided that you accompany\nit with the complete corresponding machine-readable source code, which\nmust be distributed under the terms of Sections 1 and 2 above on a\nmedium customarily used for software interchange.\n\n  If distribution of object code is made by offering access to copy\nfrom a designated place, then offering equivalent access to copy the\nsource code from the same place satisfies the requirement to\ndistribute the source code, even though third parties are not\ncompelled to copy the source along with the object code.\n\n  5. A program that contains no derivative of any portion of the\nLibrary, but is designed to work with the Library by being compiled or\nlinked with it, is called a \"work that uses the Library\".  Such a\nwork, in isolation, is not a derivative work of the Library, and\ntherefore falls outside the scope of this License.\n\n  However, linking a \"work that uses the Library\" with the Library\ncreates an executable that is a derivative of the Library (because it\ncontains portions of the Library), rather than a \"work that uses the\nlibrary\".  The executable is therefore covered by this License.\nSection 6 states terms for distribution of such executables.\n\n  When a \"work that uses the Library\" uses material from a header file\nthat is part of the Library, the object code for the work may be a\nderivative work of the Library even though the source code is not.\nWhether this is true is especially significant if the work can be\nlinked without the Library, or if the work is itself a library.  The\nthreshold for this to be true is not precisely defined by law.\n\n  If such an object file uses only numerical parameters, data\nstructure layouts and accessors, and small macros and small inline\nfunctions (ten lines or less in length), then the use of the object\nfile is unrestricted, regardless of whether it is legally a derivative\nwork.  (Executables containing this object code plus portions of the\nLibrary will still fall under Section 6.)\n\n  Otherwise, if the work is a derivative of the Library, you may\ndistribute the object code for the work under the terms of Section 6.\nAny executables containing that work also fall under Section 6,\nwhether or not they are linked directly with the Library itself.\n\n  6. As an exception to the Sections above, you may also combine or\nlink a \"work that uses the Library\" with the Library to produce a\nwork containing portions of the Library, and distribute that work\nunder terms of your choice, provided that the terms permit\nmodification of the work for the customer's own use and reverse\nengineering for debugging such modifications.\n\n  You must give prominent notice with each copy of the work that the\nLibrary is used in it and that the Library and its use are covered by\nthis License.  You must supply a copy of this License.  If the work\nduring execution displays copyright notices, you must include the\ncopyright notice for the Library among them, as well as a reference\ndirecting the user to the copy of this License.  Also, you must do one\nof these things:\n\n    a) Accompany the work with the complete corresponding\n    machine-readable source code for the Library including whatever\n    changes were used in the work (which must be distributed under\n    Sections 1 and 2 above); and, if the work is an executable linked\n    with the Library, with the complete machine-readable \"work that\n    uses the Library\", as object code and/or source code, so that the\n    user can modify the Library and then relink to produce a modified\n    executable containing the modified Library.  (It is understood\n    that the user who changes the contents of definitions files in the\n    Library will not necessarily be able to recompile the application\n    to use the modified definitions.)\n\n    b) Use a suitable shared library mechanism for linking with the\n    Library.  A suitable mechanism is one that (1) uses at run time a\n    copy of the library already present on the user's computer system,\n    rather than copying library functions into the executable, and (2)\n    will operate properly with a modified version of the library, if\n    the user installs one, as long as the modified version is\n    interface-compatible with the version that the work was made with.\n\n    c) Accompany the work with a written offer, valid for at\n    least three years, to give the same user the materials\n    specified in Subsection 6a, above, for a charge no more\n    than the cost of performing this distribution.\n\n    d) If distribution of the work is made by offering access to copy\n    from a designated place, offer equivalent access to copy the above\n    specified materials from the same place.\n\n    e) Verify that the user has already received a copy of these\n    materials or that you have already sent this user a copy.\n\n  For an executable, the required form of the \"work that uses the\nLibrary\" must include any data and utility programs needed for\nreproducing the executable from it.  However, as a special exception,\nthe materials to be distributed need not include anything that is\nnormally distributed (in either source or binary form) with the major\ncomponents (compiler, kernel, and so on) of the operating system on\nwhich the executable runs, unless that component itself accompanies\nthe executable.\n\n  It may happen that this requirement contradicts the license\nrestrictions of other proprietary libraries that do not normally\naccompany the operating system.  Such a contradiction means you cannot\nuse both them and the Library together in an executable that you\ndistribute.\n\n  7. You may place library facilities that are a work based on the\nLibrary side-by-side in a single library together with other library\nfacilities not covered by this License, and distribute such a combined\nlibrary, provided that the separate distribution of the work based on\nthe Library and of the other library facilities is otherwise\npermitted, and provided that you do these two things:\n\n    a) Accompany the combined library with a copy of the same work\n    based on the Library, uncombined with any other library\n    facilities.  This must be distributed under the terms of the\n    Sections above.\n\n    b) Give prominent notice with the combined library of the fact\n    that part of it is a work based on the Library, and explaining\n    where to find the accompanying uncombined form of the same work.\n\n  8. You may not copy, modify, sublicense, link with, or distribute\nthe Library except as expressly provided under this License.  Any\nattempt otherwise to copy, modify, sublicense, link with, or\ndistribute the Library is void, and will automatically terminate your\nrights under this License.  However, parties who have received copies,\nor rights, from you under this License will not have their licenses\nterminated so long as such parties remain in full compliance.\n\n  9. You are not required to accept this License, since you have not\nsigned it.  However, nothing else grants you permission to modify or\ndistribute the Library or its derivative works.  These actions are\nprohibited by law if you do not accept this License.  Therefore, by\nmodifying or distributing the Library (or any work based on the\nLibrary), you indicate your acceptance of this License to do so, and\nall its terms and conditions for copying, distributing or modifying\nthe Library or works based on it.\n\n  10. Each time you redistribute the Library (or any work based on the\nLibrary), the recipient automatically receives a license from the\noriginal licensor to copy, distribute, link with or modify the Library\nsubject to these terms and conditions.  You may not impose any further\nrestrictions on the recipients' exercise of the rights granted herein.\nYou are not responsible for enforcing compliance by third parties with\nthis License.\n\n  11. If, as a consequence of a court judgment or allegation of patent\ninfringement or for any other reason (not limited to patent issues),\nconditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License.  If you cannot\ndistribute so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you\nmay not distribute the Library at all.  For example, if a patent\nlicense would not permit royalty-free redistribution of the Library by\nall those who receive copies directly or indirectly through you, then\nthe only way you could satisfy both it and this License would be to\nrefrain entirely from distribution of the Library.\n\nIf any portion of this section is held invalid or unenforceable under any\nparticular circumstance, the balance of the section is intended to apply,\nand the section as a whole is intended to apply in other circumstances.\n\nIt is not the purpose of this section to induce you to infringe any\npatents or other property right claims or to contest validity of any\nsuch claims; this section has the sole purpose of protecting the\nintegrity of the free software distribution system which is\nimplemented by public license practices.  Many people have made\ngenerous contributions to the wide range of software distributed\nthrough that system in reliance on consistent application of that\nsystem; it is up to the author/donor to decide if he or she is willing\nto distribute software through any other system and a licensee cannot\nimpose that choice.\n\nThis section is intended to make thoroughly clear what is believed to\nbe a consequence of the rest of this License.\n\n  12. If the distribution and/or use of the Library is restricted in\ncertain countries either by patents or by copyrighted interfaces, the\noriginal copyright holder who places the Library under this License may add\nan explicit geographical distribution limitation excluding those countries,\nso that distribution is permitted only in or among countries not thus\nexcluded.  In such case, this License incorporates the limitation as if\nwritten in the body of this License.\n\n  13. The Free Software Foundation may publish revised and/or new\nversions of the Lesser General Public License from time to time.\nSuch new versions will be similar in spirit to the present version,\nbut may differ in detail to address new problems or concerns.\n\nEach version is given a distinguishing version number.  If the Library\nspecifies a version number of this License which applies to it and\n\"any later version\", you have the option of following the terms and\nconditions either of that version or of any later version published by\nthe Free Software Foundation.  If the Library does not specify a\nlicense version number, you may choose any version ever published by\nthe Free Software Foundation.\n\n  14. If you wish to incorporate parts of the Library into other free\nprograms whose distribution conditions are incompatible with these,\nwrite to the author to ask for permission.  For software which is\ncopyrighted by the Free Software Foundation, write to the Free\nSoftware Foundation; we sometimes make exceptions for this.  Our\ndecision will be guided by the two goals of preserving the free status\nof all derivatives of our free software and of promoting the sharing\nand reuse of software generally.\n\n\t\t\t    NO WARRANTY\n\n  15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO\nWARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.\nEXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR\nOTHER PARTIES PROVIDE THE LIBRARY \"AS IS\" WITHOUT WARRANTY OF ANY\nKIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE\nLIBRARY IS WITH YOU.  SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME\nTHE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n  16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\nWRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY\nAND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU\nFOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR\nCONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE\nLIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING\nRENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A\nFAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF\nSUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\nDAMAGES.\n\n\t\t     END OF TERMS AND CONDITIONS\n\n           How to Apply These Terms to Your New Libraries\n\n  If you develop a new library, and you want it to be of the greatest\npossible use to the public, we recommend making it free software that\neveryone can redistribute and change.  You can do so by permitting\nredistribution under these terms (or, alternatively, under the terms of the\nordinary General Public License).\n\n  To apply these terms, attach the following notices to the library.  It is\nsafest to attach them to the start of each source file to most effectively\nconvey the exclusion of warranty; and each file should have at least the\n\"copyright\" line and a pointer to where the full notice is found.\n\n    <one line to give the library's name and a brief idea of what it does.>\n    Copyright (C) <year>  <name of author>\n\n    This library is free software; you can redistribute it and/or\n    modify it under the terms of the GNU Lesser General Public\n    License as published by the Free Software Foundation; either\n    version 2.1 of the License, or (at your option) any later version.\n\n    This library is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n    Lesser General Public License for more details.\n\n    You should have received a copy of the GNU Lesser General Public\n    License along with this library; if not, write to the Free Software\n    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n\nAlso add information on how to contact you by electronic and paper mail.\n\nYou should also get your employer (if you work as a programmer) or your\nschool, if any, to sign a \"copyright disclaimer\" for the library, if\nnecessary.  Here is a sample; alter the names:\n\n  Yoyodyne, Inc., hereby disclaims all copyright interest in the\n  library `Frob' (a library for tweaking knobs) written by James Random Hacker.\n\n  <signature of Ty Coon>, 1 April 1990\n  Ty Coon, President of Vice\n\nThat's all there is to it!\n\n"
  },
  {
    "path": "tda/src/main/resources/de/grimmfrost/tda/doc/README",
    "content": "<html>\n<link rel=\"stylesheet\" type=\"text/css\" href=\"stylesheet.css\" title=\"Style\">\n<body bgcolor=\"#f5f5f5\">\n<h3>TDA - Thread Dump Analyzer -- Version 3.0</h3>\n\n<p>Note: This is the 3.0 release of the software, for an usage overview see <b><a href=\"https://github.com/irockel/tda\">README</a> on GitHub</b>.</p>\n\n<p>Recent changes are:</p>\n\n<h4>Version 3.0</h4>\n<ul>\n<li>Introduced logging for easier debugging in MCP mode, added red dot in UI mode if error occurred with tooltip to check logfile.</li>\n<li>Experimental support for JSON based jmap thread dumps.</li>\n<li>Support for SMR (Safe Memory Reclamation) parsing in thread dumps (Java 11+).</li>\n<li>Detect stuck Carrier Threads used by Virtual Threads in Java 21+ thread dumps.</li>\n<li>Extended MCP Server for fetching pinned Carrier Threads.</li>\n<li>Added a method to the MCP Server to enable the Agent to fetch a list of threads which are running in native code, including library information if available.</li>\n<li>Reworked the thread dump summary to provide information in a more compact way.</li>\n<li>MacOS Binary is now provided.</li>\n<li>Use FlatLaf for a modern look and feel.</li>\n<li>Fixed address range parsing in thread titles for newer JVMs.</li>\n<li>Fixed missing protocolVersion in MCP, which broke the Cursor Integration.</li>\n<li>Fixed right thread pane to always be visible on first load.</li>\n</ul>\n\n<h4>Version 2.6</h4>\n<ul>\n<li>TDA now is compiled with JDK 11, it requires Java 11 or higher to run, but still supports thread dumps from older JDKs.</li>\n<li>Fixed issue #23: fixed long running thread detection with Java 11+.</li>\n<li>The whole build now is based on maven, no more Netbeans needed for building.</li>\n<li>Biggest new feature: include a mcp server for thread dump parsing from AI Agents.</li>\n</ul>\n\n<h4>Version 2.5</h4>\n<ul>\n<li>Added support for Java Virtual Threads (Project Loom) introduced in Java 19+</li>\n<li>Can parse and analyze thread dumps containing virtual threads</li>\n<li>Provides insights into virtual thread states and carrier thread relationships</li>\n<li>Identifies virtual thread pinning issues</li>\n<li>Updated parsing to handle Java 21 thread dump format</li>\n</ul>\n\n<h4>Version 2.4</h4>\n<ul>\n<li>Compiled using JDK 1.8 so Source Level now is 1.8</li>\n<li>fixed #20: updated tda visual vm plugin to Visual VM 2.0</li>\n<li>fixed #21: fixed parsing of jdk 11 thread dumps.</li>\n<li>fixed colors for dark UIs</li>\n<li>tda.sh can now be called from everywhere</li>\n</ul>\n\n<p>For the complete changelog, please see the <a href=\"https://github.com/irockel/tda/blob/main/CHANGELOG.md\">CHANGELOG.md</a> file in the project root.</p>\n\n<p>Goto to GitHub to report problems and ask questions.</p>\n</body>\n</html>\n\n"
  },
  {
    "path": "tda/src/main/resources/de/grimmfrost/tda/doc/stylesheet.css",
    "content": "/* Javadoc style sheet */\r\n\r\n/* Define colors, fonts and other style attributes here to override the defaults */\r\n\r\n/* Page background color */\r\n\r\nbody {\t\t\tfont-family:  Verdana, Arial, Helvetica; font-size: 10px; margin-left: 15px; }\r\n\r\nbody,h1,h2,h3,i,p,td,th,tt,ol,ul,div { font-family: Verdana, Arial, Helvetica;  }\r\n\r\n\r\nh1,h2,h3,h4,h5   \t\t\t{ font-weight: bold; }\r\nh1               \t\t\t{ font-size: 20px; color: #2c2b27; }\r\nh2               \t\t\t{ font-size: 18px; color: #2c2b27; }\r\nh3               \t\t\t{ font-size: 16px; color: #969494; }\r\nh4               \t\t\t{ font-size: 14px; color: #969494; }\r\nh5               \t\t\t{ font-size: 12px; color: #969494; }\r\n\r\nBODY,P,TD { font-family: Verdana, Arial, Helvetica; font-size: 10px; }  /*letter-spacing:0.2mm; word-spacing:0.8mm; */\r\nTD\t\t\t { vertical-align:top; }\r\nHR\t\t\t { width:100%; height:1px; margin-bottom:8pt; border:0px; }\r\n\r\nA:link           \t\t\t{ color: #9C3300; text-decoration: underline; font-weight: normal;}\r\nA:visited        \t\t\t{ color: #9C3300; text-decoration: underline; font-weight: normal;}\r\nA:active         \t\t\t{ color: #9C3300; text-decoration: underline; font-weight: normal;}\r\nA:hover\t         \t\t\t{ color: #9C3300; text-decoration: none;      font-weight: normal;}\r\n\r\n/* Headings */\r\nh1 { font-size: 145% }\r\ntable.topindex          {  }\r\ntd {\t\t\t\tborder-width:1px; border-style:solid; border-color:#ffffff; }\r\n/* Table colors */\r\n.TableHeadingColor     { background: #f0f0f3 } /* Dark mauve */\r\n.TableSubHeadingColor  { background: #FBEFE8 } /* Light mauve */\r\n.TableRowColor         { background: #FFFFFF } /* White */\r\n\r\n/* Font used in left-hand frame lists */\r\n.FrameTitleFont   { font-size: 100%; font-family: Helvetica, Arial, sans-serif}\r\n.FrameHeadingFont { font-size:  90%; font-family: Helvetica, Arial, sans-serif }\r\n.FrameItemFont    { font-size:  90%; font-family: Helvetica, Arial, sans-serif }\r\n\r\n \r\n/* Navigation bar fonts and colors */\r\n.NavBarCell1    { background-color:#FBEFE8;} /* Light mauve */\r\n.NavBarCell1Rev { background-color:#E37B55;} /* Dark Blue */\r\n.NavBarFont1    { font-family: Arial, Helvetica, sans-serif; color:#000000;}\r\n.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}\r\n\r\n.NavBarCell2    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}\r\n.NavBarCell3    { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}\r\n\r\n"
  },
  {
    "path": "tda/src/main/resources/de/grimmfrost/tda/doc/tips.properties",
    "content": "# Tips of the day.\ntips.count=5\ntip.0=If you open a logfile with thread dumps you should check the thread dump nodes if there was anything special detected about this dump.\ntip.1=Using Filters you can easily filter out uninteresting threads, like e.g. sleeping pool threads. Click on the <b>Filters</b> on the right to set up filters.\ntip.2=Using the long running thread detection after selected several thread dumps you can get an overview of threads which are active in all threads.\ntip.3=You can define custom categories, e.g. \"Application Server Requests Threads\", which displays all request threads found in a dump. Categories use filters to present the data. If a category is empty it is not displayed.\ntip.4=TDA can also be used as JConsole or VisualVM plugin, see Help Contents for further information."
  },
  {
    "path": "tda/src/main/resources/de/grimmfrost/tda/doc/welcome.html",
    "content": "<html xmlns=\"http://www.w3.org/1999/html\">\n<head>\n    <style>\n        body {\n            font-family: \"Segoe UI\", Tahoma, sans-serif;\n            margin: 20px;\n            color: #333333;\n        }\n        h2 {\n            color: #2c3e50;\n            margin-top: 0;\n            padding-bottom: 5px;\n        }\n        .header {\n            text-align: right;\n            font-size: small;\n            font-style: italic;\n            color: #7f8c8d;\n            margin-bottom: 20px;\n        }\n        .container {\n            width: 100%;\n        }\n        .tip-box {\n            background-color: #ffffff;\n            border: 1px solid #dee2e6;\n            padding: 15px;\n            margin-right: 20px;\n        }\n        .tip-header {\n            font-weight: bold;\n            font-size: large;\n            color: #d35400;\n            padding-bottom: 5px;\n            border-bottom: 1px solid #e67e22;\n            margin-bottom: 10px;\n        }\n        .section-header {\n            background-color: #898989;\n            color: #ffffff;\n            padding: 10px 15px;\n            font-weight: bold;\n            font-size: large;\n            border-radius: 4px 4px 0 0;\n        }\n        .section-content {\n            padding: 20px 20px 30px 20px;\n            background-color: #ffffff;\n            border-left: 1px solid #dee2e6;\n            border-right: 1px solid #dee2e6;\n            border-bottom: 1px solid #dee2e6;\n            border-radius: 0 0 4px 4px;\n            margin-bottom: 25px;\n        }\n        .action-link {\n            display: inline-block;\n            margin-top: 5px;\n            margin-bottom: 5px;\n            margin-right: 15px;\n            font-weight: bold;\n            text-decoration: none;\n            color: #2980b9;\n        }\n        .action-link:hover {\n            text-decoration: underline;\n        }\n        .config-links .action-link {\n            display: block;\n            margin: 5px;\n        }\n        .recent-table {\n            width: 100%;\n            margin-top: 10px;\n            margin-bottom: 15px;\n        }\n        .footer {\n            margin-top: 30px;\n            text-align: center;\n            font-size: small;\n            color: #95a5a6;\n        }\n    </style>\n</head>\n<body bgcolor=\"#f5f5f5\">\n    <div class=\"header\">\n        Copyright 2006-2026 - Ingo Rockel <a href=\"mailto:ingo.rockel@gmail.com\">&lt;ingo.rockel@gmail.com&gt;</a>\n    </div>\n\n    <table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n        <tr valign=\"top\">\n            <td width=\"40%\">\n                <div class=\"tip-box\">\n                    <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n                        <tr>\n                            <td valign=\"middle\"><img src=\"./important.png\"></td>\n                            <td width=\"10\"></td>\n                            <td valign=\"middle\"><span class=\"tip-header\">Tip of the day</span></td>\n                        </tr>\n                    </table>\n                    <p>\n                        <!-- ##tipofday## -->\n                    </p>\n                </div>\n            </td>\n            <td width=\"60%\">\n                <table width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n                    <!-- Actions Section -->\n                    <tr>\n                        <td class=\"section-header\">\n                            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n                                <tr>\n                                    <td><img src=\"./fileopen.png\"></td>\n                                    <td width=\"10\"></td>\n                                    <td>Actions</td>\n                                </tr>\n                            </table>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td class=\"section-content\">\n                            <a href=\"openlogfile://\" class=\"action-link\">Open Logfile...</a>\n                            <table class=\"recent-table\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\">\n                                <!-- ##recentlogfiles## -->\n                            </table>\n\n                            <a href=\"opensession://\" class=\"action-link\">Open Session...</a>\n                            <table class=\"recent-table\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\">\n                                <!-- ##recentsessions## -->\n                            </table>\n                        </td>\n                    </tr>\n\n                    <!-- Configuration Section -->\n                    <tr>\n                        <td class=\"section-header\">\n                            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n                                <tr>\n                                    <td><img src=\"./settings.png\"></td>\n                                    <td width=\"10\"></td>\n                                    <td>Configuration</td>\n                                </tr>\n                            </table>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td class=\"section-content\">\n                            <div class=\"config-links\">\n                                <a href=\"preferences://\" class=\"action-link\">Preferences</a><br/>\n                                <a href=\"filters://\" class=\"action-link\">Filters</a><br/>\n                                <a href=\"categories://\" class=\"action-link\">Categories</a><br/>\n                            </div>\n                        </td>\n                    </tr>\n\n                    <!-- Help Section -->\n                    <tr>\n                        <td class=\"section-header\">\n                            <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n                                <tr>\n                                    <td><img src=\"./help.png\"></td>\n                                    <td width=\"10\"></td>\n                                    <td>Help</td>\n                                </tr>\n                            </table>\n                        </td>\n                    </tr>\n                    <tr>\n                        <td class=\"section-content\">\n                            <a href=\"https://github.com/irockel/tda\" class=\"action-link\">TDA on GitHub</a><br/>\n                        </td>\n                    </tr>\n                </table>\n            </td>\n        </tr>\n    </table>\n</body>\n</html>"
  },
  {
    "path": "tda/src/main/resources/de/grimmfrost/tda/locale.properties",
    "content": "# i18n properties/English.\n#\n# This file is part of TDA - Thread Dump Analysis Tool.\n#\n# Foobar is free software; you can redistribute it and/or modify\n# it under the terms of the Lesser GNU General Public License as published by\n# the Free Software Foundation; either version 2.1 of the License, or\n# (at your option) any later version.\n#\n# Foobar is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# Lesser GNU General Public License for more details.\n#\n# You should have received a copy of the Lesser GNU General Public License\n# along with TDA; if not, write to the Free Software\n# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n#\n# $Id: locale.properties,v 1.5 2008-09-19 12:52:09 irockel Exp $\n#\n# common translations\nok.button=Ok\ncancel.button=Cancel\n\n# Main Menu\nfile.menu=File\nfile.menu.mnem=F\nfile.menu.description=File Menu\nfile.open=Open...\nfile.open.mnem=O\nfile.open.accel=alt O\nfile.open.description=Open Log File with dumps.\nfile.close=Close...\nfile.close.mnem=C\nfile.close.description=Close currently selected dump file.\nfile.closeall=Close all...\nfile.closeall.mnem=A\nfile.closeall.description=Close all open dump files.\nfile.recentfiles=Open recent file\nfile.recentfiles.mnem=R\nfile.recentfiles.description=Open recent file.\nfile.getfromclipboard=Get Logfile from clipboard\nfile.getfromclipboard.mnem=L\nfile.getfromclipboard.accel=alt P\nfile.getfromclipboard.description=Fetch a logfile with dumps from clipboard\nfile.savesession=Save Session...\nfile.savesession.mnem=S\nfile.savesession.description=Save the current session of loaded log files.\nfile.opensession=Open Session...\nfile.opensession.mnem=P\nfile.opensession.description=Open a stored session of logfiles.\nfile.recentsessions=Open recent session\nfile.recentsessions.mnem=C\nfile.recentsessions.description=Open recent session.\nfile.preferences=Preferences\nfile.preferences.mnem=P\nfile.preferences.description=Set Preferences.\nfile.exit=Exit TDA\nfile.exit.mnem=X\nfile.exit.accel=alt X\nfile.exit.description=Exit TDA.\n\nview.menu=View\nview.menu.mnem=V\nview.menu.description=View Menu\nview.expand=Expand all Dump nodes\nview.expand.mnem=E\nview.expand.accel=alt E\nview.expand.description=Expand all Dump nodes.\nview.collapse=Collapse all Dump nodes\nview.collapse.mnem=C\nview.collapse.accel=alt C\nview.collapse.description=Collapse all Dump nodes.\nview.showtoolbar=Show Toolbar\nview.showtoolbar.mnem=S\n\ntools.menu=Tools\ntools.menu.mnem=T\ntools.menu.description=Tools Menu\ntools.longrunning=Find long running threads...\ntools.longrunning.mnem=L\ntools.longrunning.accel=alt L\ntools.longrunning.description=Find long running threads.\ntools.filters=Filters\ntools.filters.mnem=F\ntools.filters.accel=alt F\ntools.filters.description=Thread Filters.\n\nhelp.menu=Help\nhelp.menu.mnem=H\nhelp.menu.description=Help Menu\nhelp.contents=Contents\nhelp.contents.mnem=C\nhelp.contents.accel=F1\nhelp.contents.description=Help Contents\n\n# Edit/Add Custom Category\ncustomcategory.add.button=< Add\ncustomcategory.remove.button=Remove >\ncustomcategory.name.label=Name\ncustomcategory.availfilter.label=Available Filters\ncustomcategory.catfilter.label=Category Filters\n\n\n"
  },
  {
    "path": "tda/src/main/resources/de/grimmfrost/tda/version.properties",
    "content": "version=${project.version}\n"
  },
  {
    "path": "tda/src/test/java/de/grimmfrost/tda/mcp/HeadlessAnalysisProviderTest.java",
    "content": "package de.grimmfrost.tda.mcp;\n\nimport org.junit.jupiter.api.Test;\nimport static org.junit.jupiter.api.Assertions.*;\nimport java.util.*;\nimport java.io.File;\nimport javax.swing.tree.DefaultMutableTreeNode;\nimport de.grimmfrost.tda.*;\n\npublic class HeadlessAnalysisProviderTest {\n\n    @Test\n    public void testDeadlockDetection() throws Exception {\n        HeadlessAnalysisProvider provider = new HeadlessAnalysisProvider();\n        // Using existing test resource\n        String logPath = \"src/test/resources/deadlock.log\";\n        File logFile = new File(logPath);\n        if (!logFile.exists()) {\n            System.out.println(\"[DEBUG_LOG] Skip test, deadlock.log not found\");\n            return;\n        }\n\n        provider.parseLogFile(logPath);\n        List<String> deadlocks = provider.checkForDeadlocks();\n        \n        boolean found = false;\n        for (String msg : deadlocks) {\n            if (msg.contains(\"Deadlock found\")) {\n                found = true;\n                break;\n            }\n        }\n        assertTrue(found, \"Should find deadlocks in deadlock.log\");\n    }\n\n    @Test\n    public void testSummary() throws Exception {\n        HeadlessAnalysisProvider provider = new HeadlessAnalysisProvider();\n        String logPath = \"src/test/resources/hpdump.log\";\n        File logFile = new File(logPath);\n        if (!logFile.exists()) {\n             System.out.println(\"[DEBUG_LOG] Skip test, hpdump.log not found\");\n             return;\n        }\n\n        provider.parseLogFile(logPath);\n        List<Map<String, Object>> summary = provider.getDumpsSummary();\n        assertEquals(2, summary.size());\n        assertTrue(summary.get(0).get(\"name\").toString().contains(\"Dump\"));\n    }\n\n    @Test\n    public void testVirtualThreadAnalysis() throws Exception {\n        HeadlessAnalysisProvider provider = new HeadlessAnalysisProvider();\n        String logPath = \"src/test/resources/carrier_stuck.log\";\n        File logFile = new File(logPath);\n        if (!logFile.exists()) {\n             System.out.println(\"[DEBUG_LOG] Skip test, carrier_stuck.log not found\");\n             return;\n        }\n\n        provider.parseLogFile(logPath);\n        List<String> results = provider.analyzeVirtualThreads();\n        \n        boolean found = false;\n        for (String msg : results) {\n            if (msg.contains(\"Stuck carrier thread\")) {\n                found = true;\n                break;\n            }\n        }\n        assertTrue(found, \"Should find stuck carrier thread in carrier_stuck.log\");\n    }\n\n    @Test\n    public void testNativeThreadAnalysis() throws Exception {\n        HeadlessAnalysisProvider provider = new HeadlessAnalysisProvider();\n        String logPath = \"src/test/resources/java21dump.log\";\n        File logFile = new File(logPath);\n        if (!logFile.exists()) {\n             System.out.println(\"[DEBUG_LOG] Skip test, java21dump.log not found\");\n             return;\n        }\n\n        provider.parseLogFile(logPath);\n        List<Map<String, String>> nativeThreads = provider.getNativeThreads(0);\n        \n        assertFalse(nativeThreads.isEmpty(), \"Should find native threads in java21dump.log\");\n        \n        boolean foundSpecific = false;\n        for (Map<String, String> thread : nativeThreads) {\n            if (thread.get(\"threadName\").contains(\"main\") && \n                thread.get(\"nativeMethod\").contains(\"java.net.PlainSocketImpl.socketAccept(java.base@21.0.2/Native Method)\")) {\n                foundSpecific = true;\n                break;\n            }\n        }\n        assertTrue(foundSpecific, \"Should find specific native method with library info\");\n    }\n\n    @Test\n    public void testZombieThreadAnalysis() throws Exception {\n        HeadlessAnalysisProvider provider = new HeadlessAnalysisProvider();\n        String logPath = \"src/test/resources/jstack_dump.log\";\n        File logFile = new File(logPath);\n        if (!logFile.exists()) {\n             System.out.println(\"[DEBUG_LOG] Skip test, jstack_dump.log not found\");\n             return;\n        }\n\n        provider.parseLogFile(logPath);\n        \n        // The original jstack_dump.log has no zombies.\n        List<Map<String, String>> results = (List) provider.getZombieThreads();\n        assertTrue(results.isEmpty(), \"Should report no zombie threads for clean dump\");\n\n        // Now we need a dump with zombies. We can manually create a temporary file.\n        File tempFile = File.createTempFile(\"zombie\", \".log\");\n        java.nio.file.Files.write(tempFile.toPath(), (\"2026-01-20 17:29:40\\n\" +\n                \"Full thread dump OpenJDK 64-Bit Server VM (21.0.9+10-LTS mixed mode, sharing):\\n\" +\n                \"\\n\" +\n                \"Threads class SMR info:\\n\" +\n                \"_java_thread_list=0x000000087e826560, length=2, elements={\\n\" +\n                \"0x000000010328e320, 0x00000001deadbeef\\n\" +\n                \"}\\n\" +\n                \"\\n\" +\n                \"\\\"Reference Handler\\\" #9 [30467] daemon prio=10 os_prio=31 cpu=0.44ms elapsed=25574.11s tid=0x000000010328e320 nid=30467 waiting on condition  [0x000000016e7c2000]\\n\" +\n                \"   java.lang.Thread.State: RUNNABLE\\n\").getBytes());\n\n        try {\n            provider.clear();\n            provider.parseLogFile(tempFile.getAbsolutePath());\n            results = (List) provider.getZombieThreads();\n            \n            boolean found = false;\n            for (Map<String, String> msg : results) {\n                if (\"0x00000001deadbeef\".equals(msg.get(\"address\"))) {\n                    found = true;\n                    assertEquals(\"2026-01-20 17:29:40\", msg.get(\"timestamp\"));\n                    assertNotNull(msg.get(\"dumpName\"));\n                    break;\n                }\n            }\n            assertTrue(found, \"Should find zombie thread 0x00000001deadbeef with timestamp\");\n        } finally {\n            tempFile.delete();\n        }\n    }\n}\n"
  },
  {
    "path": "tda/src/test/java/de/grimmfrost/tda/model/TableCategoryTest.java",
    "content": "package de.grimmfrost.tda.model;\n\nimport javax.swing.tree.DefaultMutableTreeNode;\n\nimport org.junit.jupiter.api.Test;\nimport static org.junit.jupiter.api.Assertions.*;\n\npublic class TableCategoryTest {\n\n    @Test\n    public void testAddToCatNodesPreservation() {\n        TableCategory cat = new TableCategory(\"Test\", 1);\n        ThreadInfo ti = new ThreadInfo(\"Thread1\", \"info\", \"content\", 10, new String[]{\"Thread1\", \"ID\", \"State\"});\n        DefaultMutableTreeNode nodeForCat = new DefaultMutableTreeNode(ti);\n        DefaultMutableTreeNode nodeForTree = new DefaultMutableTreeNode(ti);\n        \n        cat.addToCatNodes(nodeForCat);\n        assertEquals(1, cat.getNodeCount(), \"Node should be in category\");\n        \n        DefaultMutableTreeNode treeRoot = new DefaultMutableTreeNode(\"Root\");\n        treeRoot.add(nodeForTree);\n        \n        assertEquals(1, cat.getNodeCount(), \"Node should still be in category after adding DIFFERENT node with same user object to tree\");\n        \n        // The bug was:\n        // cat.addToCatNodes(node);\n        // treeRoot.add(node); // This removes node from cat.rootNode!\n    }\n\n    @Test\n    public void testBugReproductionBehavior() {\n        TableCategory cat = new TableCategory(\"Test\", 1);\n        ThreadInfo ti = new ThreadInfo(\"Thread1\", \"info\", \"content\", 10, new String[]{\"Thread1\", \"ID\", \"State\"});\n        DefaultMutableTreeNode sharedNode = new DefaultMutableTreeNode(ti);\n        \n        cat.addToCatNodes(sharedNode);\n        assertEquals(1, cat.getNodeCount());\n        \n        DefaultMutableTreeNode treeRoot = new DefaultMutableTreeNode(\"Root\");\n        treeRoot.add(sharedNode); // This should remove sharedNode from cat's rootNode\n        \n        // This assertion confirms the behavior of DefaultMutableTreeNode which caused the bug\n        assertEquals(0, cat.getNodeCount(), \"Node was removed from category because it was added to another parent\");\n    }\n}\n"
  },
  {
    "path": "tda/src/test/java/de/grimmfrost/tda/parser/DumpParserFactoryTest.java",
    "content": "/*\n * DumpParserFactoryTest.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * Foobar is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * Foobar is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with Foobar; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: DumpParserFactoryTest.java,v 1.5 2008-02-15 09:05:04 irockel Exp $\n */\npackage de.grimmfrost.tda.parser;\n\nimport java.io.FileInputStream;\nimport java.io.FileNotFoundException;\n\nimport org.junit.jupiter.api.*;\nimport static org.junit.jupiter.api.Assertions.*;\nimport java.io.InputStream;\nimport java.util.HashMap;\nimport java.util.Map;\n\n/**\n * test if the dump parser factory selects the right dump parser for the provided log files.\n * @author irockel\n */\npublic class DumpParserFactoryTest {\n    \n    @BeforeEach\n    protected void setUp() {\n    }\n\n    @AfterEach\n    protected void tearDown() {\n    }\n\n    /**\n     * Test of get method, of class de.grimmfrost.tda.DumpParserFactory.\n     */\n    @Test\n    public void testGet() {\n        DumpParserFactory result = DumpParserFactory.get();\n        assertNotNull(result);                \n    }\n\n    /**\n     * Test of getDumpParserForVersion method, of class de.grimmfrost.tda.DumpParserFactory.\n     */\n    @Test\n    public void testGetDumpParserForSunLogfile() throws FileNotFoundException {\n        InputStream dumpFileStream = new FileInputStream(\"src/test/resources/test.log\");\n        Map<String, Map<String, String>> threadStore = new HashMap<>();\n        DumpParserFactory instance = DumpParserFactory.get();\n        \n        DumpParser result = instance.getDumpParserForLogfile(dumpFileStream, threadStore, false, 0);\n        assertNotNull(result);\n\n        assertInstanceOf(SunJDKParser.class, result);\n    }\n\n    /**\n     * Test of getDumpParserForVersion method, of class de.grimmfrost.tda.DumpParserFactory.\n     */\n    @Test\n    public void testGetDumpParserForJSONLogfile() throws FileNotFoundException {\n        InputStream dumpFileStream = new FileInputStream(\"src/test/resources/intellij_dump.json\");\n        Map<String, Map<String, String>> threadStore = new HashMap<>();\n        DumpParserFactory instance = DumpParserFactory.get();\n\n        DumpParser result = instance.getDumpParserForLogfile(dumpFileStream, threadStore, false, 0);\n        assertNotNull(result);\n\n        assertInstanceOf(JCmdJSONParser.class, result);\n    }\n\n    /**\n     * Test of getDumpParserForVersion method, of class de.grimmfrost.tda.DumpParserFactory.\n     */\n    @Test\n    public void testGetDumpParserForUTF16Logfile() throws FileNotFoundException {\n        InputStream dumpFileStream = new FileInputStream(\"src/test/resources/java21dump_utf16.log\");\n        Map<String, Map<String, String>> threadStore = new HashMap<>();\n        DumpParserFactory instance = DumpParserFactory.get();\n\n        DumpParser result = instance.getDumpParserForLogfile(dumpFileStream, threadStore, false, 0);\n        assertNotNull(result);\n\n        assertInstanceOf(SunJDKParser.class, result);\n    }\n}\n"
  },
  {
    "path": "tda/src/test/java/de/grimmfrost/tda/parser/JCmdJSONParserTest.java",
    "content": "package de.grimmfrost.tda.parser;\n\nimport de.grimmfrost.tda.model.Category;\nimport de.grimmfrost.tda.model.ThreadDumpInfo;\nimport de.grimmfrost.tda.model.ThreadInfo;\nimport org.junit.jupiter.api.Test;\nimport javax.swing.tree.DefaultMutableTreeNode;\nimport java.io.FileInputStream;\nimport java.io.InputStream;\nimport java.util.HashMap;\nimport java.util.Map;\nimport static org.junit.jupiter.api.Assertions.*;\n\npublic class JCmdJSONParserTest {\n\n    @Test\n    public void testJSONDumpParsing() throws Exception {\n        InputStream dumpFileStream = new FileInputStream(\"src/test/resources/intellij_dump.json\");\n        Map<String, Map<String, String>> threadStore = new HashMap<>();\n        DumpParser instance = DumpParserFactory.get().getDumpParserForLogfile(dumpFileStream, threadStore, false, 0);\n\n        assertInstanceOf(JCmdJSONParser.class, instance);\n        \n        DefaultMutableTreeNode result = (DefaultMutableTreeNode) instance.parseNext();\n        assertNotNull(result);\n        \n        ThreadDumpInfo tdi = (ThreadDumpInfo) result.getUserObject();\n        assertEquals(\"Dump No. 1\", tdi.getName());\n        assertEquals(\"2026-01-25T15:46:04.439828Z\", tdi.getStartTime());\n        \n        // Check threads\n        Category threadsCat = tdi.getThreads();\n        assertNotNull(threadsCat);\n        // The intellij_dump.json has 8 threads in <root> container\n        assertEquals(8, threadsCat.getNodeCount());\n        \n        DefaultMutableTreeNode firstThreadNode = (DefaultMutableTreeNode) threadsCat.getNodeAt(0);\n        ThreadInfo firstThread = (ThreadInfo) firstThreadNode.getUserObject();\n        assertTrue(firstThread.getName().contains(\"Reference Handler\"));\n        assertTrue(firstThread.getContent().contains(\"java.base/java.lang.ref.Reference.waitForReferencePendingList(Native Method)\"));\n        \n        // Check tid mapping\n        String[] tokens = firstThread.getTokens();\n        assertNotNull(tokens);\n        assertEquals(\"Reference Handler\", tokens[0]);\n        assertEquals(\"9\", tokens[3]);\n        \n        assertFalse(instance.hasMoreDumps());\n    }\n}\n"
  },
  {
    "path": "tda/src/test/java/de/grimmfrost/tda/parser/SunJDKParserTest.java",
    "content": "/*\n * SunJDKParserTest.java\n *\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * Foobar is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * Foobar is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with Foobar; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: SunJDKParserTest.java,v 1.9 2008-11-21 09:20:19 irockel Exp $\n */\npackage de.grimmfrost.tda.parser;\n\nimport java.io.*;\nimport java.util.HashMap;\nimport javax.swing.tree.DefaultMutableTreeNode;\nimport javax.swing.tree.MutableTreeNode;\nimport javax.swing.tree.TreePath;\n\nimport de.grimmfrost.tda.model.Category;\nimport de.grimmfrost.tda.model.ThreadDumpInfo;\nimport de.grimmfrost.tda.model.ThreadInfo;\nimport de.grimmfrost.tda.utils.DateMatcher;\nimport org.jspecify.annotations.NonNull;\nimport org.junit.jupiter.api.*;\nimport static org.junit.jupiter.api.Assertions.*;\nimport java.util.Map;\nimport java.util.Vector;\n\n/**\n * test parsing of log files from sun vms.\n * @author irockel\n */\npublic class SunJDKParserTest {\n    \n    @BeforeEach\n    protected void setUp() {\n    }\n\n    @AfterEach\n    protected void tearDown() {\n    }\n\n    /**\n     * Test of hasMoreDumps method, of class de.grimmfrost.tda.SunJDKParser.\n     */\n    @Test\n    public void testDumpLoad() throws IOException {\n        FileInputStream fis = null;\n        DumpParser instance = null;\n        \n        try {\n            fis = new FileInputStream(\"src/test/resources/test.log\");\n            Map<String, Map<String, String>> dumpMap = new HashMap<>();\n            Vector<MutableTreeNode> topNodes = new Vector<>();\n            instance = DumpParserFactory.get().getDumpParserForLogfile(fis, dumpMap, false, 0);\n\n            assertInstanceOf(SunJDKParser.class, instance);\n\n            while (instance.hasMoreDumps()) {\n                topNodes.add(instance.parseNext());\n            }\n\n            // check if three dumps are in it.\n            assertEquals(3, topNodes.size());\n        } finally {\n            if(instance != null) {\n                instance.close();\n            }\n            if(fis != null) {\n                fis.close();\n            }\n        }\n    }\n\n    /**\n     * Test of isFoundClassHistograms method, of class de.grimmfrost.tda.SunJDKParser.\n     */\n    @Test\n    public void testIsFoundClassHistograms() throws IOException {\n        DumpParser instance = null;\n        try (FileInputStream fis = new FileInputStream(\"src/test/resources/testwithhistogram.log\")) {\n            Map<String, Map<String, String>> dumpMap = new HashMap<>();\n            instance = DumpParserFactory.get().getDumpParserForLogfile(fis, dumpMap, false, 0);\n            \n            Vector<MutableTreeNode> topNodes = new Vector<>();\n            while (instance.hasMoreDumps()) {\n                topNodes.add(instance.parseNext());\n            }\n            assertEquals(1, topNodes.size());\n\n            boolean result = instance.isFoundClassHistograms();\n            assertTrue(result);\n        } finally {\n            if (instance != null) {\n                instance.close();\n            }\n        }\n    }\n    \n    @Test\n    public void test64BitDumpLoad() throws IOException {\n        FileInputStream fis = null;\n        DumpParser instance = null;\n        \n        try {\n            fis = new FileInputStream(\"src/test/resources/test64bit.log\");\n            Map<String, Map<String, String>> dumpMap = new HashMap<>();\n            Vector<MutableTreeNode> topNodes = new Vector<>();\n            instance = DumpParserFactory.get().getDumpParserForLogfile(fis, dumpMap, false, 0);\n\n            assertInstanceOf(SunJDKParser.class, instance);\n\n            while (instance.hasMoreDumps()) {\n                topNodes.add(instance.parseNext());\n            }\n\n            // check if one dump was found.\n            assertEquals(1, topNodes.size());\n        } finally {\n            if(instance != null) {\n                instance.close();\n            }\n            if(fis != null) {\n                fis.close();\n            }\n        }\n    }\n    \n    @Test\n    public void testJava8DumpLoad() throws IOException {\n        FileInputStream fis = null;\n        DumpParser instance = null;\n        \n        try {\n            fis = new FileInputStream(\"src/test/resources/java8dump.log\");\n            Map<String, Map<String, String>> dumpMap = new HashMap<>();\n            Vector<MutableTreeNode> topNodes = new Vector<>();\n            instance = DumpParserFactory.get().getDumpParserForLogfile(fis, dumpMap, false, 0);\n\n            assertInstanceOf(SunJDKParser.class, instance);\n\n            while (instance.hasMoreDumps()) {\n                topNodes.add(instance.parseNext());\n            }\n\n            // check if one dump was found.\n            assertEquals(1, topNodes.size());\n        } finally {\n            if(instance != null) {\n                instance.close();\n            }\n            if(fis != null) {\n                fis.close();\n            }\n        }\n    }\n    \n    @Test\n    public void testJava11DumpLoad() throws IOException {\n        System.out.println(\"Java11DumpLoad\");\n        FileInputStream fis = null;\n        DumpParser instance = null;\n        \n        try {\n            fis = new FileInputStream(\"src/test/resources/java11dump.log\");\n            Map<String, Map<String, String>> dumpMap = new HashMap<>();\n            Vector<MutableTreeNode> topNodes = new Vector<>();\n            instance = DumpParserFactory.get().getDumpParserForLogfile(fis, dumpMap, false, 0);\n\n            assertInstanceOf(SunJDKParser.class, instance);\n\n            while (instance.hasMoreDumps()) {\n                topNodes.add(instance.parseNext());\n            }\n\n            // check if one dump was found.\n            assertEquals(1, topNodes.size());\n        } finally {\n            if(instance != null) {\n                instance.close();\n            }\n            if(fis != null) {\n                fis.close();\n            }\n        }\n    }\n    \n    @Test\n    public void testHPDumps()  throws IOException {\n        FileInputStream fis = null;\n        DumpParser instance = null;\n        \n        try {\n            fis = new FileInputStream(\"src/test/resources/hpdump.log\");\n            Map<String, Map<String, String>> dumpMap = new HashMap<>();\n            Vector<MutableTreeNode> topNodes = new Vector<>();\n            instance = DumpParserFactory.get().getDumpParserForLogfile(fis, dumpMap, false, 0);\n\n            assertInstanceOf(SunJDKParser.class, instance);\n\n            while (instance.hasMoreDumps()) {\n                topNodes.add(instance.parseNext());\n            }\n\n            // check if two dump were found.\n            assertEquals(2, topNodes.size());\n        } finally {\n            if(instance != null) {\n                instance.close();\n            }\n            if(fis != null) {\n                fis.close();\n            }\n        }\n    }\n    \n    @Test\n    public void testRemoteVisualVMDumps()  throws IOException {\n        FileInputStream fis = null;\n        DumpParser instance = null;\n\n        try {\n            fis = new FileInputStream(\"src/test/resources/visualvmremote.log\");\n            Map<String, Map<String, String>> dumpMap = new HashMap<>();\n            Vector<MutableTreeNode> topNodes = new Vector<>();\n            instance = DumpParserFactory.get().getDumpParserForLogfile(fis, dumpMap, false, 0);\n\n            assertInstanceOf(SunJDKParser.class, instance);\n\n            while (instance.hasMoreDumps()) {\n                topNodes.add(instance.parseNext());\n            }\n\n            // check if two dump were found.\n            assertEquals(1, topNodes.size());\n        } finally {\n            if(instance != null) {\n                instance.close();\n            }\n            if(fis != null) {\n                fis.close();\n            }\n        }\n    }\n\n    @Test\n    public void testURLThreadNameDumps()  throws IOException {\n        FileInputStream fis = null;\n        DumpParser instance = null;\n        \n        try {\n            fis = new FileInputStream(\"src/test/resources/urlthread.log\");\n            Map<String, Map<String, String>> dumpMap = new HashMap<>();\n            Vector<MutableTreeNode> topNodes = new Vector<>();\n            instance = DumpParserFactory.get().getDumpParserForLogfile(fis, dumpMap, false, 0);\n\n            assertInstanceOf(SunJDKParser.class, instance);\n\n            while (instance.hasMoreDumps()) {\n                topNodes.add(instance.parseNext());\n            }\n\n            // check if two dump were found.\n            assertEquals(1, topNodes.size());\n        } finally {\n            if(instance != null) {\n                instance.close();\n            }\n            if(fis != null) {\n                fis.close();\n            }\n        }\n    }\n\n    @Test\n    public void testVirtualThreadDumps() throws IOException {\n        FileInputStream fis = null;\n        DumpParser instance = null;\n        \n        try {\n            fis = new FileInputStream(\"src/test/resources/java21dump.log\");\n            Map<String, Map<String, String>> dumpMap = new HashMap<>();\n            Vector<MutableTreeNode> topNodes = new Vector<>();\n            instance = DumpParserFactory.get().getDumpParserForLogfile(fis, dumpMap, false, 0);\n\n            assertInstanceOf(SunJDKParser.class, instance);\n\n            while (instance.hasMoreDumps()) {\n                topNodes.add(instance.parseNext());\n            }\n\n            // check if one dump was found.\n            assertEquals(1, topNodes.size());\n        } finally {\n            if(instance != null) {\n                instance.close();\n            }\n            if(fis != null) {\n                fis.close();\n            }\n        }\n    }\n\n    @Test\n    public void testCarrierThreadIssuesDetection() throws IOException {\n        FileInputStream fis = null;\n        DumpParser instance = null;\n        \n        try {\n            fis = new FileInputStream(\"src/test/resources/carrier_stuck.log\");\n            Map<String, Map<String, String>> dumpMap = new HashMap<>();\n            Vector<MutableTreeNode> topNodes = new Vector<>();\n            instance = DumpParserFactory.get().getDumpParserForLogfile(fis, dumpMap, false, 0);\n\n            assertInstanceOf(SunJDKParser.class, instance);\n\n            while (instance.hasMoreDumps()) {\n                topNodes.add(instance.parseNext());\n            }\n\n            assertEquals(1, topNodes.size());\n            DefaultMutableTreeNode dumpNode = (DefaultMutableTreeNode) topNodes.get(0);\n            \n            // Navigate to virtual threads category\n            DefaultMutableTreeNode vtCat = null;\n            for (int i = 0; i < dumpNode.getChildCount(); i++) {\n                DefaultMutableTreeNode child = (DefaultMutableTreeNode) dumpNode.getChildAt(i);\n                Object userObject = child.getUserObject();\n                if (userObject instanceof Category) {\n                    Category cat = (Category) userObject;\n                    if (cat.getName().contains(\"Virtual Threads\")) {\n                        vtCat = child;\n                        break;\n                    }\n                }\n            }\n            \n            assertNotNull(vtCat, \"Virtual Threads category should exist\");\n            \n            boolean foundWarning = false;\n            Category cat = (Category) vtCat.getUserObject();\n            for (int i = 0; i < cat.getNodeCount(); i++) {\n                DefaultMutableTreeNode threadNode = cat.getNodeAt(i);\n                Object userObject = threadNode.getUserObject();\n                String threadInfo = userObject.toString();\n                if (userObject instanceof ThreadInfo) {\n                    String content = ((ThreadInfo)userObject).getContent();\n                    if (threadInfo.contains(\"ForkJoinPool-1-worker-1\") && content.contains(\"Note:\")) {\n                        foundWarning = true;\n                        assertTrue(content.contains(\"carrier thread seems to be stuck in application code\"), \"Warning message should be correct\");\n                    }\n                }\n            }\n            \n            assertTrue(foundWarning, \"Should have found a warning note for the stuck carrier thread\");\n            \n            // Now test the analyzer output\n            ThreadDumpInfo tdi = (ThreadDumpInfo) dumpNode.getUserObject();\n            Analyzer analyzer = new Analyzer(tdi);\n            String hints = analyzer.analyzeDump();\n            assertNotNull(hints, \"Analysis hints should not be null\");\n            assertTrue(hints.contains(\"carrier thread seems to be stuck in application code\"), \"Analysis hints should contain warning about stuck carrier thread\");\n            assertTrue(hints.contains(\"Detected 1 virtual thread(s)\"), \"Analysis hints should report correct number of stuck carrier threads\");\n            \n        } finally {\n            if(instance != null) {\n                instance.close();\n            }\n            if(fis != null) {\n                fis.close();\n            }\n        }\n    }\n\n    @Test\n    public void testSMRInfoParsing() throws Exception {\n        InputStream dumpFileStream = new FileInputStream(\"src/test/resources/jstack_dump.log\");\n        DumpParser instance = DumpParserFactory.get().getDumpParserForLogfile(dumpFileStream, new HashMap(), false, 0);\n        assertInstanceOf(SunJDKParser.class, instance);\n        DefaultMutableTreeNode result = (DefaultMutableTreeNode) instance.parseNext();\n        assertNotNull(result);\n        ThreadDumpInfo tdi = (ThreadDumpInfo) result.getUserObject();\n        String smrInfo = tdi.getSmrInfo();\n        assertNotNull(smrInfo);\n        assertTrue(smrInfo.contains(\"Threads class SMR info:\"));\n        assertTrue(smrInfo.contains(\"_java_thread_list=0x000000087e826560\"));\n        assertTrue(smrInfo.contains(\"length=12\"));\n        \n        String overview = tdi.getOverview();\n        assertNotNull(overview);\n        assertTrue(overview.contains(\"Address</th>\"));\n        assertTrue(overview.contains(\"Resolved Thread</th>\"));\n        assertTrue(overview.contains(\"0x000000010328e320\"));\n        assertTrue(overview.contains(\"Reference Handler\"));\n        \n        // Check for NOT FOUND for a thread that might not be in the dump (if I modified the log)\n        // In jstack_dump.log all 12 elements are present.\n        // Let's check that all are resolved.\n        assertFalse(overview.contains(\"NOT FOUND\"));\n    }\n\n    @Test\n    public void testSMRInfoWithUnresolved() throws Exception {\n        InputStream is = getSMSInfoTextBlock();\n        SunJDKParser parser = new SunJDKParser(new BufferedReader(new InputStreamReader(is)), new HashMap<>(), 0,\n                false, 0, new DateMatcher());\n        \n        DefaultMutableTreeNode result = (DefaultMutableTreeNode) parser.parseNext();\n        ThreadDumpInfo tdi = (ThreadDumpInfo) result.getUserObject();\n        String overview = tdi.getOverview();\n        \n        assertTrue(overview.contains(\"0x000000010328e320\"));\n        assertTrue(overview.contains(\"Reference Handler\"));\n        assertTrue(overview.contains(\"0x00000001deadbeef\"));\n        assertTrue(overview.contains(\"NOT FOUND\"));\n        assertTrue(overview.contains(\"Some SMR addresses could not be resolved to threads\"));\n    }\n\n    private static @NonNull InputStream getSMSInfoTextBlock() {\n        String dumpContent = \"2026-01-20 17:29:40\\n\" +\n                \"Full thread dump OpenJDK 64-Bit Server VM (21.0.9+10-LTS mixed mode, sharing):\\n\" +\n                \"\\n\" +\n                \"Threads class SMR info:\\n\" +\n                \"_java_thread_list=0x000000087e826560, length=2, elements={\\n\" +\n                \"0x000000010328e320, 0x00000001deadbeef\\n\" +\n                \"}\\n\" +\n                \"\\n\" +\n                \"\\\"Reference Handler\\\" #9 [30467] daemon prio=10 os_prio=31 cpu=0.44ms elapsed=25574.11s tid=0x000000010328e320 nid=30467 waiting on condition  [0x000000016e7c2000]\\n\" +\n                \"   java.lang.Thread.State: RUNNABLE\\n\" +\n                \"\\n\";\n\n        InputStream is = new ByteArrayInputStream(dumpContent.getBytes());\n        return is;\n    }\n\n    @Test\n    public void testLongRunningDetectionWithVariableFields() throws IOException {\n        FileInputStream fis = null;\n        SunJDKParser instance = null;\n        \n        try {\n            fis = new FileInputStream(\"src/test/resources/jdk11_long_running.log\");\n            Map<String, Map<String, String>> dumpMap = new HashMap<>();\n            instance = (SunJDKParser) DumpParserFactory.get().getDumpParserForLogfile(fis, dumpMap, false, 0);\n            \n            Vector<MutableTreeNode> topNodes = new Vector<>();\n            while (instance.hasMoreDumps()) {\n                MutableTreeNode node = instance.parseNext();\n                if (node != null) {\n                    topNodes.add(node);\n                    \n                    // Manually populate dumpMap since we are testing diffDumps which looks there\n                    DefaultMutableTreeNode dNode = (DefaultMutableTreeNode) node;\n                    ThreadDumpInfo tdi = (ThreadDumpInfo) dNode.getUserObject();\n                    \n                    // The dumpMap is supposed to contain a map of threads for each dump name\n                    // But in this test environment, the internal threadStore of instance IS the dumpMap\n                    // so it should already be populated by parseNext().\n                }\n            }\n\n            assertEquals(2, topNodes.size());\n            \n            // Re-simulate the long running detection logic\n            DefaultMutableTreeNode root = new DefaultMutableTreeNode(\"Root\");\n            TreePath[] paths = new TreePath[2];\n            DefaultMutableTreeNode dummyRoot = new DefaultMutableTreeNode(\"Dummies\");\n            dummyRoot.add(topNodes.get(0));\n            dummyRoot.add(topNodes.get(1));\n            \n            paths[0] = new TreePath(((DefaultMutableTreeNode)topNodes.get(0)).getPath());\n            paths[1] = new TreePath(((DefaultMutableTreeNode)topNodes.get(1)).getPath());\n            \n            // before calling findLongRunningThreads, we MUST ensure the dumpMap is correctly populated.\n            // SunJDKParser stores threads in the map passed to it, keyed by dump name.\n            // Dump name for SunJDKParser is \"Dump No. X\".\n            \n            instance.findLongRunningThreads(root, dumpMap, paths, 2, null);\n            \n            // Check if long running threads were found\n            assertTrue(root.getChildCount() > 0, \"Should have children\");\n            DefaultMutableTreeNode resultNode = (DefaultMutableTreeNode) root.getChildAt(0);\n            \n            // We expect at least 2 long running threads (\"C2 CompilerThread0\" and \"VM Periodic Task Thread\")\n            Category cat = (Category) resultNode.getUserObject();\n            assertTrue(cat.getNodeCount() > 0, \"Should find at least one long running thread, found: \" + cat.getNodeCount());\n            \n        } finally {\n            if(instance != null) {\n                instance.close();\n            }\n            if(fis != null) {\n                fis.close();\n            }\n        }\n    }\n    @Test\n    public void testGetThreadTokensWithThreadTypeNumber() {\n        Map<String, Map<String, String>> threadStore = new HashMap<>();\n        SunJDKParser parser = new SunJDKParser(new BufferedReader(new StringReader(\"\")), threadStore, 0, false, 0, new DateMatcher());\n\n        // Line from carrier_stuck.log\n        String line = \"\\\"ForkJoinPool-1-worker-1\\\" #11 daemon [11] prio=5 os_prio=0 cpu=5678.90ms elapsed=58230.14s tid=0x00007f8b2c158000 nid=0x1ac7 runnable  [0x00007f8b234f5000]\";\n\n        String[] tokens = parser.getThreadTokens(line);\n\n        // tokens: 0: name, 1: type, 2: prio, 3: tid, 4: nid, 5: state, 6: address\n        assertEquals(\"ForkJoinPool-1-worker-1\", tokens[0], \"Thread Name\");\n        assertEquals(\"Daemon\", tokens[1], \"Thread Type\");\n        assertEquals(\"5\", tokens[2], \"Priority\");\n        assertEquals(String.valueOf(Long.parseLong(\"00007f8b2c158000\", 16)), tokens[3], \"TID\");\n        assertEquals(String.valueOf(Long.parseLong(\"1ac7\", 16)), tokens[4], \"NID\");\n        assertEquals(\"runnable\", tokens[5].trim(), \"State\");\n        assertEquals(\"[0x00007f8b234f5000]\", tokens[6], \"Address Range\");\n    }\n\n    @Test\n    public void testMonitorNodesHaveChildren() throws Exception {\n        String dump = \"2026-01-30 10:00:00\\n\" +\n                \"Full thread dump OpenJDK 64-Bit Server VM (21.0.9+10-LTS mixed mode, sharing):\\n\" +\n                \"\\n\" +\n                \"\\\"Thread-1\\\" #1 prio=5 os_prio=31 tid=0x000000010328e320 nid=0x100 waiting on condition [0x000000016e7c2000]\\n\" +\n                \"   java.lang.Thread.State: WAITING (on object monitor)\\n\" +\n                \"   at java.lang.Object.wait(Native Method)\\n\" +\n                \"   - waiting on <0x0000000711666830> (a java.lang.Object)\\n\" +\n                \"\\n\" +\n                \"\\\"Thread-2\\\" #2 prio=5 os_prio=31 tid=0x000000010328e330 nid=0x200 runnable [0x000000016e7c3000]\\n\" +\n                \"   java.lang.Thread.State: RUNNABLE\\n\" +\n                \"   at com.example.App.main(App.java:10)\\n\" +\n                \"   - locked <0x0000000711666830> (a java.lang.Object)\\n\" +\n                \"\\n\" +\n                \"\\\"VM Periodic Task Thread\\\" #3 prio=5 tid=0x000000010328e340 nid=0x300 runnable\\n\";\n\n        Map<String, Map<String, String>> threadStore = new HashMap<>();\n        SunJDKParser parser = new SunJDKParser(new BufferedReader(new StringReader(dump)), threadStore, 0, false, 0, new DateMatcher());\n\n        DefaultMutableTreeNode dumpNode = (DefaultMutableTreeNode) parser.parseNext();\n        assertNotNull(dumpNode);\n\n        ThreadDumpInfo tdi = (ThreadDumpInfo) dumpNode.getUserObject();\n        Category monitorsCat = tdi.getMonitors();\n        assertNotNull(monitorsCat, \"Monitors category should not be null\");\n        assertTrue(monitorsCat.getNodeCount() > 0, \"Should have at least one monitor\");\n\n        DefaultMutableTreeNode monitorNode = monitorsCat.getNodeAt(0);\n        assertNotNull(monitorNode);\n\n        // Verify that the monitor node has children (the threads)\n        assertTrue(monitorNode.getChildCount() > 0, \"Monitor node in category should have children\");\n    }\n}\n"
  },
  {
    "path": "tda/src/test/java/de/grimmfrost/tda/utils/LogManagerTest.java",
    "content": "package de.grimmfrost.tda.utils;\n\nimport org.junit.jupiter.api.Test;\nimport static org.junit.jupiter.api.Assertions.*;\n\npublic class LogManagerTest {\n    @Test\n    public void testInitInTestEnvironment() {\n        // Since we are running in JUnit, LogManager.init() should detect it and bypass\n        LogManager.init();\n        \n        // If it was bypassed, logFilePath should remain null\n        assertNull(LogManager.getLogFilePath(), \"Log file path should be null in test environment\");\n    }\n}\n"
  },
  {
    "path": "tda/src/test/resources/carrier_stuck.log",
    "content": "2026-01-23 21:50:00\nFull thread dump OpenJDK 64-Bit Server VM (21.0.2+13-LTS mixed mode, sharing):\n\n\"ForkJoinPool-1-worker-1\" #11 daemon [11] prio=5 os_prio=0 cpu=5678.90ms elapsed=58230.14s tid=0x00007f8b2c158000 nid=0x1ac7 runnable  [0x00007f8b234f5000]\n   java.lang.Thread.State: RUNNABLE\n        at com.example.app.StuckService.heavyProcessing(StuckService.java:45)\n        at com.example.app.StuckService.process(StuckService.java:25)\n        at java.lang.VirtualThread.run(java.base@21.0.2/VirtualThread.java:309)\n        at java.util.concurrent.ForkJoinPool.runWorker(java.base@21.0.2/ForkJoinPool.java:1519)\n        at java.util.concurrent.ForkJoinWorkerThread.run(java.base@21.0.2/ForkJoinWorkerThread.java:165)\n   Carrying virtual thread #21\n\n\"VirtualThread[#21]\" #21 virtual [21] prio=5 os_prio=0 cpu=45.23ms elapsed=12345.67s tid=0x00007f8b2c200000 nid=0x1ac8 runnable  [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n        at com.example.app.StuckService.heavyProcessing(StuckService.java:45)\n        at com.example.app.StuckService.process(StuckService.java:25)\n        at java.lang.VirtualThread.run(java.base@21.0.2/VirtualThread.java:309)\n\n\"ForkJoinPool-1-worker-2\" #12 daemon [12] prio=5 os_prio=0 cpu=100.00ms elapsed=58230.14s tid=0x00007f8b2c159000 nid=0x1ac8 waiting on condition  [0x00007f8b233f4000]\n   java.lang.Thread.State: WAITING (parking)\n        at jdk.internal.misc.Unsafe.park(java.base@21.0.2/Native Method)\n        at java.util.concurrent.locks.LockSupport.park(java.base@21.0.2/LockSupport.java:211)\n        at java.util.concurrent.ForkJoinPool.awaitWork(java.base@21.0.2/ForkJoinPool.java:1565)\n        at java.util.concurrent.ForkJoinPool.runWorker(java.base@21.0.2/ForkJoinPool.java:1519)\n        at java.util.concurrent.ForkJoinWorkerThread.run(java.base@21.0.2/ForkJoinWorkerThread.java:165)\n\n\"VM Periodic Task Thread\" os_prio=0 cpu=67892.34ms elapsed=58234.15s tid=0x00007f8b2c18f000 nid=0x1aca waiting on condition  \n"
  },
  {
    "path": "tda/src/test/resources/hpdump.log",
    "content": "\r\n\r\nFull thread dump  [ 3 15 14:48:56 KST 2008] (Java HotSpot(TM) 64-Bit Server VM 1.5.0.11 jinteg:11.07.07-18:21 IA64W mixed mode):\r\n\r\n\"ACJH_SOPSI_BAN_01-w13 [container1-361]\" prio=10 tid=60000000044e3840 nid=1194 lwp_id=9992026 runnable [9fffffffb6f00000..9fffffffb6f00a40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff59c52280> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w12 [container1-360]\" prio=10 tid=60000000044adb10 nid=1193 lwp_id=9992025 runnable [9fffffffb7100000..9fffffffb7100ac0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff59c5a280> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"Thread-870\" daemon prio=10 tid=600000000407e3f0 nid=1190 lwp_id=9991964 in Object.wait() [9fffffffb8100000..9fffffffb8100c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff420bf978> (a [I)\r\n\tat com.sun.jmx.remote.opt.internal.ServerCommunicatorAdmin$Adminor.run(ServerCommunicatorAdmin.java:145)\r\n\t- locked <9fffffff420bf978> (a [I)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-869\" daemon prio=10 tid=6000000005276780 nid=1189 lwp_id=9991268 waiting on condition [9fffffffb8300000..9fffffffb8300cc0]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.sun.jmx.remote.opt.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:154)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-868\" daemon prio=10 tid=6000000003d53260 nid=1188 lwp_id=9990219 in Object.wait() [9fffffffb7900000..9fffffffb7900d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff41f3eed8> (a [I)\r\n\tat com.sun.jmx.remote.opt.internal.ServerCommunicatorAdmin$Adminor.run(ServerCommunicatorAdmin.java:145)\r\n\t- locked <9fffffff41f3eed8> (a [I)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AMZF_TMXSO_BAN_01_TmaxManager_ThreadPool-9\" daemon prio=10 tid=600000000185bb40 nid=1184 lwp_id=9949314 in Object.wait() [9fffffffb8d00000..9fffffffb8d00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04997860> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff04997860> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AMZF_TMXSO_BTD_01_TmaxManager_ThreadPool-1\" daemon prio=10 tid=600000000183fc90 nid=1179 lwp_id=9721154 in Object.wait() [9fffffffb7300000..9fffffffb7300dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0496bc58> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff0496bc58> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKSN_BTD_SOA_02-Selector\" daemon prio=10 tid=60000000053bf4e0 nid=626 lwp_id=9649694 runnable [9fffffffb7b00000..9fffffffb7b00a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff233ac038> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff233ac020> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff233abf08> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-320\" daemon prio=10 tid=60000000052771a0 nid=625 lwp_id=9649693 in Object.wait() [9fffffffb7d00000..9fffffffb7d00ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff233ac810> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff233ac810> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AMZF_TMXSO_BTB_01_TmaxManager_ThreadPool-2\" daemon prio=10 tid=60000000053b2c50 nid=617 lwp_id=9619789 in Object.wait() [9ffffffe78100000..9ffffffe78100ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff049a9208> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff049a9208> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-313\" daemon prio=10 tid=6000000004a8faa0 nid=611 lwp_id=9596556 in Object.wait() [9ffffffe78d00000..9ffffffe78d00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff13bedc28> (a [I)\r\n\tat com.sun.jmx.remote.opt.internal.ServerCommunicatorAdmin$Adminor.run(ServerCommunicatorAdmin.java:145)\r\n\t- locked <9fffffff13bedc28> (a [I)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LFDI_BTD_SOA_02-Selector\" daemon prio=10 tid=6000000003aff8b0 nid=610 lwp_id=9593571 runnable [9ffffffe78f00000..9ffffffe78f00a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff1281c098> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff1281c080> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff1281bf68> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-312\" daemon prio=10 tid=6000000003aa36b0 nid=609 lwp_id=9593570 in Object.wait() [9ffffffe79100000..9ffffffe79100ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff1281dbd0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff1281dbd0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKIS_BTD_SOA_02-Selector\" daemon prio=10 tid=600000000431fc10 nid=608 lwp_id=9590492 runnable [9ffffffe79300000..9ffffffe79300b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff11771018> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff11771000> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff11770ee8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-311\" daemon prio=10 tid=60000000042f24c0 nid=607 lwp_id=9590491 in Object.wait() [9ffffffe79500000..9ffffffe79500bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff11771b60> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff11771b60> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNCE_BTD_SOA_02-Selector\" daemon prio=10 tid=6000000004a87d20 nid=606 lwp_id=9582184 runnable [9ffffffe79700000..9ffffffe79700c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0fa48970> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0fa48958> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0fa48840> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-310\" daemon prio=10 tid=6000000004a86950 nid=605 lwp_id=9582183 in Object.wait() [9ffffffe7a700000..9ffffffe7a700cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0fa4a4a8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0fa4a4a8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKNI_BTD_SOA_04-Selector\" daemon prio=10 tid=6000000004a3d6b0 nid=604 lwp_id=9577236 runnable [9fffffffb8500000..9fffffffb8500d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0ea95778> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0ea95760> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0ea95648> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-309\" daemon prio=10 tid=6000000004a14830 nid=603 lwp_id=9577235 in Object.wait() [9fffffffb8700000..9fffffffb8700dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0ea972b0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0ea972b0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKNI_BTD_SOA_02-Selector\" daemon prio=10 tid=600000000066d9c0 nid=602 lwp_id=9575337 runnable [9fffffffb8900000..9fffffffb8900a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0e6ae4a0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0e6ae488> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0e6ae370> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-308\" daemon prio=10 tid=600000000066d660 nid=601 lwp_id=9575336 in Object.wait() [9fffffffb8b00000..9fffffffb8b00ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0e6aefe8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0e6aefe8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKIB_BTD_SOA_01-Selector\" daemon prio=10 tid=6000000005585980 nid=573 lwp_id=9567093 runnable [9ffffffe79900000..9ffffffe79900cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0dac3480> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0dac3468> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0dac3350> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-280\" daemon prio=10 tid=6000000005585330 nid=572 lwp_id=9567092 in Object.wait() [9ffffffe79b00000..9ffffffe79b00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0dac3fc8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0dac3fc8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-278\" daemon prio=10 tid=6000000005278380 nid=570 lwp_id=9566389 in Object.wait() [9ffffffe79f00000..9ffffffe79f00a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0d980fb8> (a [I)\r\n\tat com.sun.jmx.remote.opt.internal.ServerCommunicatorAdmin$Adminor.run(ServerCommunicatorAdmin.java:145)\r\n\t- locked <9fffffff0d980fb8> (a [I)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKID_BTD_SOA_04-Selector\" daemon prio=10 tid=6000000004228480 nid=569 lwp_id=9555443 runnable [9ffffffe7a100000..9ffffffe7a100ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0d451900> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0d4518e8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0d4517d0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-277\" daemon prio=10 tid=600000000409c800 nid=568 lwp_id=9555442 in Object.wait() [9ffffffe7a300000..9ffffffe7a300b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0d452448> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0d452448> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKNI_BTD_SOA_03-Selector\" daemon prio=10 tid=60000000017a1450 nid=567 lwp_id=9544798 runnable [9ffffffe7a500000..9ffffffe7a500bc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0ca648e0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0ca648c8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0ca647b0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-276\" daemon prio=10 tid=600000000176dc40 nid=566 lwp_id=9544797 in Object.wait() [9ffffffe80100000..9ffffffe80100c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0ca66418> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0ca66418> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKSN_BTD_SOA_01-Selector\" daemon prio=10 tid=6000000003621db0 nid=561 lwp_id=9410213 runnable [9ffffffe7a900000..9ffffffe7a900ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0906c8c0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0906c8a8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0906c790> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-271\" daemon prio=10 tid=6000000003621a50 nid=560 lwp_id=9410212 in Object.wait() [9ffffffe7ab00000..9ffffffe7ab00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0906d408> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0906d408> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LFDI_BTD_SOA_01-Selector\" daemon prio=10 tid=6000000001737a10 nid=559 lwp_id=9410170 runnable [9ffffffe7ad00000..9ffffffe7ad00bc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0906dcf0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0906dcd8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0906dbc0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-270\" daemon prio=10 tid=6000000001580f90 nid=558 lwp_id=9410169 in Object.wait() [9ffffffe7af00000..9ffffffe7af00c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0906e868> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0906e868> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKID_BTD_SOA_05-Selector\" daemon prio=10 tid=600000000492d890 nid=557 lwp_id=9410162 runnable [9ffffffe7b100000..9ffffffe7b100cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0906f150> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0906f138> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0906f020> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-269\" daemon prio=10 tid=600000000492bd40 nid=556 lwp_id=9410161 in Object.wait() [9ffffffe7b300000..9ffffffe7b300d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0906fc98> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0906fc98> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNCE_BTD_SOA_01-Selector\" daemon prio=10 tid=600000000427fa30 nid=555 lwp_id=9398324 runnable [9ffffffe7b500000..9ffffffe7b500dc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff088e0f40> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff088e0f28> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff088e0e10> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-268\" daemon prio=10 tid=6000000004279270 nid=554 lwp_id=9398323 in Object.wait() [9ffffffe7b700000..9ffffffe7b700a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff088e1a88> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff088e1a88> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNCE_BTD_SOA_03-Selector\" daemon prio=10 tid=60000000048ce300 nid=553 lwp_id=9398322 runnable [9ffffffe7b900000..9ffffffe7b900ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff088e2370> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff088e2358> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff088e2240> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-267\" daemon prio=10 tid=600000000405fb50 nid=552 lwp_id=9398321 in Object.wait() [9ffffffe7bb00000..9ffffffe7bb00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff088e2ee8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff088e2ee8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKIS_BTD_SOA_01-Selector\" daemon prio=10 tid=60000000034cd600 nid=551 lwp_id=9395901 runnable [9ffffffe7bd00000..9ffffffe7bd00bc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff08164850> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff08164838> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff08164720> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-266\" daemon prio=10 tid=60000000034ccba0 nid=550 lwp_id=9395900 in Object.wait() [9ffffffe7bf00000..9ffffffe7bf00c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff08165398> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff08165398> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LFDI_BTD_SOA_03-Selector\" daemon prio=10 tid=600000000445cc00 nid=549 lwp_id=9395899 runnable [9ffffffe7c100000..9ffffffe7c100cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff08165c80> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff08165c68> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff08165b50> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-265\" daemon prio=10 tid=6000000004403a70 nid=548 lwp_id=9395898 in Object.wait() [9ffffffe7c300000..9ffffffe7c300d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff081667f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff081667f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LASI_BTB_SIA_01-Acceptor\" daemon prio=10 tid=6000000003aa3cf0 nid=547 lwp_id=9395239 runnable [9ffffffe7c500000..9ffffffe7c500dc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff08166d08> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LASI_BTB_SIA_01-Selector\" daemon prio=10 tid=6000000003a56e20 nid=546 lwp_id=9395238 runnable [9ffffffe7c700000..9ffffffe7c700a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0816b638> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0816b620> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0816a6f8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-264\" daemon prio=10 tid=6000000003a33370 nid=545 lwp_id=9395237 in Object.wait() [9ffffffe7c900000..9ffffffe7c900ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff08167040> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff08167040> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-263\" daemon prio=10 tid=6000000003a32d20 nid=544 lwp_id=9395202 in Object.wait() [9ffffffe7cb00000..9ffffffe7cb00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff08167748> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff08167748> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIS_BTB_SIA_01-Acceptor\" daemon prio=10 tid=6000000003a97250 nid=543 lwp_id=9392891 runnable [9ffffffe7cd00000..9ffffffe7cd00bc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff079acbf8> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIS_BTB_SIA_01-Selector\" daemon prio=10 tid=6000000003a37f90 nid=542 lwp_id=9392890 runnable [9ffffffe7cf00000..9ffffffe7cf00c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff079c0918> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff079c0900> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff079bfa98> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-262\" daemon prio=10 tid=6000000003a37940 nid=541 lwp_id=9392889 in Object.wait() [9ffffffe7d100000..9ffffffe7d100cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff079acf30> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff079acf30> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-261\" daemon prio=10 tid=6000000003a367f0 nid=540 lwp_id=9392863 in Object.wait() [9ffffffe7d300000..9ffffffe7d300d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff079bd680> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff079bd680> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Job_Executor14\" daemon prio=10 tid=6000000001142710 nid=539 lwp_id=9392860 runnable [9ffffffe7d500000..9ffffffe7d500dc0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff13bee818> (a java.io.BufferedInputStream)\r\n\tat java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2196)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2486)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2496)\r\n\tat java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1273)\r\n\tat java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)\r\n\tat com.sun.jmx.remote.socket.SocketConnection.readMessage(SocketConnection.java:211)\r\n\tat com.sun.jmx.remote.generic.ServerSynchroMessageConnectionImpl$MessageReader.run(ServerSynchroMessageConnectionImpl.java:168)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:208)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor13\" daemon prio=10 tid=6000000001017b90 nid=538 lwp_id=9392859 runnable [9ffffffe7d700000..9ffffffe7d700a40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff41f84210> (a java.io.BufferedInputStream)\r\n\tat java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2196)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2486)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2496)\r\n\tat java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1273)\r\n\tat java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)\r\n\tat com.sun.jmx.remote.socket.SocketConnection.readMessage(SocketConnection.java:211)\r\n\tat com.sun.jmx.remote.generic.ClientSynchroMessageConnectionImpl$MessageReader.run(ClientSynchroMessageConnectionImpl.java:391)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:208)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor12\" daemon prio=10 tid=6000000001010f70 nid=537 lwp_id=9392858 runnable [9ffffffe7d900000..9ffffffe7d900ac0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff41f43800> (a java.io.BufferedInputStream)\r\n\tat java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2196)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2486)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2496)\r\n\tat java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1273)\r\n\tat java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)\r\n\tat com.sun.jmx.remote.socket.SocketConnection.readMessage(SocketConnection.java:211)\r\n\tat com.sun.jmx.remote.generic.ServerSynchroMessageConnectionImpl$MessageReader.run(ServerSynchroMessageConnectionImpl.java:168)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:208)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor11\" daemon prio=10 tid=600000000100a720 nid=536 lwp_id=9392857 in Object.wait() [9ffffffe7db00000..9ffffffe7db00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff13bee968> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:183)\r\n\t- locked <9fffffff13bee968> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor10\" daemon prio=10 tid=6000000003a3f630 nid=535 lwp_id=9392822 in Object.wait() [9ffffffe7dd00000..9ffffffe7dd00bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03df48e8> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:144)\r\n\t- locked <9fffffff03df48e8> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor9\" daemon prio=10 tid=60000000039b77d0 nid=534 lwp_id=9392821 in Object.wait() [9ffffffe7df00000..9ffffffe7df00c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff07304590> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:87)\r\n\t- locked <9fffffff07304590> (a [I)\r\n\r\n\"LKNI_BTD_SOA_01-Selector\" daemon prio=10 tid=600000000076b790 nid=532 lwp_id=9391183 runnable [9ffffffe7e300000..9ffffffe7e300d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff073094b0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff073094c8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff07309398> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-259\" daemon prio=10 tid=6000000000764560 nid=531 lwp_id=9391182 in Object.wait() [9ffffffe7e500000..9ffffffe7e500dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0730c0e0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0730c0e0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Timer-2\" daemon prio=10 tid=6000000004154410 nid=529 lwp_id=9391119 in Object.wait() [9ffffffe7e900000..9ffffffe7e900ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff07337b58> (a java.util.TaskQueue)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:509)\r\n\t- locked <9fffffff07337b58> (a java.util.TaskQueue)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n\"jTDS TimerThread\" daemon prio=10 tid=600000000397c780 nid=528 lwp_id=9390593 in Object.wait() [9ffffffe7eb00000..9ffffffe7eb00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff07338908> (a java.util.LinkedList)\r\n\tat net.sourceforge.jtds.util.TimerThread.run(TimerThread.java:114)\r\n\t- locked <9fffffff07338908> (a java.util.LinkedList)\r\n\r\n\"SchedulingService-4\" daemon prio=10 tid=60000000039682f0 nid=527 lwp_id=9390586 waiting on condition [9ffffffe7ed00000..9ffffffe7ed00bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1803)\r\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:135)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:504)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:497)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKID_BTD_SOA_07-Selector\" daemon prio=10 tid=6000000004423b00 nid=526 lwp_id=9390524 runnable [9ffffffe7ef00000..9ffffffe7ef00c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff07339740> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff07339758> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff07339628> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-256\" daemon prio=10 tid=6000000004422730 nid=525 lwp_id=9390523 in Object.wait() [9ffffffe7f100000..9ffffffe7f100cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0733b0a8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0733b0a8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKID_BTD_SOA_06-Selector\" daemon prio=10 tid=60000000043d9ae0 nid=524 lwp_id=9390521 runnable [9ffffffe7f300000..9ffffffe7f300d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0733b930> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0733b948> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0733b818> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-255\" daemon prio=10 tid=600000000438dc30 nid=523 lwp_id=9390520 in Object.wait() [9ffffffe7f500000..9ffffffe7f500dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff07344368> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff07344368> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKID_BTD_SOA_01-Selector\" daemon prio=10 tid=60000000043a8bc0 nid=522 lwp_id=9390519 runnable [9ffffffe7f700000..9ffffffe7f700a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff07346a08> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff07346a20> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff073468f0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-254\" daemon prio=10 tid=60000000043a8570 nid=521 lwp_id=9390518 in Object.wait() [9ffffffe7f900000..9ffffffe7f900ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff07344788> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff07344788> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SOA_13-Selector\" daemon prio=10 tid=60000000041395a0 nid=520 lwp_id=9390508 runnable [9ffffffe7fb00000..9ffffffe7fb00b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff07345010> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff07345028> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff07344ef8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-253\" daemon prio=10 tid=60000000040febf0 nid=519 lwp_id=9390507 in Object.wait() [9ffffffe7fd00000..9ffffffe7fd00bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff073475b0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff073475b0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SOA_12-Selector\" daemon prio=10 tid=60000000006259d0 nid=518 lwp_id=9390504 runnable [9ffffffe7ff00000..9ffffffe7ff00c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff07349ea8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff07349ec0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff07349d90> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-252\" daemon prio=10 tid=6000000000624250 nid=517 lwp_id=9390503 in Object.wait() [9ffffffe86500000..9ffffffe86500cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0735b398> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0735b398> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[ABNS_TMASO_BTB_01] adapter worker thread pool-4-thread-2\" daemon prio=10 tid=600000000438d5e0 nid=515 lwp_id=9390430 waiting on condition [9ffffffe80300000..9ffffffe80300dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-60\" daemon prio=10 tid=60000000019cf170 nid=514 lwp_id=9390401 waiting on condition [9ffffffe80500000..9ffffffe80500a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-59\" daemon prio=10 tid=60000000019cd990 nid=513 lwp_id=9390400 waiting on condition [9ffffffe80700000..9ffffffe80700ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-58\" daemon prio=10 tid=60000000019c9cd0 nid=512 lwp_id=9390399 waiting on condition [9ffffffe80900000..9ffffffe80900b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-57\" daemon prio=10 tid=60000000019c74b0 nid=511 lwp_id=9390398 waiting on condition [9ffffffe80b00000..9ffffffe80b00bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-56\" daemon prio=10 tid=600000000181f940 nid=510 lwp_id=9390397 waiting on condition [9ffffffe80d00000..9ffffffe80d00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-55\" daemon prio=10 tid=60000000017d1bd0 nid=509 lwp_id=9390396 waiting on condition [9ffffffe80f00000..9ffffffe80f00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-54\" daemon prio=10 tid=60000000017cda90 nid=508 lwp_id=9390395 waiting on condition [9ffffffe81100000..9ffffffe81100d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-53\" daemon prio=10 tid=60000000017cb270 nid=507 lwp_id=9390394 waiting on condition [9ffffffe81300000..9ffffffe81300dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-52\" daemon prio=10 tid=60000000017c9a90 nid=506 lwp_id=9390393 waiting on condition [9ffffffe81500000..9ffffffe81500a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-51\" daemon prio=10 tid=60000000017d20b0 nid=505 lwp_id=9390392 waiting on condition [9ffffffe81700000..9ffffffe81700ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-50\" daemon prio=10 tid=60000000017c6230 nid=504 lwp_id=9390391 waiting on condition [9ffffffe81900000..9ffffffe81900b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-49\" daemon prio=10 tid=60000000017c4a50 nid=503 lwp_id=9390390 waiting on condition [9ffffffe81b00000..9ffffffe81b00bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-48\" daemon prio=10 tid=60000000017c02d0 nid=502 lwp_id=9390389 waiting on condition [9ffffffe81d00000..9ffffffe81d00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-47\" daemon prio=10 tid=60000000016fa380 nid=501 lwp_id=9390388 waiting on condition [9ffffffe81f00000..9ffffffe81f00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-46\" daemon prio=10 tid=60000000016f7140 nid=500 lwp_id=9390387 waiting on condition [9ffffffe82100000..9ffffffe82100d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-45\" daemon prio=10 tid=60000000016f5960 nid=499 lwp_id=9390386 waiting on condition [9ffffffe82300000..9ffffffe82300dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-44\" daemon prio=10 tid=60000000016f4180 nid=498 lwp_id=9390385 waiting on condition [9ffffffe82500000..9ffffffe82500a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-43\" daemon prio=10 tid=60000000011d6090 nid=497 lwp_id=9390384 waiting on condition [9ffffffe82700000..9ffffffe82700ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-42\" daemon prio=10 tid=600000000159a660 nid=496 lwp_id=9390383 waiting on condition [9ffffffe82900000..9ffffffe82900b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-41\" daemon prio=10 tid=6000000001598bc0 nid=495 lwp_id=9390382 waiting on condition [9ffffffe82b00000..9ffffffe82b00bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-40\" daemon prio=10 tid=6000000001596fd0 nid=494 lwp_id=9390381 waiting on condition [9ffffffe82d00000..9ffffffe82d00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-39\" daemon prio=10 tid=6000000001595c00 nid=493 lwp_id=9390380 waiting on condition [9ffffffe82f00000..9ffffffe82f00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-38\" daemon prio=10 tid=600000000158b430 nid=492 lwp_id=9390379 waiting on condition [9ffffffe83100000..9ffffffe83100d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-37\" daemon prio=10 tid=60000000010760b0 nid=491 lwp_id=9390378 waiting on condition [9ffffffe83300000..9ffffffe83300dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-36\" daemon prio=10 tid=6000000001074ce0 nid=490 lwp_id=9390377 waiting on condition [9ffffffe83500000..9ffffffe83500a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-35\" daemon prio=10 tid=6000000001071090 nid=489 lwp_id=9390376 waiting on condition [9ffffffe83700000..9ffffffe83700ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-34\" daemon prio=10 tid=600000000106fcc0 nid=488 lwp_id=9390375 waiting on condition [9ffffffe83900000..9ffffffe83900b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-33\" daemon prio=10 tid=6000000001267590 nid=487 lwp_id=9390374 waiting on condition [9ffffffe83b00000..9ffffffe83b00bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-32\" daemon prio=10 tid=6000000001265db0 nid=486 lwp_id=9390373 waiting on condition [9ffffffe83d00000..9ffffffe83d00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-31\" daemon prio=10 tid=6000000000603d60 nid=485 lwp_id=9390372 waiting on condition [9ffffffe83f00000..9ffffffe83f00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-30\" daemon prio=10 tid=6000000000600120 nid=484 lwp_id=9390371 waiting on condition [9ffffffe84100000..9ffffffe84100d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-29 [container1-81]\" daemon prio=10 tid=600000000061b060 nid=483 lwp_id=9390370 waiting on condition [9ffffffe84300000..9ffffffe84300dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-28\" daemon prio=10 tid=60000000016fb740 nid=482 lwp_id=9390369 waiting on condition [9ffffffe84500000..9ffffffe84500a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-27\" daemon prio=10 tid=60000000016ef5d0 nid=481 lwp_id=9390368 waiting on condition [9ffffffe84700000..9ffffffe84700ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-26\" daemon prio=10 tid=60000000016eeb70 nid=480 lwp_id=9390367 waiting on condition [9ffffffe84900000..9ffffffe84900b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-25\" daemon prio=10 tid=60000000015ac710 nid=479 lwp_id=9390366 waiting on condition [9ffffffe84b00000..9ffffffe84b00bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-24 [container1-76]\" daemon prio=10 tid=60000000015aac70 nid=478 lwp_id=9390365 waiting on condition [9ffffffe84d00000..9ffffffe84d00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-23\" daemon prio=10 tid=60000000011ff8a0 nid=477 lwp_id=9390364 waiting on condition [9ffffffe84f00000..9ffffffe84f00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-22\" daemon prio=10 tid=60000000011f7cb0 nid=476 lwp_id=9390363 waiting on condition [9ffffffe85100000..9ffffffe85100d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-21\" daemon prio=10 tid=60000000011d5a40 nid=475 lwp_id=9390362 waiting on condition [9ffffffe85300000..9ffffffe85300dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-20\" daemon prio=10 tid=60000000010bc690 nid=474 lwp_id=9390361 waiting on condition [9ffffffe85500000..9ffffffe85500a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-19\" daemon prio=10 tid=60000000010876f0 nid=473 lwp_id=9390360 waiting on condition [9ffffffe85700000..9ffffffe85700ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-18\" daemon prio=10 tid=6000000001080de0 nid=472 lwp_id=9390359 waiting on condition [9ffffffe85900000..9ffffffe85900b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-17\" daemon prio=10 tid=60000000007ae2c0 nid=471 lwp_id=9390358 waiting on condition [9ffffffe85b00000..9ffffffe85b00bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-16\" daemon prio=10 tid=6000000000719920 nid=470 lwp_id=9390354 waiting on condition [9ffffffe85d00000..9ffffffe85d00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-15\" daemon prio=10 tid=60000000006ddab0 nid=469 lwp_id=9390353 waiting on condition [9ffffffe85f00000..9ffffffe85f00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LARE_BTD_SOA_11-Selector\" daemon prio=10 tid=60000000004dd4d0 nid=468 lwp_id=9390352 runnable [9ffffffe86100000..9ffffffe86100d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0737a290> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0737a2a8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0737a178> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-250\" daemon prio=10 tid=60000000004da030 nid=467 lwp_id=9390351 in Object.wait() [9ffffffe86300000..9ffffffe86300dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0737adc0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0737adc0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-14\" daemon prio=10 tid=60000000034c3440 nid=466 lwp_id=9390350 waiting on condition [9ffffffeb5f00000..9ffffffeb5f00a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[ABNS_TMASO_BTB_01] adapter worker thread pool-4-thread-1\" daemon prio=10 tid=6000000002609950 nid=464 lwp_id=9390348 waiting on condition [9ffffffe86700000..9ffffffe86700b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-13\" daemon prio=10 tid=60000000034bbb90 nid=463 lwp_id=9390347 waiting on condition [9ffffffe86900000..9ffffffe86900bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-12\" daemon prio=10 tid=60000000034d41e0 nid=462 lwp_id=9390301 waiting on condition [9ffffffe86b00000..9ffffffe86b00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-11\" daemon prio=10 tid=60000000034d19c0 nid=461 lwp_id=9390300 waiting on condition [9ffffffe86d00000..9ffffffe86d00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-10\" daemon prio=10 tid=60000000040bfd30 nid=460 lwp_id=9390299 waiting on condition [9ffffffe86f00000..9ffffffe86f00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-9\" daemon prio=10 tid=60000000049869a0 nid=459 lwp_id=9390298 waiting on condition [9ffffffe87100000..9ffffffe87100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-8\" daemon prio=10 tid=600000000498c0d0 nid=458 lwp_id=9390292 waiting on condition [9ffffffe87300000..9ffffffe87300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"SchedulingService-3\" daemon prio=10 tid=600000000487f8a0 nid=457 lwp_id=9390291 waiting on condition [9ffffffe87500000..9ffffffe87500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1803)\r\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:135)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:504)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:497)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-7 [container1-52]\" daemon prio=10 tid=600000000043f9c0 nid=456 lwp_id=9390290 waiting on condition [9ffffffe87700000..9ffffffe87700b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-6\" daemon prio=10 tid=6000000004336220 nid=455 lwp_id=9390280 waiting on condition [9ffffffe87900000..9ffffffe87900bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AWRB_SOPSI_BAN_01-acceptor\" prio=10 tid=600000000487d080 nid=454 lwp_id=9390270 runnable [9ffffffe87b00000..9ffffffe87b00c40]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff03c41208> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AWRB_SOPSI_BAN_01-w09 [container1-223]\" prio=10 tid=600000000487a860 nid=453 lwp_id=9390269 waiting on condition [9ffffffe87d00000..9ffffffe87d00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w08 [container1-222]\" prio=10 tid=6000000004878040 nid=452 lwp_id=9390268 waiting on condition [9ffffffe87f00000..9ffffffe87f00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w07 [container1-221]\" prio=10 tid=6000000004875820 nid=451 lwp_id=9390267 waiting on condition [9ffffffe88100000..9ffffffe88100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w06 [container1-220]\" prio=10 tid=60000000048716e0 nid=450 lwp_id=9390266 waiting on condition [9ffffffe88300000..9ffffffe88300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w05 [container1-219]\" prio=10 tid=600000000486eec0 nid=449 lwp_id=9390265 waiting on condition [9ffffffe88500000..9ffffffe88500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w04 [container1-218]\" prio=10 tid=600000000486b280 nid=448 lwp_id=9390264 waiting on condition [9ffffffe88700000..9ffffffe88700b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w03 [container1-217]\" prio=10 tid=6000000004868a60 nid=447 lwp_id=9390263 waiting on condition [9ffffffe88900000..9ffffffe88900bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w02 [container1-216]\" prio=10 tid=6000000004866240 nid=446 lwp_id=9390262 waiting on condition [9ffffffe88b00000..9ffffffe88b00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w01 [container1-215]\" prio=10 tid=6000000004863a20 nid=445 lwp_id=9390261 waiting on condition [9ffffffe88d00000..9ffffffe88d00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w00 [container1-214]\" prio=10 tid=6000000004861200 nid=444 lwp_id=9390260 waiting on condition [9ffffffe88f00000..9ffffffe88f00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASCB_SOPSI_BAN_01-acceptor\" prio=10 tid=600000000485e9e0 nid=443 lwp_id=9390259 runnable [9ffffffe89100000..9ffffffe89100dc0]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff033d1e00> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"ASCB_SOPSI_BAN_01-w04 [container1-289]\" prio=10 tid=600000000485c1c0 nid=442 lwp_id=9390258 waiting on condition [9ffffffe89300000..9ffffffe89300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASCB_SOPSI_BAN_01-w03 [container1-288]\" prio=10 tid=60000000048599a0 nid=441 lwp_id=9390257 waiting on condition [9ffffffe89500000..9ffffffe89500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASCB_SOPSI_BAN_01-w02 [container1-287]\" prio=10 tid=6000000004855d60 nid=440 lwp_id=9390256 waiting on condition [9ffffffe89700000..9ffffffe89700b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASCB_SOPSI_BAN_01-w01 [container1-252]\" prio=10 tid=6000000004853540 nid=439 lwp_id=9390255 waiting on condition [9ffffffe89900000..9ffffffe89900bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASCB_SOPSI_BAN_01-w00 [container1-206]\" prio=10 tid=6000000004850d20 nid=438 lwp_id=9390254 waiting on condition [9ffffffe89b00000..9ffffffe89b00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ABSB_SOPSI_BAN_01-acceptor\" prio=10 tid=600000000484e500 nid=437 lwp_id=9390253 runnable [9ffffffe89d00000..9ffffffe89d00cc0]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff034b7028> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"ABSB_SOPSI_BAN_01-w04 [container1-238]\" prio=10 tid=600000000484bce0 nid=436 lwp_id=9390252 waiting on condition [9ffffffe89f00000..9ffffffe89f00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ABSB_SOPSI_BAN_01-w03 [container1-237]\" prio=10 tid=60000000048494c0 nid=435 lwp_id=9390251 waiting on condition [9ffffffe8a100000..9ffffffe8a100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ABSB_SOPSI_BAN_01-w02 [container1-236]\" prio=10 tid=6000000004846ca0 nid=434 lwp_id=9390250 waiting on condition [9ffffffe8a300000..9ffffffe8a300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ABSB_SOPSI_BAN_01-w01 [container1-235]\" prio=10 tid=6000000004842b60 nid=433 lwp_id=9390249 waiting on condition [9ffffffe8a500000..9ffffffe8a500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ABSB_SOPSI_BAN_01-w00 [container1-234]\" prio=10 tid=600000000483ef20 nid=432 lwp_id=9390248 waiting on condition [9ffffffe8a700000..9ffffffe8a700b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AHNB_SOPSI_BAN_01-acceptor\" prio=10 tid=600000000483c700 nid=431 lwp_id=9390247 runnable [9ffffffe8a900000..9ffffffe8a900bc0]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff0359c598> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AHNB_SOPSI_BAN_01-w04 [container1-278]\" prio=10 tid=6000000004839ee0 nid=430 lwp_id=9390246 waiting on condition [9ffffffe8ab00000..9ffffffe8ab00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AHNB_SOPSI_BAN_01-w03 [container1-277]\" prio=10 tid=6000000004832ba0 nid=429 lwp_id=9390245 waiting on condition [9ffffffe8ad00000..9ffffffe8ad00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AHNB_SOPSI_BAN_01-w02 [container1-269]\" prio=10 tid=6000000004830380 nid=428 lwp_id=9390244 waiting on condition [9ffffffe8af00000..9ffffffe8af00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AHNB_SOPSI_BAN_01-w01 [container1-266]\" prio=10 tid=600000000482a940 nid=427 lwp_id=9390243 waiting on condition [9ffffffe8b100000..9ffffffe8b100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AHNB_SOPSI_BAN_01-w00 [container1-264]\" prio=10 tid=6000000004828120 nid=426 lwp_id=9390242 waiting on condition [9ffffffe8b300000..9ffffffe8b300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ACJH_SOPSI_BAN_01-acceptor\" prio=10 tid=60000000048244e0 nid=425 lwp_id=9390241 runnable [9ffffffe8b500000..9ffffffe8b500ac0]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff03861558> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"ACJH_SOPSI_BAN_01-w09 [container1-211]\" prio=10 tid=6000000004821cc0 nid=424 lwp_id=9390240 runnable [9ffffffe8b700000..9ffffffe8b700b40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff422b4bd0> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w08 [container1-210]\" prio=10 tid=60000000047ff490 nid=423 lwp_id=9390239 runnable [9ffffffe8b900000..9ffffffe8b900bc0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff421cbd90> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w07 [container1-147]\" prio=10 tid=60000000047fcc70 nid=422 lwp_id=9390238 runnable [9ffffffe8bb00000..9ffffffe8bb00c40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff422b1a10> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w06 [container1-143]\" prio=10 tid=60000000047fa450 nid=421 lwp_id=9390237 runnable [9ffffffe8bd00000..9ffffffe8bd00cc0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff422b0e60> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w05 [container1-139]\" prio=10 tid=60000000047f7c30 nid=420 lwp_id=9390236 runnable [9ffffffe8bf00000..9ffffffe8bf00d40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff421ce5a0> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w04 [container1-138]\" prio=10 tid=60000000047f5410 nid=419 lwp_id=9390235 runnable [9ffffffe8c100000..9ffffffe8c100dc0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff4206dbf8> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w03 [container1-127]\" prio=10 tid=60000000047f2bf0 nid=418 lwp_id=9390234 runnable [9ffffffe8c300000..9ffffffe8c300a40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff42119968> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w02 [container1-58]\" prio=10 tid=60000000047f03d0 nid=417 lwp_id=9390233 runnable [9ffffffe8c500000..9ffffffe8c500ac0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff422c7d58> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w01 [container1-56]\" prio=10 tid=60000000047e8290 nid=416 lwp_id=9390232 runnable [9ffffffe8c700000..9ffffffe8c700b40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff421cbde8> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w00 [container1-51]\" prio=10 tid=60000000047e5a70 nid=415 lwp_id=9390231 runnable [9ffffffe8c900000..9ffffffe8c900bc0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff421cf3b0> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJB_SOPSI_BAN_01-acceptor\" prio=10 tid=60000000047601b0 nid=414 lwp_id=9390230 runnable [9ffffffe8cb00000..9ffffffe8cb00c40]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff03b0b768> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"ACJB_SOPSI_BAN_01-w04 [container1-317]\" prio=10 tid=600000000475fe50 nid=413 lwp_id=9390229 waiting on condition [9ffffffe8cd00000..9ffffffe8cd00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ACJB_SOPSI_BAN_01-w03 [container1-318]\" prio=10 tid=60000000047290c0 nid=412 lwp_id=9390228 waiting on condition [9ffffffe8cf00000..9ffffffe8cf00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ACJB_SOPSI_BAN_01-w02\" prio=10 tid=6000000003538b90 nid=411 lwp_id=9390227 waiting on condition [9ffffffe8d100000..9ffffffe8d100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ACJB_SOPSI_BAN_01-w01 [container1-297]\" prio=10 tid=6000000003525780 nid=410 lwp_id=9390226 waiting on condition [9ffffffe8d300000..9ffffffe8d300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ACJB_SOPSI_BAN_01-w00 [container1-296]\" prio=10 tid=6000000003524d20 nid=409 lwp_id=9390225 waiting on condition [9ffffffe8d500000..9ffffffe8d500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-acceptor\" prio=10 tid=6000000003cde580 nid=408 lwp_id=9390224 runnable [9ffffffe8d700000..9ffffffe8d700b40]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff039e23a0> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"ASHB_SOPSI_BAN_01-w09 [container1-142]\" prio=10 tid=6000000003cb1340 nid=407 lwp_id=9390223 waiting on condition [9ffffffe8d900000..9ffffffe8d900bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w08 [container1-177]\" prio=10 tid=6000000003c9eb10 nid=406 lwp_id=9390222 waiting on condition [9ffffffe8db00000..9ffffffe8db00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w07 [container1-185]\" prio=10 tid=60000000037ca0e0 nid=405 lwp_id=9390221 waiting on condition [9ffffffe8dd00000..9ffffffe8dd00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w06 [container1-140]\" prio=10 tid=60000000037c2120 nid=404 lwp_id=9390220 waiting on condition [9ffffffe8df00000..9ffffffe8df00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w05 [container1-186]\" prio=10 tid=60000000037bf900 nid=403 lwp_id=9390219 waiting on condition [9ffffffe8e100000..9ffffffe8e100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w04 [container1-187]\" prio=10 tid=60000000037bd0e0 nid=402 lwp_id=9390218 waiting on condition [9ffffffe8e300000..9ffffffe8e300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w03 [container1-198]\" prio=10 tid=60000000037ba8c0 nid=401 lwp_id=9390217 waiting on condition [9ffffffe8e500000..9ffffffe8e500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w02 [container1-251]\" prio=10 tid=60000000037b80a0 nid=400 lwp_id=9390216 waiting on condition [9ffffffe8e700000..9ffffffe8e700b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w01 [container1-263]\" prio=10 tid=60000000037b3f60 nid=399 lwp_id=9390215 waiting on condition [9ffffffe8e900000..9ffffffe8e900bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w00 [container1-270]\" prio=10 tid=60000000037b1740 nid=398 lwp_id=9390214 waiting on condition [9ffffffe8eb00000..9ffffffe8eb00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-acceptor\" prio=10 tid=60000000037aef20 nid=397 lwp_id=9390213 runnable [9ffffffe8ed00000..9ffffffe8ed00cc0]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff032753e0> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"http1-w09 [container1-174]\" prio=10 tid=60000000037a7be0 nid=396 lwp_id=9390212 waiting on condition [9ffffffe8ef00000..9ffffffe8ef00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w08 [container1-171]\" prio=10 tid=60000000037a53c0 nid=395 lwp_id=9390211 waiting on condition [9ffffffe8f100000..9ffffffe8f100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w07 [container1-175]\" prio=10 tid=60000000037a2ba0 nid=394 lwp_id=9390210 waiting on condition [9ffffffe8f300000..9ffffffe8f300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w06 [container1-176]\" prio=10 tid=600000000379d160 nid=393 lwp_id=9390209 waiting on condition [9ffffffe8f500000..9ffffffe8f500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w05 [container1-182]\" prio=10 tid=600000000379a940 nid=392 lwp_id=9390208 waiting on condition [9ffffffe8f700000..9ffffffe8f700b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w04 [container1-173]\" prio=10 tid=6000000003798120 nid=391 lwp_id=9390207 waiting on condition [9ffffffe8f900000..9ffffffe8f900bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w03 [container1-170]\" prio=10 tid=600000000373cf50 nid=390 lwp_id=9390206 waiting on condition [9ffffffe8fb00000..9ffffffe8fb00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w02 [container1-184]\" prio=10 tid=600000000373bb70 nid=389 lwp_id=9390205 waiting on condition [9ffffffe8fd00000..9ffffffe8fd00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w01 [container1-169]\" prio=10 tid=600000000350bc60 nid=388 lwp_id=9390204 waiting on condition [9ffffffe8ff00000..9ffffffe8ff00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w00 [container1-172]\" prio=10 tid=60000000034f2b80 nid=387 lwp_id=9390203 waiting on condition [9ffffffe90100000..9ffffffe90100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-5\" daemon prio=10 tid=6000000003c7fca0 nid=386 lwp_id=9390202 waiting on condition [9ffffffe90300000..9ffffffe90300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"SchedulingService-2\" daemon prio=10 tid=6000000003546370 nid=385 lwp_id=9390201 waiting on condition [9ffffffe90500000..9ffffffe90500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1803)\r\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:135)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:504)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:497)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-179\" prio=10 tid=6000000003526510 nid=384 lwp_id=9390200 waiting on condition [9ffffffe90700000..9ffffffe90700b40]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.tmax.ebxml.trp.rm.RetryThread.run(RetryThread.java:148)\r\n\r\n\"Thread-178\" prio=10 tid=600000000350c170 nid=383 lwp_id=9390199 waiting on condition [9ffffffe90900000..9ffffffe90900bc0]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.tmax.ebxml.trp.rm.PersistThread.run(PersistThread.java:100)\r\n\r\n\"Thread-180\" prio=10 tid=60000000034ce9a0 nid=382 lwp_id=9390198 waiting on condition [9ffffffe90b00000..9ffffffe90b00c40]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.tmax.ebxml.trp.rm.RMControlScheduler.run(RMControlScheduler.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"DistributedSessionRouterAcceptor-Selector\" daemon prio=10 tid=60000000034fc8d0 nid=381 lwp_id=9390197 runnable [9ffffffe90d00000..9ffffffe90d00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff02c8ab20> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff02c8ab08> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff02c8a998> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"DistributedSessionServerAcceptor-1\" daemon prio=10 tid=60000000034ce230 nid=380 lwp_id=9390196 in Object.wait() [9ffffffe90f00000..9ffffffe90f00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03eedaf0> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff03eedaf0> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"DistributedSessionServerAcceptor-0\" daemon prio=10 tid=600000000349b520 nid=379 lwp_id=9390195 in Object.wait() [9fffffffb8f00000..9fffffffb8f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03eedaf0> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff03eedaf0> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Job_Executor8\" daemon prio=10 tid=6000000003c0a0a0 nid=378 lwp_id=9390194 in Object.wait() [9ffffffe91100000..9ffffffe91100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff41f3fb50> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:183)\r\n\t- locked <9fffffff41f3fb50> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor7\" daemon prio=10 tid=60000000035b4a90 nid=377 lwp_id=9390192 in Object.wait() [9ffffffe91300000..9ffffffe91300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff41f80340> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:183)\r\n\t- locked <9fffffff41f80340> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Thread-177\" daemon prio=10 tid=600000000357ba90 nid=376 lwp_id=9390191 waiting on condition [9ffffffe91500000..9ffffffe91500b40]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.sun.jmx.remote.opt.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:154)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Job_Executor6\" daemon prio=10 tid=6000000003539e50 nid=375 lwp_id=9390190 in Object.wait() [9ffffffe91700000..9ffffffe91700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03fdb3a8> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:183)\r\n\t- locked <9fffffff03fdb3a8> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor5\" daemon prio=10 tid=60000000001f77d0 nid=374 lwp_id=9390187 runnable [9ffffffe91900000..9ffffffe91900c40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff03ff43e8> (a java.io.BufferedInputStream)\r\n\tat java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2196)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2486)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2496)\r\n\tat java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1273)\r\n\tat java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)\r\n\tat com.sun.jmx.remote.socket.SocketConnection.readMessage(SocketConnection.java:211)\r\n\tat com.sun.jmx.remote.generic.ClientSynchroMessageConnectionImpl$MessageReader.run(ClientSynchroMessageConnectionImpl.java:391)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:208)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor4\" daemon prio=10 tid=60000000034d56f0 nid=373 lwp_id=9390182 in Object.wait() [9ffffffe91b00000..9ffffffe91b00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff420c05b0> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:183)\r\n\t- locked <9fffffff420c05b0> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Thread-176\" daemon prio=10 tid=60000000034d5390 nid=372 lwp_id=9390181 waiting on condition [9ffffffe91d00000..9ffffffe91d00d40]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.sun.jmx.remote.opt.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:154)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-4\" daemon prio=10 tid=60000000040705c0 nid=371 lwp_id=9390179 waiting on condition [9ffffffe91f00000..9ffffffe91f00dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-3\" daemon prio=10 tid=6000000003c67ca0 nid=370 lwp_id=9390178 waiting on condition [9ffffffe92100000..9ffffffe92100a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-2\" daemon prio=10 tid=600000000401f460 nid=369 lwp_id=9390177 waiting on condition [9ffffffe92300000..9ffffffe92300ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OracleTimeoutPollingThread\" daemon prio=10 tid=6000000003c5fed0 nid=368 lwp_id=9390175 waiting on condition [9ffffffe92500000..9ffffffe92500b40]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat oracle.jdbc.driver.OracleTimeoutPollingThread.run(OracleTimeoutPollingThread.java:158)\r\n\r\n\"SchedulingService-1\" daemon prio=10 tid=60000000038bf5f0 nid=367 lwp_id=9390174 waiting on condition [9ffffffe92700000..9ffffffe92700bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1803)\r\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:135)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:504)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:497)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-1\" daemon prio=10 tid=600000000389ce80 nid=366 lwp_id=9390173 waiting on condition [9ffffffe92900000..9ffffffe92900c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-175\" daemon prio=10 tid=60000000034ab600 nid=365 lwp_id=9390172 in Object.wait() [9ffffffe92b00000..9ffffffe92b00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0484ded8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0484ded8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LIND_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000034a8de0 nid=364 lwp_id=9390171 runnable [9ffffffe92d00000..9ffffffe92d00d40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04877438> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LIND_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000034a65c0 nid=363 lwp_id=9390170 runnable [9ffffffe92f00000..9ffffffe92f00dc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04543c68> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04543c50> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04543af0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-174\" daemon prio=10 tid=600000000349ff40 nid=362 lwp_id=9390169 in Object.wait() [9ffffffe93100000..9ffffffe93100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04877208> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04877208> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-ACJB_SOPSI_BAN_01\" daemon prio=10 tid=6000000000247030 nid=361 lwp_id=9390168 in Object.wait() [9ffffffe93300000..9ffffffe93300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0427b1f8> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff0427b1f8> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"scheduler\" daemon prio=10 tid=60000000001f6400 nid=360 lwp_id=9390167 in Object.wait() [9ffffffe93500000..9ffffffe93500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04883cd0> (a com.tmax.anylink.scheduler.Scheduler$SchedulingThread)\r\n\tat com.tmax.anylink.scheduler.Scheduler$SchedulingThread.run(Scheduler.java:232)\r\n\t- locked <9fffffff04883cd0> (a com.tmax.anylink.scheduler.Scheduler$SchedulingThread)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-171\" daemon prio=10 tid=60000000034957c0 nid=359 lwp_id=9390166 in Object.wait() [9ffffffe93700000..9ffffffe93700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff048a2290> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff048a2290> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LCTB_BAN_SIA_11-Acceptor\" daemon prio=10 tid=6000000003491040 nid=358 lwp_id=9390165 runnable [9ffffffe93900000..9ffffffe93900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff048b1758> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LCTB_BAN_SIA_11-Selector\" daemon prio=10 tid=600000000348e820 nid=357 lwp_id=9390164 runnable [9ffffffe93b00000..9ffffffe93b00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0456d630> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0456d618> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0456d4b8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-170\" daemon prio=10 tid=6000000003489420 nid=356 lwp_id=9390163 in Object.wait() [9ffffffe93d00000..9ffffffe93d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff048b1528> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff048b1528> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-169\" daemon prio=10 tid=6000000003486c00 nid=355 lwp_id=9390162 in Object.wait() [9ffffffe93f00000..9ffffffe93f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04988fd0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04988fd0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-168\" daemon prio=10 tid=60000000034811c0 nid=354 lwp_id=9390161 in Object.wait() [9ffffffe94100000..9ffffffe94100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04a1a5f0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04a1a5f0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBCW_BTB_SIA_11-Acceptor\" daemon prio=10 tid=600000000347e9a0 nid=353 lwp_id=9390160 runnable [9ffffffe94300000..9ffffffe94300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04a1e638> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBCW_BTB_SIA_11-Selector\" daemon prio=10 tid=600000000347ad60 nid=352 lwp_id=9390159 runnable [9ffffffe94500000..9ffffffe94500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0456cb10> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0456caf8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0456c998> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-167\" daemon prio=10 tid=6000000003478540 nid=351 lwp_id=9390158 in Object.wait() [9ffffffe94700000..9ffffffe94700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04a2b890> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04a2b890> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-166\" daemon prio=10 tid=6000000003474900 nid=350 lwp_id=9390157 in Object.wait() [9ffffffe94900000..9ffffffe94900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04a1ebc0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04a1ebc0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSHB_BTD_SIA_02-Acceptor\" daemon prio=10 tid=60000000034720e0 nid=349 lwp_id=9390156 runnable [9ffffffe94b00000..9ffffffe94b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04a3f240> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSHB_BTD_SIA_02-Selector\" daemon prio=10 tid=600000000346f8c0 nid=348 lwp_id=9390155 runnable [9ffffffe94d00000..9ffffffe94d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04550b30> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04550b18> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff045509b8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-165\" daemon prio=10 tid=600000000346d0a0 nid=347 lwp_id=9390154 in Object.wait() [9ffffffe94f00000..9ffffffe94f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04a3f010> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04a3f010> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSHB_BTD_SIA_01-Acceptor\" daemon prio=10 tid=600000000346a880 nid=346 lwp_id=9390153 runnable [9ffffffe95100000..9ffffffe95100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04a3e668> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSHB_BTD_SIA_01-Selector\" daemon prio=10 tid=6000000003468060 nid=345 lwp_id=9390152 runnable [9ffffffe95300000..9ffffffe95300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0455fd68> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0455fd50> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0455fbf0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-164\" daemon prio=10 tid=6000000003465840 nid=344 lwp_id=9390151 in Object.wait() [9ffffffe95500000..9ffffffe95500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04a3e438> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04a3e438> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-163\" daemon prio=10 tid=6000000003461700 nid=343 lwp_id=9390150 in Object.wait() [9ffffffe95700000..9ffffffe95700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04aa4080> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04aa4080> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-162\" daemon prio=10 tid=600000000345eee0 nid=342 lwp_id=9390149 in Object.wait() [9ffffffe95900000..9ffffffe95900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04abfcc8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04abfcc8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKDB_BAN_SIA_12-Acceptor\" daemon prio=10 tid=600000000345c6c0 nid=341 lwp_id=9390148 runnable [9ffffffe95b00000..9ffffffe95b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04adde10> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKDB_BAN_SIA_12-Selector\" daemon prio=10 tid=6000000003459ea0 nid=340 lwp_id=9390147 runnable [9ffffffe95d00000..9ffffffe95d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0455f1c8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0455f1b0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0455f050> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-161\" daemon prio=10 tid=6000000003457680 nid=339 lwp_id=9390146 in Object.wait() [9ffffffe95f00000..9ffffffe95f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04addbe0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04addbe0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKDB_BAN_AAA_11-Acceptor\" daemon prio=10 tid=6000000003454e60 nid=338 lwp_id=9390145 runnable [9ffffffe96100000..9ffffffe96100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04ad3220> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKDB_BAN_AAA_11-Selector\" daemon prio=10 tid=6000000003451220 nid=337 lwp_id=9390144 runnable [9ffffffe96300000..9ffffffe96300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04551710> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff045516f8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04551598> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-160\" daemon prio=10 tid=600000000344ea00 nid=336 lwp_id=9390143 in Object.wait() [9ffffffe96500000..9ffffffe96500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ad2ff0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04ad2ff0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-159\" daemon prio=10 tid=600000000344c1e0 nid=335 lwp_id=9390142 in Object.wait() [9ffffffe96700000..9ffffffe96700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ad8b58> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04ad8b58> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKID_BTD_SIA_11-Acceptor\" daemon prio=10 tid=60000000034499c0 nid=334 lwp_id=9390141 runnable [9ffffffe96900000..9ffffffe96900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04afc4c0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKID_BTD_SIA_11-Selector\" daemon prio=10 tid=60000000034481e0 nid=333 lwp_id=9390140 runnable [9ffffffe96b00000..9ffffffe96b00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0455e518> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0455e500> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0455e3a0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-158\" daemon prio=10 tid=6000000003440ea0 nid=332 lwp_id=9390139 in Object.wait() [9ffffffe96d00000..9ffffffe96d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04afc290> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04afc290> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-157\" daemon prio=10 tid=600000000343e680 nid=331 lwp_id=9390138 in Object.wait() [9ffffffe96f00000..9ffffffe96f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04b2e610> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04b2e610> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISB_BTB_SIA_11-Acceptor\" daemon prio=10 tid=600000000343be60 nid=330 lwp_id=9390137 runnable [9ffffffe97100000..9ffffffe97100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04b45e00> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISB_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000003439640 nid=329 lwp_id=9390136 runnable [9ffffffe97300000..9ffffffe97300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0457a328> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0457a310> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0457a1b0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-156\" daemon prio=10 tid=6000000003435a00 nid=328 lwp_id=9390135 in Object.wait() [9ffffffe97500000..9ffffffe97500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04b45bd0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04b45bd0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-ASHB_SOPSI_BAN_01\" daemon prio=10 tid=60000000034331e0 nid=327 lwp_id=9390134 in Object.wait() [9ffffffe97700000..9ffffffe97700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0426d910> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff0426d910> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-154\" daemon prio=10 tid=600000000342f0a0 nid=326 lwp_id=9390133 in Object.wait() [9ffffffe97900000..9ffffffe97900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04bc4f70> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04bc4f70> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-AMZF_TMXSO_BAN_01\" daemon prio=10 tid=600000000342c880 nid=325 lwp_id=9390132 in Object.wait() [9ffffffe97b00000..9ffffffe97b00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04c080f8> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener.run(AsyncOutboundGateway.java:125)\r\n\t- locked <9fffffff04c080f8> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-152\" daemon prio=10 tid=600000000342a060 nid=324 lwp_id=9390131 in Object.wait() [9ffffffe97d00000..9ffffffe97d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04c1b030> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04c1b030> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-151\" daemon prio=10 tid=6000000003427840 nid=323 lwp_id=9390130 in Object.wait() [9ffffffe97f00000..9ffffffe97f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04c2d230> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04c2d230> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LWBP_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000003425020 nid=322 lwp_id=9390129 runnable [9ffffffe98100000..9ffffffe98100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04c46230> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LWBP_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000034213e0 nid=321 lwp_id=9390128 runnable [9ffffffe98300000..9ffffffe98300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0481d2e8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0481d2d0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0481d170> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-150\" daemon prio=10 tid=600000000341b9a0 nid=320 lwp_id=9390127 in Object.wait() [9ffffffe98500000..9ffffffe98500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04c46a10> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04c46a10> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-149\" daemon prio=10 tid=6000000003419180 nid=319 lwp_id=9390126 in Object.wait() [9ffffffe98700000..9ffffffe98700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04586c98> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04586c98> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKB__BAN_AIO_01-Selector\" daemon prio=10 tid=6000000003416960 nid=318 lwp_id=9390125 runnable [9ffffffe98900000..9ffffffe98900c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff047ee3b8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff047ee3a0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff047ee138> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-148\" daemon prio=10 tid=6000000003414140 nid=317 lwp_id=9390124 in Object.wait() [9ffffffe98b00000..9ffffffe98b00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff047e5da8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff047e5da8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKB__BAN_AII_01-Selector\" daemon prio=10 tid=6000000003411920 nid=316 lwp_id=9390123 runnable [9ffffffe98d00000..9ffffffe98d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0457afa8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0457af90> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0457ae30> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-147\" daemon prio=10 tid=600000000340f100 nid=315 lwp_id=9390122 in Object.wait() [9ffffffe98f00000..9ffffffe98f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04592e98> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04592e98> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-146\" daemon prio=10 tid=600000000340c8e0 nid=314 lwp_id=9390121 in Object.wait() [9ffffffe99100000..9ffffffe99100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04d04a98> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04d04a98> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LITS_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000003407b20 nid=313 lwp_id=9390120 runnable [9ffffffe99300000..9ffffffe99300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04d21b00> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LITS_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000003403ee0 nid=312 lwp_id=9390119 runnable [9ffffffe99500000..9ffffffe99500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0481ca48> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0481ca30> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0481c8d0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-145\" daemon prio=10 tid=60000000034016c0 nid=311 lwp_id=9390118 in Object.wait() [9ffffffe99700000..9ffffffe99700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04d222e0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04d222e0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-AMZF_TMXSO_BTD_01\" daemon prio=10 tid=60000000033fd580 nid=310 lwp_id=9390117 in Object.wait() [9ffffffe99900000..9ffffffe99900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04dc1e68> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener.run(AsyncOutboundGateway.java:125)\r\n\t- locked <9fffffff04dc1e68> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-143\" daemon prio=10 tid=60000000033f71b0 nid=309 lwp_id=9390116 in Object.wait() [9ffffffe99b00000..9ffffffe99b00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04dd5d20> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04dd5d20> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LWCI_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000033f4990 nid=308 lwp_id=9390115 runnable [9ffffffe99d00000..9ffffffe99d00d40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04de0d50> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LWCI_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000033f2170 nid=307 lwp_id=9390114 runnable [9ffffffe99f00000..9ffffffe99f00dc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0481c1a8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0481c190> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0481c030> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-142\" daemon prio=10 tid=60000000033ef950 nid=306 lwp_id=9390113 in Object.wait() [9ffffffe9a100000..9ffffffe9a100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04de5550> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04de5550> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-141\" daemon prio=10 tid=60000000033ed130 nid=305 lwp_id=9390112 in Object.wait() [9ffffffe9a300000..9ffffffe9a300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04dc4bf0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04dc4bf0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-140\" daemon prio=10 tid=60000000033e94f0 nid=304 lwp_id=9390111 in Object.wait() [9ffffffe9a500000..9ffffffe9a500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04e56118> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04e56118> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-139\" daemon prio=10 tid=60000000033e6cd0 nid=303 lwp_id=9390110 in Object.wait() [9ffffffe9a700000..9ffffffe9a700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04e5f040> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04e5f040> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LHRC_BTB _SIA_11-Acceptor\" daemon prio=10 tid=60000000033ded10 nid=302 lwp_id=9390109 runnable [9ffffffe9a900000..9ffffffe9a900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04e72548> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LHRC_BTB _SIA_11-Selector\" daemon prio=10 tid=60000000033dc4f0 nid=301 lwp_id=9390108 runnable [9ffffffe9ab00000..9ffffffe9ab00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048158a0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04815888> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04815728> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-138\" daemon prio=10 tid=60000000033d9cd0 nid=300 lwp_id=9390107 in Object.wait() [9ffffffe9ad00000..9ffffffe9ad00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04e72d28> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04e72d28> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-137\" daemon prio=10 tid=60000000033d2990 nid=299 lwp_id=9390106 in Object.wait() [9ffffffe9af00000..9ffffffe9af00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04e631b8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04e631b8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-APUB_X25SA_BTD_01\" daemon prio=10 tid=60000000033d0170 nid=298 lwp_id=9390105 in Object.wait() [9ffffffe9b100000..9ffffffe9b100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ea74e8> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener.run(AsyncOutboundGateway.java:125)\r\n\t- locked <9fffffff04ea74e8> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-135\" daemon prio=10 tid=60000000033cd950 nid=297 lwp_id=9390104 in Object.wait() [9ffffffe9b300000..9ffffffe9b300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ec0888> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04ec0888> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-134\" daemon prio=10 tid=60000000033c9d10 nid=296 lwp_id=9390103 in Object.wait() [9ffffffe9b500000..9ffffffe9b500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ec7020> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04ec7020> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISF_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000033c74f0 nid=295 lwp_id=9390102 runnable [9ffffffe9b700000..9ffffffe9b700bc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04ed8178> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISF_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000033c4cd0 nid=294 lwp_id=9390101 runnable [9ffffffe9b900000..9ffffffe9b900c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff047fa288> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff047fa270> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff047fa110> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-133\" daemon prio=10 tid=60000000033c0b90 nid=293 lwp_id=9390100 in Object.wait() [9ffffffe9bb00000..9ffffffe9bb00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ed86f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04ed86f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-AMZF_TMXSO_BTB_01\" daemon prio=10 tid=60000000033be370 nid=292 lwp_id=9390099 in Object.wait() [9ffffffe9bd00000..9ffffffe9bd00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ee57a8> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener.run(AsyncOutboundGateway.java:125)\r\n\t- locked <9fffffff04ee57a8> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-131\" daemon prio=10 tid=60000000033bbb50 nid=291 lwp_id=9390098 in Object.wait() [9ffffffe9bf00000..9ffffffe9bf00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ee2000> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04ee2000> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000033b9330 nid=290 lwp_id=9390097 runnable [9ffffffe9c100000..9ffffffe9c100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04f21290> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000033b56f0 nid=289 lwp_id=9390096 runnable [9ffffffe9c300000..9ffffffe9c300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0481ddb8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0481dda0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0481dc40> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-130\" daemon prio=10 tid=60000000033aaa30 nid=288 lwp_id=9390095 in Object.wait() [9ffffffe9c500000..9ffffffe9c500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04f21060> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04f21060> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-129\" daemon prio=10 tid=60000000033a8210 nid=287 lwp_id=9390094 in Object.wait() [9ffffffe9c700000..9ffffffe9c700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04fb2100> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04fb2100> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_13-Acceptor\" daemon prio=10 tid=60000000033a59f0 nid=286 lwp_id=9390093 runnable [9ffffffe9c900000..9ffffffe9c900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04fc4c38> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_13-Selector\" daemon prio=10 tid=60000000033a1db0 nid=285 lwp_id=9390092 runnable [9ffffffe9cb00000..9ffffffe9cb00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048337e8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048337d0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04833670> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-128\" daemon prio=10 tid=600000000339f590 nid=284 lwp_id=9390091 in Object.wait() [9ffffffe9cd00000..9ffffffe9cd00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04fc4a08> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04fc4a08> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_12-Acceptor\" daemon prio=10 tid=600000000339cd70 nid=283 lwp_id=9390090 runnable [9ffffffe9cf00000..9ffffffe9cf00dc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04ff0f00> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_12-Selector\" daemon prio=10 tid=600000000339a550 nid=282 lwp_id=9390089 runnable [9ffffffe9d100000..9ffffffe9d100a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04832cc8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04832cb0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04832b50> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-127\" daemon prio=10 tid=6000000003397d30 nid=281 lwp_id=9390088 in Object.wait() [9ffffffe9d300000..9ffffffe9d300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ff0cd0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04ff0cd0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-126\" daemon prio=10 tid=6000000003395510 nid=280 lwp_id=9390087 in Object.wait() [9ffffffe9d500000..9ffffffe9d500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ff1700> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04ff1700> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LDON_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000003392cf0 nid=279 lwp_id=9390086 runnable [9ffffffe9d700000..9ffffffe9d700bc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05001b08> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LDON_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000033904d0 nid=278 lwp_id=9390085 runnable [9ffffffe9d900000..9ffffffe9d900c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04822a90> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04822a78> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04822918> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-125\" daemon prio=10 tid=600000000338c390 nid=277 lwp_id=9390084 in Object.wait() [9ffffffe9db00000..9ffffffe9db00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05002088> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05002088> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-124\" daemon prio=10 tid=6000000003389b70 nid=276 lwp_id=9390083 in Object.wait() [9ffffffe9dd00000..9ffffffe9dd00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05014d48> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05014d48> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LGHN_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000003384770 nid=275 lwp_id=9390082 runnable [9ffffffe9df00000..9ffffffe9df00dc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff050056c0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LGHN_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000003381f50 nid=274 lwp_id=9390081 runnable [9ffffffe9e100000..9ffffffe9e100a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0482bca8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0482bc90> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0482bb30> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-123\" daemon prio=10 tid=600000000337f730 nid=273 lwp_id=9390080 in Object.wait() [9ffffffe9e300000..9ffffffe9e300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff050059b0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff050059b0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-122\" daemon prio=10 tid=600000000337baf0 nid=272 lwp_id=9390079 in Object.wait() [9ffffffe9e500000..9ffffffe9e500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff050ae9d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff050ae9d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_14-Acceptor\" daemon prio=10 tid=60000000033792d0 nid=271 lwp_id=9390078 runnable [9ffffffe9e700000..9ffffffe9e700bc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff050b8250> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_14-Selector\" daemon prio=10 tid=6000000003376ab0 nid=270 lwp_id=9390077 runnable [9ffffffe9e900000..9ffffffe9e900c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0482b068> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0482b050> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0482aef0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-121\" daemon prio=10 tid=6000000003374290 nid=269 lwp_id=9390076 in Object.wait() [9ffffffe9eb00000..9ffffffe9eb00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff050b6008> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff050b6008> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-ACJH_SOPSI_BAN_01\" daemon prio=10 tid=6000000003371a70 nid=268 lwp_id=9390075 in Object.wait() [9ffffffe9ed00000..9ffffffe9ed00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04e9a358> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff04e9a358> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-119\" daemon prio=10 tid=600000000331a3a0 nid=267 lwp_id=9390074 in Object.wait() [9ffffffe9ef00000..9ffffffe9ef00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff050b8cf8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff050b8cf8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LPRI_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000003317b80 nid=266 lwp_id=9390073 runnable [9ffffffe9f100000..9ffffffe9f100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff050bff18> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LPRI_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000003315360 nid=265 lwp_id=9390072 runnable [9ffffffe9f300000..9ffffffe9f300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04823680> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04823668> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04823508> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-118\" daemon prio=10 tid=600000000330da40 nid=264 lwp_id=9390071 in Object.wait() [9ffffffe9f500000..9ffffffe9f500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff050bfce8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff050bfce8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-117\" daemon prio=10 tid=60000000032e0cc0 nid=263 lwp_id=9390070 in Object.wait() [9ffffffe9f700000..9ffffffe9f700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff050f49d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff050f49d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBHN_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000032de4a0 nid=262 lwp_id=9390069 runnable [9ffffffe9f900000..9ffffffe9f900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff051428b0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBHN_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000032dbc80 nid=261 lwp_id=9390068 runnable [9ffffffe9fb00000..9ffffffe9fb00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0482a458> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0482a440> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0482a2e0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-116\" daemon prio=10 tid=60000000032610e0 nid=260 lwp_id=9390067 in Object.wait() [9ffffffe9fd00000..9ffffffe9fd00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05142e30> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05142e30> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-115\" daemon prio=10 tid=60000000031e5ea0 nid=259 lwp_id=9390066 in Object.wait() [9ffffffe9ff00000..9ffffffe9ff00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff051431c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff051431c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBLS_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000031e3680 nid=258 lwp_id=9390065 runnable [9ffffffea0100000..9ffffffea0100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff051561f0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBLS_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000031e0e60 nid=257 lwp_id=9390064 runnable [9ffffffea0300000..9ffffffea0300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0483a4f0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0483a4d8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0483a378> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-114\" daemon prio=10 tid=60000000031de640 nid=256 lwp_id=9390063 in Object.wait() [9ffffffea0500000..9ffffffea0500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0515a9e8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0515a9e8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-113\" daemon prio=10 tid=60000000031dbe20 nid=255 lwp_id=9390062 in Object.wait() [9ffffffea0700000..9ffffffea0700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0514ede0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0514ede0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LCGI_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000031d63e0 nid=254 lwp_id=9390061 runnable [9ffffffea0900000..9ffffffea0900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05170628> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LCGI_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000031d3bc0 nid=253 lwp_id=9390060 runnable [9ffffffea0b00000..9ffffffea0b00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0487de40> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0487de28> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0487dcc8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-112\" daemon prio=10 tid=60000000031d13a0 nid=252 lwp_id=9390059 in Object.wait() [9ffffffea0d00000..9ffffffea0d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff051703f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff051703f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-AHNB_SOPSI_BAN_01\" daemon prio=10 tid=60000000031ceb80 nid=251 lwp_id=9390058 in Object.wait() [9ffffffea0f00000..9ffffffea0f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ea51f0> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff04ea51f0> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-110\" daemon prio=10 tid=60000000001f7060 nid=250 lwp_id=9390057 in Object.wait() [9ffffffea1100000..9ffffffea1100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04854ea0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04854ea0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIC_BTB_SOA_11-Selector\" daemon prio=10 tid=60000000031c5930 nid=249 lwp_id=9390056 runnable [9ffffffea1300000..9ffffffea1300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048541f8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048541e0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04854080> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-109\" daemon prio=10 tid=60000000031c3110 nid=248 lwp_id=9390055 in Object.wait() [9ffffffea1500000..9ffffffea1500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04865898> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04865898> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-108\" daemon prio=10 tid=60000000031c08f0 nid=247 lwp_id=9390054 in Object.wait() [9ffffffea1700000..9ffffffea1700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff051ec8d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff051ec8d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LTNG_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000031be0d0 nid=246 lwp_id=9390053 runnable [9ffffffea1900000..9ffffffea1900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff051fd880> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LTNG_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000031bb8b0 nid=245 lwp_id=9390052 runnable [9ffffffea1b00000..9ffffffea1b00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0483b0b8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0483b0a0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0483af40> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-107\" daemon prio=10 tid=60000000031b9090 nid=244 lwp_id=9390051 in Object.wait() [9ffffffea1d00000..9ffffffea1d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff051fde00> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff051fde00> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-AFNB_EBXSI_BAN_01\" daemon prio=10 tid=60000000031b4f50 nid=243 lwp_id=9390050 in Object.wait() [9ffffffea1f00000..9ffffffea1f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0426c048> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff0426c048> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-105\" daemon prio=10 tid=60000000031b1310 nid=242 lwp_id=9390049 in Object.wait() [9ffffffea2100000..9ffffffea2100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05203830> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05203830> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNCE_BTD_SIA_14-Acceptor\" daemon prio=10 tid=60000000031aeaf0 nid=241 lwp_id=9390048 runnable [9ffffffea2300000..9ffffffea2300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff052231b0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNCE_BTD_SIA_14-Selector\" daemon prio=10 tid=60000000031ac2d0 nid=240 lwp_id=9390047 runnable [9ffffffea2500000..9ffffffea2500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04845580> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04845568> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04845408> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-104\" daemon prio=10 tid=60000000031a9ab0 nid=239 lwp_id=9390046 in Object.wait() [9ffffffea2700000..9ffffffea2700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05222f80> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05222f80> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-103\" daemon prio=10 tid=60000000031a7290 nid=238 lwp_id=9390045 in Object.wait() [9ffffffea2900000..9ffffffea2900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff052366b8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff052366b8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LICC_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000031a4a70 nid=237 lwp_id=9390044 runnable [9ffffffea2b00000..9ffffffea2b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05245918> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LICC_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000031a2250 nid=236 lwp_id=9390043 runnable [9ffffffea2d00000..9ffffffea2d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0483bb98> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0483bb80> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0483ba20> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-102\" daemon prio=10 tid=600000000319fa30 nid=235 lwp_id=9390042 in Object.wait() [9ffffffea2f00000..9ffffffea2f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff052456e8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff052456e8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-101\" daemon prio=10 tid=600000000319d210 nid=234 lwp_id=9390041 in Object.wait() [9ffffffea3100000..9ffffffea3100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff052a49f8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff052a49f8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LPAX_BTB_SIA_11-Acceptor\" daemon prio=10 tid=600000000319a9f0 nid=233 lwp_id=9390040 runnable [9ffffffea3300000..9ffffffea3300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff052b99c8> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LPAX_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000003192290 nid=232 lwp_id=9390039 runnable [9ffffffea3500000..9ffffffea3500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04844988> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04844970> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04844810> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-100\" daemon prio=10 tid=600000000318fa70 nid=231 lwp_id=9390038 in Object.wait() [9ffffffea3700000..9ffffffea3700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff052ba1a8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff052ba1a8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-99\" daemon prio=10 tid=600000000318d250 nid=230 lwp_id=9390037 in Object.wait() [9ffffffea3900000..9ffffffea3900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff052d1088> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff052d1088> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LJBB_BAN_SIA_11-Acceptor\" daemon prio=10 tid=600000000318aa30 nid=229 lwp_id=9390036 runnable [9ffffffea3b00000..9ffffffea3b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff052f48d0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LJBB_BAN_SIA_11-Selector\" daemon prio=10 tid=6000000003188210 nid=228 lwp_id=9390035 runnable [9ffffffea3d00000..9ffffffea3d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04887ac0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04887aa8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04887948> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-98\" daemon prio=10 tid=60000000031840d0 nid=227 lwp_id=9390034 in Object.wait() [9ffffffea3f00000..9ffffffea3f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff052f46a0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff052f46a0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-97\" daemon prio=10 tid=60000000031818b0 nid=226 lwp_id=9390033 in Object.wait() [9ffffffea4100000..9ffffffea4100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0535a8d8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0535a8d8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIC_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000002d39960 nid=225 lwp_id=9390032 runnable [9ffffffea4300000..9ffffffea4300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05365928> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIC_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000002d35d20 nid=224 lwp_id=9390031 runnable [9ffffffea4500000..9ffffffea4500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048aafe8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048aafd0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048aae70> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-96\" daemon prio=10 tid=6000000002d33500 nid=223 lwp_id=9390030 in Object.wait() [9ffffffea4700000..9ffffffea4700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05366108> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05366108> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-95\" daemon prio=10 tid=6000000002d30ce0 nid=222 lwp_id=9390029 in Object.wait() [9ffffffea4900000..9ffffffea4900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05382640> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05382640> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBKS_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000002d2e4c0 nid=221 lwp_id=9390028 runnable [9ffffffea4b00000..9ffffffea4b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05391fc8> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBKS_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000002d28a80 nid=220 lwp_id=9390027 runnable [9ffffffea4d00000..9ffffffea4d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048aa4c8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048aa4b0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048aa350> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-94\" daemon prio=10 tid=6000000002d17be0 nid=219 lwp_id=9390026 in Object.wait() [9ffffffea4f00000..9ffffffea4f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0539a890> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0539a890> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-93\" daemon prio=10 tid=6000000002d153c0 nid=218 lwp_id=9390025 in Object.wait() [9ffffffea5100000..9ffffffea5100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05438488> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05438488> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-92\" daemon prio=10 tid=6000000002d12ba0 nid=217 lwp_id=9390024 in Object.wait() [9ffffffea5300000..9ffffffea5300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05443210> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05443210> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-91\" daemon prio=10 tid=6000000002d0ef60 nid=216 lwp_id=9390023 in Object.wait() [9ffffffea5500000..9ffffffea5500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff054eb6b0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff054eb6b0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-90\" daemon prio=10 tid=6000000002d0c740 nid=215 lwp_id=9390022 in Object.wait() [9ffffffea5700000..9ffffffea5700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05500b58> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05500b58> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-89\" daemon prio=10 tid=6000000002d09f20 nid=214 lwp_id=9390021 in Object.wait() [9ffffffea5900000..9ffffffea5900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0550bf48> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0550bf48> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISL_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000002d07700 nid=213 lwp_id=9390020 runnable [9ffffffea5b00000..9ffffffea5b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05519e68> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISL_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000002d04ee0 nid=212 lwp_id=9390019 runnable [9ffffffea5d00000..9ffffffea5d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048906c8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048906b0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04890550> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-88\" daemon prio=10 tid=6000000002d026c0 nid=211 lwp_id=9390018 in Object.wait() [9ffffffea5f00000..9ffffffea5f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff055246f0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff055246f0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-87\" daemon prio=10 tid=6000000002cd3e10 nid=210 lwp_id=9390017 in Object.wait() [9ffffffea6100000..9ffffffea6100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff055aef30> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff055aef30> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKEB_BAN_SIA_11-Acceptor\" daemon prio=10 tid=6000000002ccf690 nid=209 lwp_id=9390016 runnable [9ffffffea6300000..9ffffffea6300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff055c44a0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKEB_BAN_SIA_11-Selector\" daemon prio=10 tid=6000000002ccba50 nid=208 lwp_id=9390015 runnable [9ffffffea6500000..9ffffffea6500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0489d8a8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0489d890> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0489d730> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-86\" daemon prio=10 tid=6000000002cc9230 nid=207 lwp_id=9390014 in Object.wait() [9ffffffea6700000..9ffffffea6700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff055c4270> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff055c4270> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-85\" daemon prio=10 tid=6000000002cc6a10 nid=206 lwp_id=9390013 in Object.wait() [9ffffffea6900000..9ffffffea6900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff055e2740> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff055e2740> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-84\" daemon prio=10 tid=6000000002cc41f0 nid=205 lwp_id=9390012 in Object.wait() [9ffffffea6b00000..9ffffffea6b00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff055ef590> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff055ef590> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-83\" daemon prio=10 tid=6000000002cc19d0 nid=204 lwp_id=9390011 in Object.wait() [9ffffffea6d00000..9ffffffea6d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056013f8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff056013f8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSNS_BTD_AIA_02-Acceptor\" daemon prio=10 tid=6000000001bd6660 nid=203 lwp_id=9390010 runnable [9ffffffea6f00000..9ffffffea6f00dc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff056132a8> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSNS_BTD_AIA_02-Selector\" daemon prio=10 tid=6000000001bce6a0 nid=202 lwp_id=9390009 runnable [9ffffffea7100000..9ffffffea7100a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0489cd08> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0489ccf0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0489cb90> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-82\" daemon prio=10 tid=6000000001bcaa60 nid=201 lwp_id=9390008 in Object.wait() [9ffffffea7300000..9ffffffea7300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05613078> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05613078> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSNS_BTD_AIA_01-Acceptor\" daemon prio=10 tid=6000000001bc8240 nid=200 lwp_id=9390007 runnable [9ffffffea7500000..9ffffffea7500b40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05614150> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSNS_BTD_AIA_01-Selector\" daemon prio=10 tid=6000000001bad4d0 nid=199 lwp_id=9390006 runnable [9ffffffea7700000..9ffffffea7700bc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04891290> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04891278> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04891118> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-81\" daemon prio=10 tid=6000000001baacb0 nid=198 lwp_id=9390005 in Object.wait() [9ffffffea7900000..9ffffffea7900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05613f20> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05613f20> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-80\" daemon prio=10 tid=6000000001ba8490 nid=197 lwp_id=9390004 in Object.wait() [9ffffffea7b00000..9ffffffea7b00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0562b7f0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0562b7f0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-79\" daemon prio=10 tid=6000000001ba5c70 nid=196 lwp_id=9390003 in Object.wait() [9ffffffea7d00000..9ffffffea7d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056426a0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff056426a0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-78\" daemon prio=10 tid=6000000001ba2030 nid=195 lwp_id=9390002 in Object.wait() [9ffffffea7f00000..9ffffffea7f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056588c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff056588c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LTGB_BAN_SIA_11-Acceptor\" daemon prio=10 tid=6000000001b9def0 nid=194 lwp_id=9390001 runnable [9ffffffea8100000..9ffffffea8100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff0566eca0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LTGB_BAN_SIA_11-Selector\" daemon prio=10 tid=6000000001b9b6d0 nid=193 lwp_id=9390000 runnable [9ffffffea8300000..9ffffffea8300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0489c058> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0489c040> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04891eb8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-77\" daemon prio=10 tid=6000000001b98eb0 nid=192 lwp_id=9389999 in Object.wait() [9ffffffea8500000..9ffffffea8500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0566ea70> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0566ea70> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-76\" daemon prio=10 tid=6000000001b96690 nid=191 lwp_id=9389998 in Object.wait() [9ffffffea8700000..9ffffffea8700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05670008> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05670008> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIM_BAN_SIA_11-Acceptor\" daemon prio=10 tid=6000000001b93e70 nid=190 lwp_id=9389997 runnable [9ffffffea8900000..9ffffffea8900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05685090> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIM_BAN_SIA_11-Selector\" daemon prio=10 tid=6000000001b90230 nid=189 lwp_id=9389996 runnable [9ffffffea8b00000..9ffffffea8b00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048abcc8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048abcb0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048abb50> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-75\" daemon prio=10 tid=6000000001b8da10 nid=188 lwp_id=9389995 in Object.wait() [9ffffffea8d00000..9ffffffea8d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05685870> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05685870> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-74\" daemon prio=10 tid=6000000001b86bb0 nid=187 lwp_id=9389994 in Object.wait() [9ffffffea8f00000..9ffffffea8f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0568c918> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0568c918> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-73\" daemon prio=10 tid=6000000001b82f70 nid=186 lwp_id=9389993 in Object.wait() [9ffffffea9100000..9ffffffea9100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056937f0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff056937f0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISN_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000001533340 nid=185 lwp_id=9389992 runnable [9ffffffea9300000..9ffffffea9300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff0567ee88> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISN_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000015318a0 nid=184 lwp_id=9389991 runnable [9ffffffea9500000..9ffffffea9500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048d52f0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048d52d8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048d5178> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-72\" daemon prio=10 tid=600000000152f080 nid=183 lwp_id=9389990 in Object.wait() [9ffffffea9700000..9ffffffea9700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0567f178> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0567f178> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-71\" daemon prio=10 tid=600000000152c860 nid=182 lwp_id=9389989 in Object.wait() [9ffffffea9900000..9ffffffea9900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056a1438> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff056a1438> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKIE_BTB_SIA_11-Acceptor\" daemon prio=10 tid=600000000152a040 nid=181 lwp_id=9389988 runnable [9ffffffea9b00000..9ffffffea9b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff056b8508> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKIE_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000001527820 nid=180 lwp_id=9389987 runnable [9ffffffea9d00000..9ffffffea9d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048d47d0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048d47b8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048d4658> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-70\" daemon prio=10 tid=6000000001525000 nid=179 lwp_id=9389986 in Object.wait() [9ffffffea9f00000..9ffffffea9f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056b8ce8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff056b8ce8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-69\" daemon prio=10 tid=6000000001520ec0 nid=178 lwp_id=9389985 in Object.wait() [9ffffffeaa100000..9ffffffeaa100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056ba188> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff056ba188> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIM_TCPSI_BTD_02-Acceptor\" daemon prio=10 tid=600000000151e6a0 nid=177 lwp_id=9389984 runnable [9ffffffeaa300000..9ffffffeaa300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff056d1318> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIM_TCPSI_BTD_02-Selector\" daemon prio=10 tid=600000000151cec0 nid=176 lwp_id=9389983 runnable [9ffffffeaa500000..9ffffffeaa500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048b8ac8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048b8ab0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048b8950> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-68\" daemon prio=10 tid=600000000151a6a0 nid=175 lwp_id=9389982 in Object.wait() [9ffffffeaa700000..9ffffffeaa700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056d1b08> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff056d1b08> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-67\" daemon prio=10 tid=6000000001517e80 nid=174 lwp_id=9389981 in Object.wait() [9ffffffeaa900000..9ffffffeaa900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056e0cd8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff056e0cd8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LPRS_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000001515660 nid=173 lwp_id=9389980 runnable [9ffffffeaab00000..9ffffffeaab00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff056e9cf8> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LPRS_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000001512e40 nid=172 lwp_id=9389979 runnable [9ffffffeaad00000..9ffffffeaad00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048c7b68> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048c7b50> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048c79f0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-66\" daemon prio=10 tid=6000000001510620 nid=171 lwp_id=9389978 in Object.wait() [9ffffffeaaf00000..9ffffffeaaf00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056f84f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff056f84f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-65\" daemon prio=10 tid=600000000150de00 nid=170 lwp_id=9389977 in Object.wait() [9ffffffeab100000..9ffffffeab100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05718a78> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05718a78> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIM_TCPSI_BTD_01-Acceptor\" daemon prio=10 tid=600000000150b5e0 nid=169 lwp_id=9389976 runnable [9ffffffeab300000..9ffffffeab300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05742300> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIM_TCPSI_BTD_01-Selector\" daemon prio=10 tid=6000000001508dc0 nid=168 lwp_id=9389975 runnable [9ffffffeab500000..9ffffffeab500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048c7048> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048c7030> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048c6ed0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-64\" daemon prio=10 tid=60000000012193c0 nid=167 lwp_id=9389974 in Object.wait() [9ffffffeab700000..9ffffffeab700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0573a0b8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0573a0b8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-63\" daemon prio=10 tid=60000000011143e0 nid=166 lwp_id=9389973 in Object.wait() [9ffffffeab900000..9ffffffeab900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05742c68> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05742c68> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-62\" daemon prio=10 tid=6000000001111bc0 nid=165 lwp_id=9389972 in Object.wait() [9ffffffeabb00000..9ffffffeabb00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0575cd18> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0575cd18> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKB__BAN_SIA_01-Acceptor\" daemon prio=10 tid=6000000001103fc0 nid=164 lwp_id=9389971 runnable [9ffffffeabd00000..9ffffffeabd00d40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff0576a300> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKB__BAN_SIA_01-Selector\" daemon prio=10 tid=60000000011017a0 nid=163 lwp_id=9389970 runnable [9ffffffeabf00000..9ffffffeabf00dc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048b9698> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048b9680> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048b9520> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-61\" daemon prio=10 tid=60000000010fef80 nid=162 lwp_id=9389969 in Object.wait() [9ffffffeac100000..9ffffffeac100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05766030> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05766030> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-AWRB_SOPSI_BAN_01\" daemon prio=10 tid=60000000010fae40 nid=161 lwp_id=9389968 in Object.wait() [9ffffffeac300000..9ffffffeac300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff045d6a88> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff045d6a88> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-59\" daemon prio=10 tid=60000000010f7200 nid=160 lwp_id=9389967 in Object.wait() [9ffffffeac500000..9ffffffeac500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0576a530> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0576a530> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-AMZF_TMXSI_PUB_00\" daemon prio=10 tid=60000000010f2a80 nid=159 lwp_id=9389966 in Object.wait() [9ffffffeac700000..9ffffffeac700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff049f4148> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff049f4148> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-57\" daemon prio=10 tid=60000000010f0260 nid=158 lwp_id=9389965 in Object.wait() [9ffffffeac900000..9ffffffeac900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05777720> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05777720> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LINV_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000000f114f0 nid=157 lwp_id=9389964 runnable [9ffffffeacb00000..9ffffffeacb00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05790f58> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LINV_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000000f0ecd0 nid=156 lwp_id=9389963 runnable [9ffffffeacd00000..9ffffffeacd00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048c6450> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048c6438> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048c62d8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-56\" daemon prio=10 tid=6000000000f0c4b0 nid=155 lwp_id=9389962 in Object.wait() [9ffffffeacf00000..9ffffffeacf00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05790d28> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05790d28> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-55\" daemon prio=10 tid=6000000000ad4350 nid=154 lwp_id=9389961 in Object.wait() [9ffffffead100000..9ffffffead100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05784088> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05784088> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-54\" daemon prio=10 tid=6000000000ad1b30 nid=153 lwp_id=9389960 in Object.wait() [9ffffffead300000..9ffffffead300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff057a9668> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff057a9668> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LAMC_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000000acdef0 nid=152 lwp_id=9389959 runnable [9ffffffead500000..9ffffffead500b40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff057c4c00> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LAMC_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000000acb6d0 nid=151 lwp_id=9389958 runnable [9ffffffead700000..9ffffffead700bc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048e2030> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048e2018> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048d5e58> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-53\" daemon prio=10 tid=6000000000ac8eb0 nid=150 lwp_id=9389957 in Object.wait() [9ffffffead900000..9ffffffead900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff057c53e0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff057c53e0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-ABSB_SOPSI_BAN_01\" daemon prio=10 tid=6000000000ac6690 nid=149 lwp_id=9389956 in Object.wait() [9ffffffeadb00000..9ffffffeadb00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04292d08> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff04292d08> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-51\" daemon prio=10 tid=6000000000ac3e70 nid=148 lwp_id=9389955 in Object.wait() [9ffffffeadd00000..9ffffffeadd00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05815d18> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05815d18> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKGA_BTB_SIA_11 -Acceptor\" daemon prio=10 tid=6000000000ac0230 nid=147 lwp_id=9389954 runnable [9ffffffeadf00000..9ffffffeadf00dc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff058394f0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKGA_BTB_SIA_11 -Selector\" daemon prio=10 tid=6000000000abda10 nid=146 lwp_id=9389953 runnable [9ffffffeae100000..9ffffffeae100a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048fd610> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048fd5f8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048fd498> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-50\" daemon prio=10 tid=6000000000ab98d0 nid=145 lwp_id=9389952 in Object.wait() [9ffffffeae300000..9ffffffeae300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058392c0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff058392c0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-49\" daemon prio=10 tid=6000000000ab70b0 nid=144 lwp_id=9389951 in Object.wait() [9ffffffeae500000..9ffffffeae500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05864808> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05864808> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-48\" daemon prio=10 tid=6000000000ab4890 nid=143 lwp_id=9389950 in Object.wait() [9ffffffeae700000..9ffffffeae700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05873750> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05873750> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LIMT_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000000ab2070 nid=142 lwp_id=9389949 runnable [9ffffffeae900000..9ffffffeae900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05886c80> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LIMT_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000000aa60d0 nid=141 lwp_id=9389948 runnable [9ffffffeaeb00000..9ffffffeaeb00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048fcaf0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048fcad8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048fc978> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-47\" daemon prio=10 tid=6000000000aa38b0 nid=140 lwp_id=9389947 in Object.wait() [9ffffffeaed00000..9ffffffeaed00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05887460> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05887460> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-46\" daemon prio=10 tid=6000000000aa1090 nid=139 lwp_id=9389946 in Object.wait() [9ffffffeaef00000..9ffffffeaef00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058880b0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff058880b0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKNI_BTD_SIA_11-Acceptor\" daemon prio=10 tid=600000000056c720 nid=138 lwp_id=9389945 runnable [9ffffffeaf100000..9ffffffeaf100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff058a06c0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKNI_BTD_SIA_11-Selector\" daemon prio=10 tid=6000000000545500 nid=137 lwp_id=9389944 runnable [9ffffffeaf300000..9ffffffeaf300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048e2c00> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048e2be8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048e2a88> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-45\" daemon prio=10 tid=6000000000542ce0 nid=136 lwp_id=9389943 in Object.wait() [9ffffffeaf500000..9ffffffeaf500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058a0490> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff058a0490> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKNI_BTD_SIA_12-Acceptor\" daemon prio=10 tid=60000000005404c0 nid=135 lwp_id=9389942 runnable [9ffffffeaf700000..9ffffffeaf700bc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05891590> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKNI_BTD_SIA_12-Selector\" daemon prio=10 tid=600000000053dca0 nid=134 lwp_id=9389941 runnable [9ffffffeaf900000..9ffffffeaf900c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048efdf8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048efde0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048efc80> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-44\" daemon prio=10 tid=600000000053b480 nid=133 lwp_id=9389940 in Object.wait() [9ffffffeafb00000..9ffffffeafb00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05891360> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05891360> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-43\" daemon prio=10 tid=6000000000534140 nid=132 lwp_id=9389939 in Object.wait() [9ffffffeafd00000..9ffffffeafd00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058be5d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff058be5d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-42\" daemon prio=10 tid=6000000000530500 nid=131 lwp_id=9389938 in Object.wait() [9ffffffeaff00000..9ffffffeaff00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058bb6c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff058bb6c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISI_BTB_SIA_11-Acceptor\" daemon prio=10 tid=600000000052dce0 nid=130 lwp_id=9389937 runnable [9ffffffeb0100000..9ffffffeb0100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff058c7e88> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISI_BTB_SIA_11-Selector\" daemon prio=10 tid=600000000052b4c0 nid=129 lwp_id=9389936 runnable [9ffffffeb0300000..9ffffffeb0300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048ef2d8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048ef2c0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048ef160> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-41\" daemon prio=10 tid=6000000000528ca0 nid=128 lwp_id=9389935 in Object.wait() [9ffffffeb0500000..9ffffffeb0500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058d09a0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff058d09a0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-ASCB_SOPSI_BAN_01\" daemon prio=10 tid=6000000000526480 nid=127 lwp_id=9389934 in Object.wait() [9ffffffeb0700000..9ffffffeb0700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04282a90> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff04282a90> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-39\" daemon prio=10 tid=6000000000523c60 nid=126 lwp_id=9389933 in Object.wait() [9ffffffeb0900000..9ffffffeb0900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058d86c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff058d86c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNHB_BTD_SIA_02-Acceptor\" daemon prio=10 tid=6000000000520020 nid=125 lwp_id=9389932 runnable [9ffffffeb0b00000..9ffffffeb0b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff058d0bd8> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNHB_BTD_SIA_02-Selector\" daemon prio=10 tid=60000000002d5e50 nid=124 lwp_id=9389931 runnable [9ffffffeb0d00000..9ffffffeb0d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048e3880> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048e3868> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048e3708> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-38\" daemon prio=10 tid=60000000002d3630 nid=123 lwp_id=9389930 in Object.wait() [9ffffffeb0f00000..9ffffffeb0f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058d0e90> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff058d0e90> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNHB_BTD_SIA_01-Acceptor\" daemon prio=10 tid=60000000002d0e10 nid=122 lwp_id=9389929 runnable [9ffffffeb1100000..9ffffffeb1100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff058d18a8> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNHB_BTD_SIA_01-Selector\" daemon prio=10 tid=60000000002ce5f0 nid=121 lwp_id=9389928 runnable [9ffffffeb1300000..9ffffffeb1300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048ee678> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048ee660> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048ee500> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-37\" daemon prio=10 tid=60000000002c8bb0 nid=120 lwp_id=9389927 in Object.wait() [9ffffffeb1500000..9ffffffeb1500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058e1940> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff058e1940> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-36\" daemon prio=10 tid=60000000002c6390 nid=119 lwp_id=9389926 in Object.wait() [9ffffffeb1700000..9ffffffeb1700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ead20> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff058ead20> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKIB_BTD_SIA_11-Acceptor\" daemon prio=10 tid=60000000002c3b70 nid=118 lwp_id=9389925 runnable [9ffffffeb1900000..9ffffffeb1900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff058d1be0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKIB_BTD_SIA_11-Selector\" daemon prio=10 tid=6000000000248d50 nid=117 lwp_id=9389924 runnable [9ffffffeb1b00000..9ffffffeb1b00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04904370> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04904358> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff049041f8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-35\" daemon prio=10 tid=6000000000243ff0 nid=116 lwp_id=9389923 in Object.wait() [9ffffffeb1d00000..9ffffffeb1d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058d1e98> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff058d1e98> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-34\" daemon prio=10 tid=60000000002417d0 nid=115 lwp_id=9389922 in Object.wait() [9ffffffeb1f00000..9ffffffeb1f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058f0358> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff058f0358> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBNS_BTB_SIA_11-Acceptor\" daemon prio=10 tid=600000000023efb0 nid=114 lwp_id=9389921 runnable [9ffffffeb2100000..9ffffffeb2100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff058f8db0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBNS_BTB_SIA_11-Selector\" daemon prio=10 tid=600000000023a080 nid=113 lwp_id=9389920 runnable [9ffffffeb2300000..9ffffffeb2300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff049b4658> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff049b4640> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff049b44e0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-33\" daemon prio=10 tid=60000000001faec0 nid=112 lwp_id=9389919 in Object.wait() [9ffffffeb2500000..9ffffffeb2500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058f9330> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff058f9330> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-32\" daemon prio=10 tid=60000000001f6d00 nid=111 lwp_id=9389918 in Object.wait() [9ffffffeb2700000..9ffffffeb2700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03dc71a0> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.management.remote.generic.ClientSynchroMessageNonblockingConnectionImpl.sendWithReturn(ClientSynchroMessageNonblockingConnectionImpl.java:224)\r\n\t- locked <9fffffff03dc71a0> (a [I)\r\n\tat javax.management.remote.generic.ClientIntermediary$GenericClientNotifForwarder.fetchNotifs(ClientIntermediary.java:864)\r\n\tat com.sun.jmx.remote.opt.internal.ClientNotifForwarder$NotifFetcher.fetchNotifs(ClientNotifForwarder.java:420)\r\n\tat com.sun.jmx.remote.opt.internal.ClientNotifForwarder$NotifFetcher.run(ClientNotifForwarder.java:318)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-31\" daemon prio=10 tid=60000000001f60a0 nid=110 lwp_id=9389917 waiting on condition [9ffffffeb6700000..9ffffffeb6700c40]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.sun.jmx.remote.opt.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:154)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AMZF_TMXSO_BTB_01_TmaxManager-Selector\" daemon prio=10 tid=6000000003cd2250 nid=109 lwp_id=9389907 runnable [9ffffffeb2900000..9ffffffeb2900cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff049a7bf8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff049a7be0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff049a7a80> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-30\" daemon prio=10 tid=6000000003ccfa30 nid=108 lwp_id=9389906 in Object.wait() [9ffffffeb2b00000..9ffffffeb2b00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff049a8e98> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:347)\r\n\t- locked <9fffffff049a8e98> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-29\" daemon prio=10 tid=6000000003ccca70 nid=106 lwp_id=9389904 in Object.wait() [9ffffffeb2f00000..9ffffffeb2f00a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff049a8fe8> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager.run(WebtEndpointImpl.java:343)\r\n\t- locked <9fffffff049a8fe8> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AMZF_TMXSO_BTD_01_TmaxManager-Selector\" daemon prio=10 tid=6000000003cca250 nid=105 lwp_id=9389903 runnable [9ffffffeb3100000..9ffffffeb3100ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04904f70> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04904f58> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04904df8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-28\" daemon prio=10 tid=6000000003cc6110 nid=104 lwp_id=9389902 in Object.wait() [9ffffffeb3300000..9ffffffeb3300b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0496b8e8> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:347)\r\n\t- locked <9fffffff0496b8e8> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-27\" daemon prio=10 tid=6000000003c9e2b0 nid=102 lwp_id=9389900 in Object.wait() [9ffffffeb3700000..9ffffffeb3700c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0496ba38> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager.run(WebtEndpointImpl.java:347)\r\n\t- locked <9fffffff0496ba38> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"TmaxInboundNJGGateway_AMZF_TMXSI_PUB_00-Acceptor\" daemon prio=10 tid=6000000003ca9b70 nid=101 lwp_id=9389899 runnable [9ffffffeb3900000..9ffffffeb3900cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04915318> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"TmaxInboundNJGGateway_AMZF_TMXSI_PUB_00-Selector\" daemon prio=10 tid=6000000003ca7350 nid=100 lwp_id=9389898 runnable [9ffffffeb3b00000..9ffffffeb3b00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff049059f8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff049059e0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04905650> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-26\" daemon prio=10 tid=6000000003ca4b30 nid=99 lwp_id=9389897 in Object.wait() [9ffffffeb3d00000..9ffffffeb3d00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04913a98> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:347)\r\n\t- locked <9fffffff04913a98> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"TmaxInboundNJGGateway_AMZF_TMXSI_PUB_00_ThreadPool-0\" daemon prio=10 tid=60000000001f4480 nid=98 lwp_id=9389896 in Object.wait() [9ffffffeb3f00000..9ffffffeb3f00a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04913b68> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff04913b68> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AMZF_TMXSO_BAN_01_TmaxManager-Selector\" daemon prio=10 tid=6000000003c95780 nid=97 lwp_id=9389895 runnable [9ffffffeb4100000..9ffffffeb4100ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0498e2e0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0498e2c8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0498e168> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-25\" daemon prio=10 tid=6000000003c92f60 nid=96 lwp_id=9389894 in Object.wait() [9ffffffeb4300000..9ffffffeb4300b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff049975a0> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:347)\r\n\t- locked <9fffffff049975a0> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-24\" daemon prio=10 tid=60000000001f3890 nid=94 lwp_id=9389892 in Object.wait() [9ffffffeb4700000..9ffffffeb4700c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff049976f0> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager.run(WebtEndpointImpl.java:347)\r\n\t- locked <9fffffff049976f0> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"APUB_X25SA_BTD_01_TmaxManager-Selector\" daemon prio=10 tid=6000000003bff620 nid=93 lwp_id=9389891 runnable [9ffffffeb4900000..9ffffffeb4900cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0496cf98> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0496cf80> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0496ce20> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-23\" daemon prio=10 tid=6000000003bf9f00 nid=92 lwp_id=9389890 in Object.wait() [9ffffffeb4b00000..9ffffffeb4b00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04981dc8> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:347)\r\n\t- locked <9fffffff04981dc8> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"APUB_X25SA_BTD_01_TmaxManager_ThreadPool-2\" daemon prio=10 tid=6000000003bbeb40 nid=91 lwp_id=9389889 in Object.wait() [9ffffffeb4d00000..9ffffffeb4d00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04982148> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff04982148> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"APUB_X25SA_BTD_01_TmaxManager_ThreadPool-1\" daemon prio=10 tid=60000000036c7b00 nid=90 lwp_id=9389888 in Object.wait() [9ffffffeb4f00000..9ffffffeb4f00a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04982148> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff04982148> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"APUB_X25SA_BTD_01_TmaxManager_ThreadPool-0\" daemon prio=10 tid=6000000003344220 nid=89 lwp_id=9389887 in Object.wait() [9ffffffeb5100000..9ffffffeb5100ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04982148> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff04982148> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-22\" daemon prio=10 tid=600000000056e210 nid=88 lwp_id=9389886 in Object.wait() [9ffffffeb5300000..9ffffffeb5300b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04981f18> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager.run(WebtEndpointImpl.java:347)\r\n\t- locked <9fffffff04981f18> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"event handler worker-thread-5\" daemon prio=10 tid=6000000003d4e2e0 nid=87 lwp_id=9389884 waiting on condition [9ffffffeb5500000..9ffffffeb5500bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"event handler worker-thread-4\" daemon prio=10 tid=6000000003d4bac0 nid=86 lwp_id=9389883 waiting on condition [9ffffffeb5700000..9ffffffeb5700c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"event handler worker-thread-3\" daemon prio=10 tid=6000000003d4a2e0 nid=85 lwp_id=9389882 waiting on condition [9ffffffeb5900000..9ffffffeb5900cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"event handler worker-thread-2\" daemon prio=10 tid=600000000329fa20 nid=84 lwp_id=9389881 waiting on condition [9ffffffeb8f00000..9ffffffeb8f00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"event handler worker-thread-1\" daemon prio=10 tid=600000000035f4e0 nid=83 lwp_id=9389880 waiting on condition [9ffffffeb5b00000..9ffffffeb5b00dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"com.tmax.probus.event.plugin.rte.EventHandler\" daemon prio=10 tid=6000000002cd6f20 nid=82 lwp_id=9389879 waiting on condition [9ffffffeb5d00000..9ffffffeb5d00a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat com.tmax.probus.event.plugin.rte.EventHandler.run(EventHandler.java:59)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"com.tmax.anylink.flow.rte_plugin.BatchLogProcessor\" daemon prio=10 tid=60000000001f5a50 nid=80 lwp_id=9389877 waiting on condition [9ffffffeb6100000..9ffffffeb6100b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat com.tmax.anylink.flow.rte_plugin.BatchLogProcessor.run(BatchLogProcessor.java:50)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"com.tmax.anylink.flow.rte_plugin.OnlineLogProcessor [container1-36]\" daemon prio=10 tid=60000000001f4120 nid=79 lwp_id=9389876 waiting on condition [9ffffffeb6300000..9ffffffeb6300bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat com.tmax.anylink.flow.rte_plugin.OnlineLogProcessor.run(OnlineLogProcessor.java:50)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Job_Executor3\" daemon prio=10 tid=600000000041f6d0 nid=78 lwp_id=9389872 runnable [9ffffffeb6500000..9ffffffeb6500c40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff0484d988> (a java.io.BufferedInputStream)\r\n\tat java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2196)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2486)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2496)\r\n\tat java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1273)\r\n\tat java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)\r\n\tat com.sun.jmx.remote.socket.SocketConnection.readMessage(SocketConnection.java:211)\r\n\tat com.sun.jmx.remote.generic.ClientSynchroMessageConnectionImpl$MessageReader.run(ClientSynchroMessageConnectionImpl.java:391)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:208)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Thread-16\" prio=10 tid=6000000003305f20 nid=76 lwp_id=9389841 in Object.wait() [9ffffffeb6900000..9ffffffeb6900d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05910c88> (a com.tmax.probus.nio.endpoint.impl.MessageDispatcher)\r\n\tat com.tmax.probus.nio.endpoint.impl.MessageDispatcher.run(MessageDispatcher.java:292)\r\n\t- locked <9fffffff05910c88> (a com.tmax.probus.nio.endpoint.impl.MessageDispatcher)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-15\" daemon prio=10 tid=6000000003304480 nid=75 lwp_id=9389840 in Object.wait() [9ffffffeb6b00000..9ffffffeb6b00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05911870> (a com.tmax.probus.nio.endpoint.impl.TimerWrapperStopper)\r\n\tat com.tmax.probus.nio.endpoint.impl.TimerWrapperStopper.run(EventManager.java:504)\r\n\t- locked <9fffffff05911870> (a com.tmax.probus.nio.endpoint.impl.TimerWrapperStopper)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-14\" daemon prio=10 tid=60000000032e2fb0 nid=74 lwp_id=9389839 in Object.wait() [9ffffffeb6d00000..9ffffffeb6d00a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff059236a0> (a com.tmax.probus.nio.endpoint.impl.EventManager)\r\n\tat com.tmax.probus.nio.endpoint.impl.EventManager.run(EventManager.java:257)\r\n\t- locked <9fffffff059236a0> (a com.tmax.probus.nio.endpoint.impl.EventManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"XAJobBuffer-rollback-1142506670\" prio=10 tid=600000000327e550 nid=73 lwp_id=9389838 waiting on condition [9ffffffeb6f00000..9ffffffeb6f00ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.runListener(BatchJobExecutor.java:152)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.access$000(BatchJobExecutor.java:39)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor$1.run(BatchJobExecutor.java:72)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"XAJobBuffer-commit-2002145759\" prio=10 tid=6000000002d19500 nid=72 lwp_id=9389837 waiting on condition [9ffffffeb7100000..9ffffffeb7100b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.runListener(BatchJobExecutor.java:152)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.access$000(BatchJobExecutor.java:39)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor$1.run(BatchJobExecutor.java:72)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"XAJobBuffer-prepare-2083460642\" prio=10 tid=6000000001bd96a0 nid=71 lwp_id=9389836 waiting on condition [9ffffffeb7300000..9ffffffeb7300bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.runListener(BatchJobExecutor.java:152)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.access$000(BatchJobExecutor.java:39)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor$1.run(BatchJobExecutor.java:72)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Job_Executor2\" daemon prio=10 tid=6000000000570150 nid=70 lwp_id=9389835 in Object.wait() [9ffffffeb7500000..9ffffffeb7500c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04841088> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:183)\r\n\t- locked <9fffffff04841088> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Thread-12\" daemon prio=10 tid=60000000002da6a0 nid=68 lwp_id=9389833 runnable [9ffffffeb7900000..9ffffffeb7900d40]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff03dfd9b0> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat com.sun.jmx.remote.socket.SocketConnectionServer.accept(SocketConnectionServer.java:173)\r\n\tat com.sun.jmx.remote.generic.SynchroMessageConnectionServerImpl.accept(SynchroMessageConnectionServerImpl.java:47)\r\n\tat javax.management.remote.generic.GenericConnectorServer$Receiver.run(GenericConnectorServer.java:337)\r\n\r\n\"RMI TCP Accept-20005\" daemon prio=10 tid=6000000000546220 nid=67 lwp_id=9389832 runnable [9ffffffeb7b00000..9ffffffeb7b00dc0]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff02e18850> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:340)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"XAJobBuffer-rollback-1562971892\" prio=10 tid=60000000011169d0 nid=66 lwp_id=9389831 waiting on condition [9ffffffeb7d00000..9ffffffeb7d00ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.runListener(BatchJobExecutor.java:152)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.access$000(BatchJobExecutor.java:39)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor$1.run(BatchJobExecutor.java:72)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"XAJobBuffer-commit-1659874875\" prio=10 tid=60000000002da340 nid=65 lwp_id=9389830 waiting on condition [9ffffffeb7f00000..9ffffffeb7f00b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.runListener(BatchJobExecutor.java:152)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.access$000(BatchJobExecutor.java:39)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor$1.run(BatchJobExecutor.java:72)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"XAJobBuffer-prepare-672568948\" prio=10 tid=60000000002d9fe0 nid=64 lwp_id=9389829 waiting on condition [9ffffffeb9100000..9ffffffeb9100a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.runListener(BatchJobExecutor.java:152)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.access$000(BatchJobExecutor.java:39)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor$1.run(BatchJobExecutor.java:72)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"chprd2_servlet_engine1.ContainerMonitor [container1-141]\" daemon prio=10 tid=6000000002c817a0 nid=63 lwp_id=9389821 waiting on condition [9ffffffeb8100000..9ffffffeb8100bc0]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat jeus.servlet.common.WebContainerMonitor.run(WebContainerMonitor.java:137)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"GC Daemon\" daemon prio=10 tid=60000000038ccc60 nid=62 lwp_id=9389820 in Object.wait() [9ffffffeb8300000..9ffffffeb8300c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03561690> (a sun.misc.GC$LatencyLock)\r\n\tat sun.misc.GC$Daemon.run(GC.java:100)\r\n\t- locked <9fffffff03561690> (a sun.misc.GC$LatencyLock)\r\n\r\n\"RMI Reaper\" prio=10 tid=60000000038c1300 nid=61 lwp_id=9389819 in Object.wait() [9ffffffeb8500000..9ffffffeb8500cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff035614a0> (a java.lang.ref.ReferenceQueue$Lock)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:133)\r\n\t- locked <9fffffff035614a0> (a java.lang.ref.ReferenceQueue$Lock)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:149)\r\n\tat sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:336)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Timer-1\" daemon prio=10 tid=6000000002c89660 nid=60 lwp_id=9389818 in Object.wait() [9ffffffeb8700000..9ffffffeb8700d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0592a238> (a java.util.TaskQueue)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:483)\r\n\t- locked <9fffffff0592a238> (a java.util.TaskQueue)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n\"RMI TCP Accept-0\" daemon prio=10 tid=60000000003ff860 nid=59 lwp_id=9389817 runnable [9fffffffb9100000..9fffffffb9100dc0]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff049c3a20> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:340)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"EJBTimerExecutor-1\" daemon prio=10 tid=600000000231fcb0 nid=57 lwp_id=9389798 in Object.wait() [9ffffffeb8900000..9ffffffeb8900ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0592ab20> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff0592ab20> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"EJBTimerExecutor-0\" daemon prio=10 tid=600000000231f250 nid=56 lwp_id=9389797 in Object.wait() [9ffffffeb8b00000..9ffffffeb8b00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0592ab20> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff0592ab20> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Timer-0\" prio=10 tid=6000000000c2d3b0 nid=55 lwp_id=9389796 in Object.wait() [9ffffffeb9500000..9ffffffeb9500bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05931d00> (a java.util.TaskQueue)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:483)\r\n\t- locked <9fffffff05931d00> (a java.util.TaskQueue)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n\"EJBEngineTimer_chprd2_ejb_engine1\" daemon prio=10 tid=60000000022ef0b0 nid=54 lwp_id=9389795 in Object.wait() [9ffffffeb8d00000..9ffffffeb8d00c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05932490> (a java.util.TaskQueue)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:509)\r\n\t- locked <9fffffff05932490> (a java.util.TaskQueue)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n\"DeploymentCommander-0\" daemon prio=10 tid=60000000002d8870 nid=51 lwp_id=9389792 in Object.wait() [9ffffffeb9300000..9ffffffeb9300dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff718> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff718> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"FlushManager\" daemon prio=10 tid=6000000003262c90 nid=49 lwp_id=9389788 waiting on condition [9ffffffeb9700000..9ffffffeb9700ac0]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat org.objectweb.howl.log.LogBufferManager$FlushManager.run(LogBufferManager.java:1254)\r\n\r\n\"LogFileManager.EventManager\" daemon prio=10 tid=600000000324a9a0 nid=48 lwp_id=9389787 in Object.wait() [9ffffffeb9900000..9ffffffeb9900b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05933230> (a java.lang.Object)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat org.objectweb.howl.log.LogFileManager$EventManager.run(LogFileManager.java:1260)\r\n\t- locked <9fffffff05933230> (a java.lang.Object)\r\n\r\n\"FlushManager\" daemon prio=10 tid=6000000003231f10 nid=47 lwp_id=9389786 waiting on condition [9ffffffeb9b00000..9ffffffeb9b00bc0]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat org.objectweb.howl.log.LogBufferManager$FlushManager.run(LogBufferManager.java:1254)\r\n\r\n\"LogFileManager.EventManager\" daemon prio=10 tid=600000000322f6f0 nid=46 lwp_id=9389785 in Object.wait() [9ffffffeb9d00000..9ffffffeb9d00c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05961140> (a java.lang.Object)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat org.objectweb.howl.log.LogFileManager$EventManager.run(LogFileManager.java:1260)\r\n\t- locked <9fffffff05961140> (a java.lang.Object)\r\n\r\n\"TMLinkManager-Selector\" daemon prio=10 tid=600000000322ced0 nid=45 lwp_id=9389784 runnable [9ffffffeb9f00000..9ffffffeb9f00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff02fdd650> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff02fdd638> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff02fd0ee0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"TMLink.Client-1\" daemon prio=10 tid=600000000321bb90 nid=44 lwp_id=9389783 in Object.wait() [9ffffffeba100000..9ffffffeba100d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02fdddc8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff02fdddc8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"TMLink.Client-0\" daemon prio=10 tid=6000000003206520 nid=43 lwp_id=9389782 in Object.wait() [9ffffffeba300000..9ffffffeba300dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02fdddc8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff02fdddc8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"TMLink.Server-1\" daemon prio=10 tid=6000000002cdf830 nid=42 lwp_id=9389781 in Object.wait() [9ffffffeba500000..9ffffffeba500a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02fdecb8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff02fdecb8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"TMLink.Server-0\" daemon prio=10 tid=60000000023564a0 nid=41 lwp_id=9389780 in Object.wait() [9ffffffeba700000..9ffffffeba700ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02fdecb8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff02fdecb8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"SelectorThread\" daemon prio=10 tid=6000000002355a40 nid=40 lwp_id=9389779 runnable [9ffffffeba900000..9ffffffeba900b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff059757d8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff059757c0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff05975370> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat com.sun.corba.se.impl.transport.SelectorImpl.run(SelectorImpl.java:249)\r\n\r\n\"Thread-6\" daemon prio=10 tid=6000000002c67d20 nid=39 lwp_id=9389778 in Object.wait() [9ffffffebab00000..9ffffffebab00bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03dd6fc8> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.management.remote.generic.ClientSynchroMessageNonblockingConnectionImpl.sendWithReturn(ClientSynchroMessageNonblockingConnectionImpl.java:224)\r\n\t- locked <9fffffff03dd6fc8> (a [I)\r\n\tat javax.management.remote.generic.ClientIntermediary$GenericClientNotifForwarder.fetchNotifs(ClientIntermediary.java:864)\r\n\tat com.sun.jmx.remote.opt.internal.ClientNotifForwarder$NotifFetcher.fetchNotifs(ClientNotifForwarder.java:420)\r\n\tat com.sun.jmx.remote.opt.internal.ClientNotifForwarder$NotifFetcher.run(ClientNotifForwarder.java:318)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-5\" daemon prio=10 tid=60000000006304a0 nid=38 lwp_id=9389777 in Object.wait() [9ffffffebad00000..9ffffffebad00c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03de23d8> (a [I)\r\n\tat com.sun.jmx.remote.opt.internal.ServerCommunicatorAdmin$Adminor.run(ServerCommunicatorAdmin.java:145)\r\n\t- locked <9fffffff03de23d8> (a [I)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Job_Executor1\" daemon prio=10 tid=600000000061bf30 nid=37 lwp_id=9389774 in Object.wait() [9ffffffebaf00000..9ffffffebaf00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04215238> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:87)\r\n\t- locked <9fffffff04215238> (a [I)\r\n\r\n\"Job_Executor0\" daemon prio=10 tid=6000000002c61090 nid=36 lwp_id=9389773 runnable [9ffffffebb100000..9ffffffebb100d40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff420c63c0> (a java.io.BufferedInputStream)\r\n\tat java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2196)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2486)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2496)\r\n\tat java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1273)\r\n\tat java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)\r\n\tat com.sun.jmx.remote.socket.SocketConnection.readMessage(SocketConnection.java:211)\r\n\tat com.sun.jmx.remote.generic.ServerSynchroMessageConnectionImpl$MessageReader.run(ServerSynchroMessageConnectionImpl.java:168)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:208)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Thread-4\" daemon prio=10 tid=6000000002b3f780 nid=35 lwp_id=9389772 waiting on condition [9ffffffebb300000..9ffffffebb300dc0]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.sun.jmx.remote.opt.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:154)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMPSelector\" daemon prio=10 tid=6000000002b31e80 nid=34 lwp_id=9389770 runnable [9ffffffebb500000..9ffffffebb500a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff03dd59c8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff03dd59b0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff03dc7818> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-9\" daemon prio=10 tid=6000000002b2c500 nid=33 lwp_id=9389769 in Object.wait() [9ffffffebb700000..9ffffffebb700ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-8\" daemon prio=10 tid=6000000002b29ce0 nid=32 lwp_id=9389768 in Object.wait() [9ffffffebb900000..9ffffffebb900b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-7\" daemon prio=10 tid=6000000002b244c0 nid=31 lwp_id=9389767 in Object.wait() [9ffffffebbb00000..9ffffffebbb00bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-6\" daemon prio=10 tid=6000000002a35db0 nid=30 lwp_id=9389766 in Object.wait() [9ffffffebbd00000..9ffffffebbd00c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-5\" daemon prio=10 tid=6000000002a2c770 nid=29 lwp_id=9389765 in Object.wait() [9ffffffebbf00000..9ffffffebbf00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-4\" daemon prio=10 tid=6000000002a23f40 nid=28 lwp_id=9389764 in Object.wait() [9ffffffebc100000..9ffffffebc100d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-3\" daemon prio=10 tid=600000000245a3c0 nid=27 lwp_id=9389763 in Object.wait() [9ffffffebc300000..9ffffffebc300dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-2\" daemon prio=10 tid=600000000242d5d0 nid=26 lwp_id=9389762 in Object.wait() [9ffffffebc500000..9ffffffebc500a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-1\" daemon prio=10 tid=600000000153fc40 nid=25 lwp_id=9389761 in Object.wait() [9ffffffebc700000..9ffffffebc700ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-0\" daemon prio=10 tid=60000000014acf30 nid=24 lwp_id=9389760 in Object.wait() [9ffffffebc900000..9ffffffebc900b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"IO-JNSLocal-0[Socket[addr=/172.25.60.112,port=9736,localport=54805]]\" daemon prio=10 tid=60000000014938f0 nid=23 lwp_id=9389759 runnable [9ffffffebcb00000..9ffffffebcb00bc0]\r\n\tat sun.nio.ch.FileDispatcher.read0(Native Method)\r\n\tat sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)\r\n\tat sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:233)\r\n\tat sun.nio.ch.IOUtil.read(IOUtil.java:200)\r\n\tat sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:207)\r\n\t- locked <9fffffff03018740> (a java.lang.Object)\r\n\tat jeus.io.impl.blockingChannel.util.BlockingChannelInputStreamBuffer.readBuffer(BlockingChannelInputStreamBuffer.java:28)\r\n\tat jeus.io.impl.nio.util.ChannelInputStreamBuffer.read(ChannelInputStreamBuffer.java:55)\r\n\tat jeus.io.impl.nio.protocol.message.NIOContentBuffer.read(NIOContentBuffer.java:63)\r\n\tat jeus.io.protocol.message.ContentBuffer.readBuffer(ContentBuffer.java:58)\r\n\tat jeus.io.protocol.message.ContentReader.readMessage(ContentReader.java:59)\r\n\tat jeus.io.impl.StreamHandlerImpl.readMessage(StreamHandlerImpl.java:242)\r\n\tat jeus.io.impl.StreamHandlerImpl14.readMessage(StreamHandlerImpl14.java:72)\r\n\tat jeus.io.impl.blocking.handler.BlockingStreamHandlerImpl14.run(BlockingStreamHandlerImpl14.java:54)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:642)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:667)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"SchedulingService-2\" daemon prio=10 tid=6000000001411fc0 nid=22 lwp_id=9389758 waiting on condition [9ffffffebcd00000..9ffffffebcd00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1803)\r\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:135)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:504)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:497)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-3\" daemon prio=10 tid=6000000001405ef0 nid=21 lwp_id=9389757 in Object.wait() [9ffffffebcf00000..9ffffffebcf00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03de2e90> (a jeus.management.remote.jeusmp.OneSocketNonblockingConnectionServer)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.management.remote.jeusmp.OneSocketNonblockingConnectionServer.accept(OneSocketNonblockingConnectionServer.java:66)\r\n\t- locked <9fffffff03de2e90> (a jeus.management.remote.jeusmp.OneSocketNonblockingConnectionServer)\r\n\tat jeus.management.remote.generic.SynchroMessageNonblockingConnectionServerImpl.accept(SynchroMessageNonblockingConnectionServerImpl.java:61)\r\n\tat javax.management.remote.generic.GenericConnectorServer$Receiver.run(GenericConnectorServer.java:337)\r\n\r\n\"jeus.server.enginecontainer.Timer\" daemon prio=10 tid=60000000012ec030 nid=20 lwp_id=9389756 waiting on condition [9ffffffebd100000..9ffffffebd100d40]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat jeus.server.enginecontainer.ResourceManager.run(ResourceManager.java:40)\r\n\r\n\"IO-IO-ClientSecurity-0[Socket[addr=/172.25.60.112,port=9736,localport=54804]]\" daemon prio=10 tid=60000000010e6310 nid=19 lwp_id=9389755 runnable [9ffffffebd300000..9ffffffebd300dc0]\r\n\tat sun.nio.ch.FileDispatcher.read0(Native Method)\r\n\tat sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)\r\n\tat sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:233)\r\n\tat sun.nio.ch.IOUtil.read(IOUtil.java:200)\r\n\tat sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:207)\r\n\t- locked <9fffffff02ffc128> (a java.lang.Object)\r\n\tat jeus.io.impl.blockingChannel.util.BlockingChannelInputStreamBuffer.readBuffer(BlockingChannelInputStreamBuffer.java:28)\r\n\tat jeus.io.impl.nio.util.ChannelInputStreamBuffer.read(ChannelInputStreamBuffer.java:55)\r\n\tat jeus.io.impl.nio.protocol.message.NIOContentBuffer.read(NIOContentBuffer.java:63)\r\n\tat jeus.io.protocol.message.ContentBuffer.readBuffer(ContentBuffer.java:58)\r\n\tat jeus.io.protocol.message.ContentReader.readMessage(ContentReader.java:59)\r\n\tat jeus.io.impl.StreamHandlerImpl.readMessage(StreamHandlerImpl.java:242)\r\n\tat jeus.io.impl.StreamHandlerImpl14.readMessage(StreamHandlerImpl14.java:72)\r\n\tat jeus.io.impl.blocking.handler.BlockingStreamHandlerImpl14.run(BlockingStreamHandlerImpl14.java:54)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:642)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:667)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"SchedulingService-1\" daemon prio=10 tid=6000000000f2e880 nid=18 lwp_id=9389754 waiting on condition [9ffffffebdb00000..9ffffffebdb00a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1803)\r\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:135)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:504)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:497)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"ActiveDispatcher-10771\" daemon prio=10 tid=6000000000ed2990 nid=17 lwp_id=9389753 runnable [9fffffffb9300000..9fffffffb9300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff02fe6818> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff02fe6800> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff02fe6688> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:84)\r\n\tat jeus.util.net.ActiveDispatcher.run(ActiveDispatcher.java:94)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"jeus.util.net.SocketDispatcher-0\" daemon prio=10 tid=6000000000169cf0 nid=16 lwp_id=9389752 in Object.wait() [9fffffffb9f00000..9fffffffb9f00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02fefc70> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff02fefc70> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Low Memory Detector\" daemon prio=10 tid=600000000044ab10 nid=15 lwp_id=9389714 runnable [0000000000000000..0000000000000000]\r\n\r\n\"CompilerThread1\" daemon prio=10 tid=60000000004462c0 nid=13 lwp_id=9389712 waiting on condition [0000000000000000..9ffffffebd7fea00]\r\n\r\n\"CompilerThread0\" daemon prio=10 tid=60000000003dfae0 nid=12 lwp_id=9389711 waiting on condition [0000000000000000..9ffffffebdffea80]\r\n\r\n\"AdapterThread\" daemon prio=10 tid=60000000003dce60 nid=11 lwp_id=9389710 waiting on condition [0000000000000000..0000000000000000]\r\n\r\n\"Signal Dispatcher\" daemon prio=10 tid=60000000003da640 nid=10 lwp_id=9389709 waiting on condition [0000000000000000..0000000000000000]\r\n\r\n\"Finalizer\" daemon prio=10 tid=60000000001bae50 nid=9 lwp_id=9389708 in Object.wait() [9ffffffebed00000..9ffffffebed00ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02c85e40> (a java.lang.ref.ReferenceQueue$Lock)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:133)\r\n\t- locked <9fffffff02c85e40> (a java.lang.ref.ReferenceQueue$Lock)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:149)\r\n\tat java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:197)\r\n\r\n\"Reference Handler\" daemon prio=10 tid=60000000001b6be0 nid=8 lwp_id=9389707 in Object.wait() [9ffffffebef00000..9ffffffebef00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02c85e08> (a java.lang.ref.Reference$Lock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat java.lang.ref.Reference$ReferenceHandler.run(Reference.java:123)\r\n\t- locked <9fffffff02c85e08> (a java.lang.ref.Reference$Lock)\r\n\r\n\"jeus.server.enginecontainer.EngineContainer [container1-10]\" prio=10 tid=6000000000098a20 nid=1 lwp_id=-1 in Object.wait() [9fffffffffffc000..9fffffffffffd0b0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02ca7428> (a java.lang.Object)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.server.enginecontainer.EngineContainer.waitForDown(EngineContainer.java:1041)\r\n\t- locked <9fffffff02ca7428> (a java.lang.Object)\r\n\tat jeus.server.enginecontainer.EngineContainer.main(EngineContainer.java:1022)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\r\n\tat java.lang.reflect.Method.invoke(Method.java:585)\r\n\tat jeus.server.Bootstrapper.callMainMethod(Bootstrapper.java:295)\r\n\tat jeus.server.Bootstrapper.callMain(Bootstrapper.java:364)\r\n\tat jeus.server.enginecontainer.EngineContainerBootstrapper.main(EngineContainerBootstrapper.java:14)\r\n\r\n\"VM Thread\" prio=10 tid=6000000000104270 nid=7 lwp_id=9389706 runnable \r\n\r\n\"GC task thread#0 (ParallelGC)\" prio=10 tid=6000000000021aa0 nid=3 lwp_id=9389693 runnable \r\n\r\n\"GC task thread#1 (ParallelGC)\" prio=10 tid=6000000000021c00 nid=4 lwp_id=9389694 runnable \r\n\r\n\"GC task thread#2 (ParallelGC)\" prio=10 tid=6000000000021d60 nid=5 lwp_id=9389695 runnable \r\n\r\n\"GC task thread#3 (ParallelGC)\" prio=10 tid=6000000000021ec0 nid=6 lwp_id=9389696 runnable \r\n\r\n\"VM Periodic Task Thread\" prio=10 tid=60000000001043b0 nid=14 lwp_id=9389713 waiting on condition \r\n\r\nFull thread dump  [ 3 15 14:49:00 KST 2008] (Java HotSpot(TM) 64-Bit Server VM 1.5.0.11 jinteg:11.07.07-18:21 IA64W mixed mode):\r\n\r\n\"ACJH_SOPSI_BAN_01-w13 [container1-361]\" prio=10 tid=60000000044e3840 nid=1194 lwp_id=9992026 runnable [9fffffffb6f00000..9fffffffb6f00a40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff59c52280> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w12 [container1-360]\" prio=10 tid=60000000044adb10 nid=1193 lwp_id=9992025 runnable [9fffffffb7100000..9fffffffb7100ac0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff59c5a280> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"Thread-870\" daemon prio=10 tid=600000000407e3f0 nid=1190 lwp_id=9991964 in Object.wait() [9fffffffb8100000..9fffffffb8100c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff420bf978> (a [I)\r\n\tat com.sun.jmx.remote.opt.internal.ServerCommunicatorAdmin$Adminor.run(ServerCommunicatorAdmin.java:145)\r\n\t- locked <9fffffff420bf978> (a [I)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-869\" daemon prio=10 tid=6000000005276780 nid=1189 lwp_id=9991268 waiting on condition [9fffffffb8300000..9fffffffb8300cc0]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.sun.jmx.remote.opt.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:154)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-868\" daemon prio=10 tid=6000000003d53260 nid=1188 lwp_id=9990219 in Object.wait() [9fffffffb7900000..9fffffffb7900d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff41f3eed8> (a [I)\r\n\tat com.sun.jmx.remote.opt.internal.ServerCommunicatorAdmin$Adminor.run(ServerCommunicatorAdmin.java:145)\r\n\t- locked <9fffffff41f3eed8> (a [I)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AMZF_TMXSO_BAN_01_TmaxManager_ThreadPool-9\" daemon prio=10 tid=600000000185bb40 nid=1184 lwp_id=9949314 in Object.wait() [9fffffffb8d00000..9fffffffb8d00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04997860> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff04997860> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AMZF_TMXSO_BTD_01_TmaxManager_ThreadPool-1\" daemon prio=10 tid=600000000183fc90 nid=1179 lwp_id=9721154 in Object.wait() [9fffffffb7300000..9fffffffb7300dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0496bc58> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff0496bc58> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKSN_BTD_SOA_02-Selector\" daemon prio=10 tid=60000000053bf4e0 nid=626 lwp_id=9649694 runnable [9fffffffb7b00000..9fffffffb7b00a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff233ac038> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff233ac020> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff233abf08> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-320\" daemon prio=10 tid=60000000052771a0 nid=625 lwp_id=9649693 in Object.wait() [9fffffffb7d00000..9fffffffb7d00ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff233ac810> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff233ac810> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AMZF_TMXSO_BTB_01_TmaxManager_ThreadPool-2\" daemon prio=10 tid=60000000053b2c50 nid=617 lwp_id=9619789 in Object.wait() [9ffffffe78100000..9ffffffe78100ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff049a9208> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff049a9208> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-313\" daemon prio=10 tid=6000000004a8faa0 nid=611 lwp_id=9596556 in Object.wait() [9ffffffe78d00000..9ffffffe78d00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff13bedc28> (a [I)\r\n\tat com.sun.jmx.remote.opt.internal.ServerCommunicatorAdmin$Adminor.run(ServerCommunicatorAdmin.java:145)\r\n\t- locked <9fffffff13bedc28> (a [I)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LFDI_BTD_SOA_02-Selector\" daemon prio=10 tid=6000000003aff8b0 nid=610 lwp_id=9593571 runnable [9ffffffe78f00000..9ffffffe78f00a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff1281c098> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff1281c080> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff1281bf68> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-312\" daemon prio=10 tid=6000000003aa36b0 nid=609 lwp_id=9593570 in Object.wait() [9ffffffe79100000..9ffffffe79100ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff1281dbd0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff1281dbd0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKIS_BTD_SOA_02-Selector\" daemon prio=10 tid=600000000431fc10 nid=608 lwp_id=9590492 runnable [9ffffffe79300000..9ffffffe79300b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff11771018> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff11771000> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff11770ee8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-311\" daemon prio=10 tid=60000000042f24c0 nid=607 lwp_id=9590491 in Object.wait() [9ffffffe79500000..9ffffffe79500bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff11771b60> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff11771b60> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNCE_BTD_SOA_02-Selector\" daemon prio=10 tid=6000000004a87d20 nid=606 lwp_id=9582184 runnable [9ffffffe79700000..9ffffffe79700c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0fa48970> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0fa48958> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0fa48840> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-310\" daemon prio=10 tid=6000000004a86950 nid=605 lwp_id=9582183 in Object.wait() [9ffffffe7a700000..9ffffffe7a700cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0fa4a4a8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0fa4a4a8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKNI_BTD_SOA_04-Selector\" daemon prio=10 tid=6000000004a3d6b0 nid=604 lwp_id=9577236 runnable [9fffffffb8500000..9fffffffb8500d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0ea95778> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0ea95760> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0ea95648> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-309\" daemon prio=10 tid=6000000004a14830 nid=603 lwp_id=9577235 in Object.wait() [9fffffffb8700000..9fffffffb8700dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0ea972b0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0ea972b0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKNI_BTD_SOA_02-Selector\" daemon prio=10 tid=600000000066d9c0 nid=602 lwp_id=9575337 runnable [9fffffffb8900000..9fffffffb8900a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0e6ae4a0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0e6ae488> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0e6ae370> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-308\" daemon prio=10 tid=600000000066d660 nid=601 lwp_id=9575336 in Object.wait() [9fffffffb8b00000..9fffffffb8b00ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0e6aefe8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0e6aefe8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKIB_BTD_SOA_01-Selector\" daemon prio=10 tid=6000000005585980 nid=573 lwp_id=9567093 runnable [9ffffffe79900000..9ffffffe79900cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0dac3480> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0dac3468> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0dac3350> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-280\" daemon prio=10 tid=6000000005585330 nid=572 lwp_id=9567092 in Object.wait() [9ffffffe79b00000..9ffffffe79b00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0dac3fc8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0dac3fc8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-278\" daemon prio=10 tid=6000000005278380 nid=570 lwp_id=9566389 in Object.wait() [9ffffffe79f00000..9ffffffe79f00a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0d980fb8> (a [I)\r\n\tat com.sun.jmx.remote.opt.internal.ServerCommunicatorAdmin$Adminor.run(ServerCommunicatorAdmin.java:145)\r\n\t- locked <9fffffff0d980fb8> (a [I)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKID_BTD_SOA_04-Selector\" daemon prio=10 tid=6000000004228480 nid=569 lwp_id=9555443 runnable [9ffffffe7a100000..9ffffffe7a100ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0d451900> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0d4518e8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0d4517d0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-277\" daemon prio=10 tid=600000000409c800 nid=568 lwp_id=9555442 in Object.wait() [9ffffffe7a300000..9ffffffe7a300b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0d452448> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0d452448> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKNI_BTD_SOA_03-Selector\" daemon prio=10 tid=60000000017a1450 nid=567 lwp_id=9544798 runnable [9ffffffe7a500000..9ffffffe7a500bc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0ca648e0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0ca648c8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0ca647b0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-276\" daemon prio=10 tid=600000000176dc40 nid=566 lwp_id=9544797 in Object.wait() [9ffffffe80100000..9ffffffe80100c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0ca66418> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0ca66418> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKSN_BTD_SOA_01-Selector\" daemon prio=10 tid=6000000003621db0 nid=561 lwp_id=9410213 runnable [9ffffffe7a900000..9ffffffe7a900ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0906c8c0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0906c8a8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0906c790> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-271\" daemon prio=10 tid=6000000003621a50 nid=560 lwp_id=9410212 in Object.wait() [9ffffffe7ab00000..9ffffffe7ab00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0906d408> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0906d408> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LFDI_BTD_SOA_01-Selector\" daemon prio=10 tid=6000000001737a10 nid=559 lwp_id=9410170 runnable [9ffffffe7ad00000..9ffffffe7ad00bc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0906dcf0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0906dcd8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0906dbc0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-270\" daemon prio=10 tid=6000000001580f90 nid=558 lwp_id=9410169 in Object.wait() [9ffffffe7af00000..9ffffffe7af00c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0906e868> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0906e868> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKID_BTD_SOA_05-Selector\" daemon prio=10 tid=600000000492d890 nid=557 lwp_id=9410162 runnable [9ffffffe7b100000..9ffffffe7b100cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0906f150> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0906f138> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0906f020> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-269\" daemon prio=10 tid=600000000492bd40 nid=556 lwp_id=9410161 in Object.wait() [9ffffffe7b300000..9ffffffe7b300d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0906fc98> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0906fc98> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNCE_BTD_SOA_01-Selector\" daemon prio=10 tid=600000000427fa30 nid=555 lwp_id=9398324 runnable [9ffffffe7b500000..9ffffffe7b500dc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff088e0f40> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff088e0f28> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff088e0e10> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-268\" daemon prio=10 tid=6000000004279270 nid=554 lwp_id=9398323 in Object.wait() [9ffffffe7b700000..9ffffffe7b700a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff088e1a88> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff088e1a88> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNCE_BTD_SOA_03-Selector\" daemon prio=10 tid=60000000048ce300 nid=553 lwp_id=9398322 runnable [9ffffffe7b900000..9ffffffe7b900ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff088e2370> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff088e2358> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff088e2240> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-267\" daemon prio=10 tid=600000000405fb50 nid=552 lwp_id=9398321 in Object.wait() [9ffffffe7bb00000..9ffffffe7bb00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff088e2ee8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff088e2ee8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKIS_BTD_SOA_01-Selector\" daemon prio=10 tid=60000000034cd600 nid=551 lwp_id=9395901 runnable [9ffffffe7bd00000..9ffffffe7bd00bc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff08164850> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff08164838> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff08164720> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-266\" daemon prio=10 tid=60000000034ccba0 nid=550 lwp_id=9395900 in Object.wait() [9ffffffe7bf00000..9ffffffe7bf00c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff08165398> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff08165398> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LFDI_BTD_SOA_03-Selector\" daemon prio=10 tid=600000000445cc00 nid=549 lwp_id=9395899 runnable [9ffffffe7c100000..9ffffffe7c100cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff08165c80> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff08165c68> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff08165b50> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-265\" daemon prio=10 tid=6000000004403a70 nid=548 lwp_id=9395898 in Object.wait() [9ffffffe7c300000..9ffffffe7c300d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff081667f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff081667f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LASI_BTB_SIA_01-Acceptor\" daemon prio=10 tid=6000000003aa3cf0 nid=547 lwp_id=9395239 runnable [9ffffffe7c500000..9ffffffe7c500dc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff08166d08> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LASI_BTB_SIA_01-Selector\" daemon prio=10 tid=6000000003a56e20 nid=546 lwp_id=9395238 runnable [9ffffffe7c700000..9ffffffe7c700a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0816b638> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0816b620> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0816a6f8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-264\" daemon prio=10 tid=6000000003a33370 nid=545 lwp_id=9395237 in Object.wait() [9ffffffe7c900000..9ffffffe7c900ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff08167040> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff08167040> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-263\" daemon prio=10 tid=6000000003a32d20 nid=544 lwp_id=9395202 in Object.wait() [9ffffffe7cb00000..9ffffffe7cb00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff08167748> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff08167748> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIS_BTB_SIA_01-Acceptor\" daemon prio=10 tid=6000000003a97250 nid=543 lwp_id=9392891 runnable [9ffffffe7cd00000..9ffffffe7cd00bc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff079acbf8> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIS_BTB_SIA_01-Selector\" daemon prio=10 tid=6000000003a37f90 nid=542 lwp_id=9392890 runnable [9ffffffe7cf00000..9ffffffe7cf00c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff079c0918> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff079c0900> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff079bfa98> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-262\" daemon prio=10 tid=6000000003a37940 nid=541 lwp_id=9392889 in Object.wait() [9ffffffe7d100000..9ffffffe7d100cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff079acf30> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff079acf30> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-261\" daemon prio=10 tid=6000000003a367f0 nid=540 lwp_id=9392863 in Object.wait() [9ffffffe7d300000..9ffffffe7d300d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff079bd680> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff079bd680> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Job_Executor14\" daemon prio=10 tid=6000000001142710 nid=539 lwp_id=9392860 runnable [9ffffffe7d500000..9ffffffe7d500dc0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff13bee818> (a java.io.BufferedInputStream)\r\n\tat java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2196)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2486)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2496)\r\n\tat java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1273)\r\n\tat java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)\r\n\tat com.sun.jmx.remote.socket.SocketConnection.readMessage(SocketConnection.java:211)\r\n\tat com.sun.jmx.remote.generic.ServerSynchroMessageConnectionImpl$MessageReader.run(ServerSynchroMessageConnectionImpl.java:168)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:208)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor13\" daemon prio=10 tid=6000000001017b90 nid=538 lwp_id=9392859 runnable [9ffffffe7d700000..9ffffffe7d700a40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff41f84210> (a java.io.BufferedInputStream)\r\n\tat java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2196)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2486)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2496)\r\n\tat java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1273)\r\n\tat java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)\r\n\tat com.sun.jmx.remote.socket.SocketConnection.readMessage(SocketConnection.java:211)\r\n\tat com.sun.jmx.remote.generic.ClientSynchroMessageConnectionImpl$MessageReader.run(ClientSynchroMessageConnectionImpl.java:391)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:208)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor12\" daemon prio=10 tid=6000000001010f70 nid=537 lwp_id=9392858 runnable [9ffffffe7d900000..9ffffffe7d900ac0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff41f43800> (a java.io.BufferedInputStream)\r\n\tat java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2196)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2486)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2496)\r\n\tat java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1273)\r\n\tat java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)\r\n\tat com.sun.jmx.remote.socket.SocketConnection.readMessage(SocketConnection.java:211)\r\n\tat com.sun.jmx.remote.generic.ServerSynchroMessageConnectionImpl$MessageReader.run(ServerSynchroMessageConnectionImpl.java:168)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:208)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor11\" daemon prio=10 tid=600000000100a720 nid=536 lwp_id=9392857 in Object.wait() [9ffffffe7db00000..9ffffffe7db00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff13bee968> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:183)\r\n\t- locked <9fffffff13bee968> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor10\" daemon prio=10 tid=6000000003a3f630 nid=535 lwp_id=9392822 in Object.wait() [9ffffffe7dd00000..9ffffffe7dd00bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff07304280> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:87)\r\n\t- locked <9fffffff07304280> (a [I)\r\n\r\n\"Job_Executor9\" daemon prio=10 tid=60000000039b77d0 nid=534 lwp_id=9392821 in Object.wait() [9ffffffe7df00000..9ffffffe7df00c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03df48e8> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:144)\r\n\t- locked <9fffffff03df48e8> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"LKNI_BTD_SOA_01-Selector\" daemon prio=10 tid=600000000076b790 nid=532 lwp_id=9391183 runnable [9ffffffe7e300000..9ffffffe7e300d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff073094b0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff073094c8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff07309398> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-259\" daemon prio=10 tid=6000000000764560 nid=531 lwp_id=9391182 in Object.wait() [9ffffffe7e500000..9ffffffe7e500dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0730c0e0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0730c0e0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Timer-2\" daemon prio=10 tid=6000000004154410 nid=529 lwp_id=9391119 in Object.wait() [9ffffffe7e900000..9ffffffe7e900ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff07337b58> (a java.util.TaskQueue)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:509)\r\n\t- locked <9fffffff07337b58> (a java.util.TaskQueue)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n\"jTDS TimerThread\" daemon prio=10 tid=600000000397c780 nid=528 lwp_id=9390593 in Object.wait() [9ffffffe7eb00000..9ffffffe7eb00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff07338908> (a java.util.LinkedList)\r\n\tat net.sourceforge.jtds.util.TimerThread.run(TimerThread.java:114)\r\n\t- locked <9fffffff07338908> (a java.util.LinkedList)\r\n\r\n\"SchedulingService-4\" daemon prio=10 tid=60000000039682f0 nid=527 lwp_id=9390586 waiting on condition [9ffffffe7ed00000..9ffffffe7ed00bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1803)\r\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:135)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:504)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:497)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKID_BTD_SOA_07-Selector\" daemon prio=10 tid=6000000004423b00 nid=526 lwp_id=9390524 runnable [9ffffffe7ef00000..9ffffffe7ef00c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff07339740> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff07339758> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff07339628> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-256\" daemon prio=10 tid=6000000004422730 nid=525 lwp_id=9390523 in Object.wait() [9ffffffe7f100000..9ffffffe7f100cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0733b0a8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0733b0a8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKID_BTD_SOA_06-Selector\" daemon prio=10 tid=60000000043d9ae0 nid=524 lwp_id=9390521 runnable [9ffffffe7f300000..9ffffffe7f300d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0733b930> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0733b948> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0733b818> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-255\" daemon prio=10 tid=600000000438dc30 nid=523 lwp_id=9390520 in Object.wait() [9ffffffe7f500000..9ffffffe7f500dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff07344368> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff07344368> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKID_BTD_SOA_01-Selector\" daemon prio=10 tid=60000000043a8bc0 nid=522 lwp_id=9390519 runnable [9ffffffe7f700000..9ffffffe7f700a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff07346a08> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff07346a20> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff073468f0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-254\" daemon prio=10 tid=60000000043a8570 nid=521 lwp_id=9390518 in Object.wait() [9ffffffe7f900000..9ffffffe7f900ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff07344788> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff07344788> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SOA_13-Selector\" daemon prio=10 tid=60000000041395a0 nid=520 lwp_id=9390508 runnable [9ffffffe7fb00000..9ffffffe7fb00b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff07345010> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff07345028> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff07344ef8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-253\" daemon prio=10 tid=60000000040febf0 nid=519 lwp_id=9390507 in Object.wait() [9ffffffe7fd00000..9ffffffe7fd00bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff073475b0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff073475b0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SOA_12-Selector\" daemon prio=10 tid=60000000006259d0 nid=518 lwp_id=9390504 runnable [9ffffffe7ff00000..9ffffffe7ff00c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff07349ea8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff07349ec0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff07349d90> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-252\" daemon prio=10 tid=6000000000624250 nid=517 lwp_id=9390503 in Object.wait() [9ffffffe86500000..9ffffffe86500cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0735b398> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0735b398> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[ABNS_TMASO_BTB_01] adapter worker thread pool-4-thread-2\" daemon prio=10 tid=600000000438d5e0 nid=515 lwp_id=9390430 waiting on condition [9ffffffe80300000..9ffffffe80300dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-60\" daemon prio=10 tid=60000000019cf170 nid=514 lwp_id=9390401 waiting on condition [9ffffffe80500000..9ffffffe80500a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-59\" daemon prio=10 tid=60000000019cd990 nid=513 lwp_id=9390400 waiting on condition [9ffffffe80700000..9ffffffe80700ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-58\" daemon prio=10 tid=60000000019c9cd0 nid=512 lwp_id=9390399 waiting on condition [9ffffffe80900000..9ffffffe80900b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-57\" daemon prio=10 tid=60000000019c74b0 nid=511 lwp_id=9390398 waiting on condition [9ffffffe80b00000..9ffffffe80b00bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-56\" daemon prio=10 tid=600000000181f940 nid=510 lwp_id=9390397 waiting on condition [9ffffffe80d00000..9ffffffe80d00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-55\" daemon prio=10 tid=60000000017d1bd0 nid=509 lwp_id=9390396 waiting on condition [9ffffffe80f00000..9ffffffe80f00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-54\" daemon prio=10 tid=60000000017cda90 nid=508 lwp_id=9390395 waiting on condition [9ffffffe81100000..9ffffffe81100d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-53\" daemon prio=10 tid=60000000017cb270 nid=507 lwp_id=9390394 waiting on condition [9ffffffe81300000..9ffffffe81300dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-52\" daemon prio=10 tid=60000000017c9a90 nid=506 lwp_id=9390393 waiting on condition [9ffffffe81500000..9ffffffe81500a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-51\" daemon prio=10 tid=60000000017d20b0 nid=505 lwp_id=9390392 waiting on condition [9ffffffe81700000..9ffffffe81700ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-50\" daemon prio=10 tid=60000000017c6230 nid=504 lwp_id=9390391 waiting on condition [9ffffffe81900000..9ffffffe81900b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-49\" daemon prio=10 tid=60000000017c4a50 nid=503 lwp_id=9390390 waiting on condition [9ffffffe81b00000..9ffffffe81b00bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-48\" daemon prio=10 tid=60000000017c02d0 nid=502 lwp_id=9390389 waiting on condition [9ffffffe81d00000..9ffffffe81d00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-47\" daemon prio=10 tid=60000000016fa380 nid=501 lwp_id=9390388 waiting on condition [9ffffffe81f00000..9ffffffe81f00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-46\" daemon prio=10 tid=60000000016f7140 nid=500 lwp_id=9390387 waiting on condition [9ffffffe82100000..9ffffffe82100d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-45\" daemon prio=10 tid=60000000016f5960 nid=499 lwp_id=9390386 waiting on condition [9ffffffe82300000..9ffffffe82300dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-44\" daemon prio=10 tid=60000000016f4180 nid=498 lwp_id=9390385 waiting on condition [9ffffffe82500000..9ffffffe82500a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-43\" daemon prio=10 tid=60000000011d6090 nid=497 lwp_id=9390384 waiting on condition [9ffffffe82700000..9ffffffe82700ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-42\" daemon prio=10 tid=600000000159a660 nid=496 lwp_id=9390383 waiting on condition [9ffffffe82900000..9ffffffe82900b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-41\" daemon prio=10 tid=6000000001598bc0 nid=495 lwp_id=9390382 waiting on condition [9ffffffe82b00000..9ffffffe82b00bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-40\" daemon prio=10 tid=6000000001596fd0 nid=494 lwp_id=9390381 waiting on condition [9ffffffe82d00000..9ffffffe82d00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-39\" daemon prio=10 tid=6000000001595c00 nid=493 lwp_id=9390380 waiting on condition [9ffffffe82f00000..9ffffffe82f00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-38\" daemon prio=10 tid=600000000158b430 nid=492 lwp_id=9390379 waiting on condition [9ffffffe83100000..9ffffffe83100d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-37\" daemon prio=10 tid=60000000010760b0 nid=491 lwp_id=9390378 waiting on condition [9ffffffe83300000..9ffffffe83300dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-36\" daemon prio=10 tid=6000000001074ce0 nid=490 lwp_id=9390377 waiting on condition [9ffffffe83500000..9ffffffe83500a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-35\" daemon prio=10 tid=6000000001071090 nid=489 lwp_id=9390376 waiting on condition [9ffffffe83700000..9ffffffe83700ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-34\" daemon prio=10 tid=600000000106fcc0 nid=488 lwp_id=9390375 waiting on condition [9ffffffe83900000..9ffffffe83900b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-33\" daemon prio=10 tid=6000000001267590 nid=487 lwp_id=9390374 waiting on condition [9ffffffe83b00000..9ffffffe83b00bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-32\" daemon prio=10 tid=6000000001265db0 nid=486 lwp_id=9390373 waiting on condition [9ffffffe83d00000..9ffffffe83d00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-31\" daemon prio=10 tid=6000000000603d60 nid=485 lwp_id=9390372 waiting on condition [9ffffffe83f00000..9ffffffe83f00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-30\" daemon prio=10 tid=6000000000600120 nid=484 lwp_id=9390371 waiting on condition [9ffffffe84100000..9ffffffe84100d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-29 [container1-81]\" daemon prio=10 tid=600000000061b060 nid=483 lwp_id=9390370 waiting on condition [9ffffffe84300000..9ffffffe84300dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-28\" daemon prio=10 tid=60000000016fb740 nid=482 lwp_id=9390369 waiting on condition [9ffffffe84500000..9ffffffe84500a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-27\" daemon prio=10 tid=60000000016ef5d0 nid=481 lwp_id=9390368 waiting on condition [9ffffffe84700000..9ffffffe84700ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-26\" daemon prio=10 tid=60000000016eeb70 nid=480 lwp_id=9390367 waiting on condition [9ffffffe84900000..9ffffffe84900b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-25\" daemon prio=10 tid=60000000015ac710 nid=479 lwp_id=9390366 waiting on condition [9ffffffe84b00000..9ffffffe84b00bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-24 [container1-76]\" daemon prio=10 tid=60000000015aac70 nid=478 lwp_id=9390365 waiting on condition [9ffffffe84d00000..9ffffffe84d00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-23\" daemon prio=10 tid=60000000011ff8a0 nid=477 lwp_id=9390364 waiting on condition [9ffffffe84f00000..9ffffffe84f00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-22\" daemon prio=10 tid=60000000011f7cb0 nid=476 lwp_id=9390363 waiting on condition [9ffffffe85100000..9ffffffe85100d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-21\" daemon prio=10 tid=60000000011d5a40 nid=475 lwp_id=9390362 waiting on condition [9ffffffe85300000..9ffffffe85300dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-20\" daemon prio=10 tid=60000000010bc690 nid=474 lwp_id=9390361 waiting on condition [9ffffffe85500000..9ffffffe85500a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-19\" daemon prio=10 tid=60000000010876f0 nid=473 lwp_id=9390360 waiting on condition [9ffffffe85700000..9ffffffe85700ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-18\" daemon prio=10 tid=6000000001080de0 nid=472 lwp_id=9390359 waiting on condition [9ffffffe85900000..9ffffffe85900b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-17\" daemon prio=10 tid=60000000007ae2c0 nid=471 lwp_id=9390358 waiting on condition [9ffffffe85b00000..9ffffffe85b00bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-16\" daemon prio=10 tid=6000000000719920 nid=470 lwp_id=9390354 waiting on condition [9ffffffe85d00000..9ffffffe85d00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-15\" daemon prio=10 tid=60000000006ddab0 nid=469 lwp_id=9390353 waiting on condition [9ffffffe85f00000..9ffffffe85f00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LARE_BTD_SOA_11-Selector\" daemon prio=10 tid=60000000004dd4d0 nid=468 lwp_id=9390352 runnable [9ffffffe86100000..9ffffffe86100d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0737a290> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0737a2a8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0737a178> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-250\" daemon prio=10 tid=60000000004da030 nid=467 lwp_id=9390351 in Object.wait() [9ffffffe86300000..9ffffffe86300dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0737adc0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0737adc0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-14\" daemon prio=10 tid=60000000034c3440 nid=466 lwp_id=9390350 waiting on condition [9ffffffeb5f00000..9ffffffeb5f00a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[ABNS_TMASO_BTB_01] adapter worker thread pool-4-thread-1\" daemon prio=10 tid=6000000002609950 nid=464 lwp_id=9390348 waiting on condition [9ffffffe86700000..9ffffffe86700b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-13\" daemon prio=10 tid=60000000034bbb90 nid=463 lwp_id=9390347 waiting on condition [9ffffffe86900000..9ffffffe86900bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-12\" daemon prio=10 tid=60000000034d41e0 nid=462 lwp_id=9390301 waiting on condition [9ffffffe86b00000..9ffffffe86b00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-11\" daemon prio=10 tid=60000000034d19c0 nid=461 lwp_id=9390300 waiting on condition [9ffffffe86d00000..9ffffffe86d00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-10\" daemon prio=10 tid=60000000040bfd30 nid=460 lwp_id=9390299 waiting on condition [9ffffffe86f00000..9ffffffe86f00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-9\" daemon prio=10 tid=60000000049869a0 nid=459 lwp_id=9390298 waiting on condition [9ffffffe87100000..9ffffffe87100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-8\" daemon prio=10 tid=600000000498c0d0 nid=458 lwp_id=9390292 waiting on condition [9ffffffe87300000..9ffffffe87300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"SchedulingService-3\" daemon prio=10 tid=600000000487f8a0 nid=457 lwp_id=9390291 waiting on condition [9ffffffe87500000..9ffffffe87500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1803)\r\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:135)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:504)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:497)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-7 [container1-52]\" daemon prio=10 tid=600000000043f9c0 nid=456 lwp_id=9390290 waiting on condition [9ffffffe87700000..9ffffffe87700b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-6\" daemon prio=10 tid=6000000004336220 nid=455 lwp_id=9390280 waiting on condition [9ffffffe87900000..9ffffffe87900bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AWRB_SOPSI_BAN_01-acceptor\" prio=10 tid=600000000487d080 nid=454 lwp_id=9390270 runnable [9ffffffe87b00000..9ffffffe87b00c40]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff03c41208> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AWRB_SOPSI_BAN_01-w09 [container1-223]\" prio=10 tid=600000000487a860 nid=453 lwp_id=9390269 waiting on condition [9ffffffe87d00000..9ffffffe87d00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w08 [container1-222]\" prio=10 tid=6000000004878040 nid=452 lwp_id=9390268 waiting on condition [9ffffffe87f00000..9ffffffe87f00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w07 [container1-221]\" prio=10 tid=6000000004875820 nid=451 lwp_id=9390267 waiting on condition [9ffffffe88100000..9ffffffe88100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w06 [container1-220]\" prio=10 tid=60000000048716e0 nid=450 lwp_id=9390266 waiting on condition [9ffffffe88300000..9ffffffe88300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w05 [container1-219]\" prio=10 tid=600000000486eec0 nid=449 lwp_id=9390265 waiting on condition [9ffffffe88500000..9ffffffe88500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w04 [container1-218]\" prio=10 tid=600000000486b280 nid=448 lwp_id=9390264 waiting on condition [9ffffffe88700000..9ffffffe88700b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w03 [container1-217]\" prio=10 tid=6000000004868a60 nid=447 lwp_id=9390263 waiting on condition [9ffffffe88900000..9ffffffe88900bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w02 [container1-216]\" prio=10 tid=6000000004866240 nid=446 lwp_id=9390262 waiting on condition [9ffffffe88b00000..9ffffffe88b00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w01 [container1-215]\" prio=10 tid=6000000004863a20 nid=445 lwp_id=9390261 waiting on condition [9ffffffe88d00000..9ffffffe88d00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AWRB_SOPSI_BAN_01-w00 [container1-214]\" prio=10 tid=6000000004861200 nid=444 lwp_id=9390260 waiting on condition [9ffffffe88f00000..9ffffffe88f00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASCB_SOPSI_BAN_01-acceptor\" prio=10 tid=600000000485e9e0 nid=443 lwp_id=9390259 runnable [9ffffffe89100000..9ffffffe89100dc0]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff033d1e00> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"ASCB_SOPSI_BAN_01-w04 [container1-289]\" prio=10 tid=600000000485c1c0 nid=442 lwp_id=9390258 waiting on condition [9ffffffe89300000..9ffffffe89300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASCB_SOPSI_BAN_01-w03 [container1-288]\" prio=10 tid=60000000048599a0 nid=441 lwp_id=9390257 waiting on condition [9ffffffe89500000..9ffffffe89500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASCB_SOPSI_BAN_01-w02 [container1-287]\" prio=10 tid=6000000004855d60 nid=440 lwp_id=9390256 waiting on condition [9ffffffe89700000..9ffffffe89700b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASCB_SOPSI_BAN_01-w01 [container1-252]\" prio=10 tid=6000000004853540 nid=439 lwp_id=9390255 waiting on condition [9ffffffe89900000..9ffffffe89900bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASCB_SOPSI_BAN_01-w00 [container1-206]\" prio=10 tid=6000000004850d20 nid=438 lwp_id=9390254 waiting on condition [9ffffffe89b00000..9ffffffe89b00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ABSB_SOPSI_BAN_01-acceptor\" prio=10 tid=600000000484e500 nid=437 lwp_id=9390253 runnable [9ffffffe89d00000..9ffffffe89d00cc0]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff034b7028> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"ABSB_SOPSI_BAN_01-w04 [container1-238]\" prio=10 tid=600000000484bce0 nid=436 lwp_id=9390252 waiting on condition [9ffffffe89f00000..9ffffffe89f00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ABSB_SOPSI_BAN_01-w03 [container1-237]\" prio=10 tid=60000000048494c0 nid=435 lwp_id=9390251 waiting on condition [9ffffffe8a100000..9ffffffe8a100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ABSB_SOPSI_BAN_01-w02 [container1-236]\" prio=10 tid=6000000004846ca0 nid=434 lwp_id=9390250 waiting on condition [9ffffffe8a300000..9ffffffe8a300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ABSB_SOPSI_BAN_01-w01 [container1-235]\" prio=10 tid=6000000004842b60 nid=433 lwp_id=9390249 waiting on condition [9ffffffe8a500000..9ffffffe8a500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ABSB_SOPSI_BAN_01-w00 [container1-234]\" prio=10 tid=600000000483ef20 nid=432 lwp_id=9390248 waiting on condition [9ffffffe8a700000..9ffffffe8a700b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AHNB_SOPSI_BAN_01-acceptor\" prio=10 tid=600000000483c700 nid=431 lwp_id=9390247 runnable [9ffffffe8a900000..9ffffffe8a900bc0]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff0359c598> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AHNB_SOPSI_BAN_01-w04 [container1-278]\" prio=10 tid=6000000004839ee0 nid=430 lwp_id=9390246 waiting on condition [9ffffffe8ab00000..9ffffffe8ab00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AHNB_SOPSI_BAN_01-w03 [container1-277]\" prio=10 tid=6000000004832ba0 nid=429 lwp_id=9390245 waiting on condition [9ffffffe8ad00000..9ffffffe8ad00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AHNB_SOPSI_BAN_01-w02 [container1-269]\" prio=10 tid=6000000004830380 nid=428 lwp_id=9390244 waiting on condition [9ffffffe8af00000..9ffffffe8af00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AHNB_SOPSI_BAN_01-w01 [container1-266]\" prio=10 tid=600000000482a940 nid=427 lwp_id=9390243 waiting on condition [9ffffffe8b100000..9ffffffe8b100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"AHNB_SOPSI_BAN_01-w00 [container1-264]\" prio=10 tid=6000000004828120 nid=426 lwp_id=9390242 waiting on condition [9ffffffe8b300000..9ffffffe8b300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ACJH_SOPSI_BAN_01-acceptor\" prio=10 tid=60000000048244e0 nid=425 lwp_id=9390241 runnable [9ffffffe8b500000..9ffffffe8b500ac0]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff03861558> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"ACJH_SOPSI_BAN_01-w09 [container1-211]\" prio=10 tid=6000000004821cc0 nid=424 lwp_id=9390240 runnable [9ffffffe8b700000..9ffffffe8b700b40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff422b4bd0> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w08 [container1-210]\" prio=10 tid=60000000047ff490 nid=423 lwp_id=9390239 runnable [9ffffffe8b900000..9ffffffe8b900bc0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff421cbd90> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w07 [container1-147]\" prio=10 tid=60000000047fcc70 nid=422 lwp_id=9390238 runnable [9ffffffe8bb00000..9ffffffe8bb00c40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff422b1a10> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w06 [container1-143]\" prio=10 tid=60000000047fa450 nid=421 lwp_id=9390237 runnable [9ffffffe8bd00000..9ffffffe8bd00cc0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff422b0e60> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w05 [container1-139]\" prio=10 tid=60000000047f7c30 nid=420 lwp_id=9390236 runnable [9ffffffe8bf00000..9ffffffe8bf00d40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff421ce5a0> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w04 [container1-138]\" prio=10 tid=60000000047f5410 nid=419 lwp_id=9390235 runnable [9ffffffe8c100000..9ffffffe8c100dc0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff4206dbf8> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w03 [container1-127]\" prio=10 tid=60000000047f2bf0 nid=418 lwp_id=9390234 runnable [9ffffffe8c300000..9ffffffe8c300a40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff42119968> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w02 [container1-58]\" prio=10 tid=60000000047f03d0 nid=417 lwp_id=9390233 runnable [9ffffffe8c500000..9ffffffe8c500ac0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff422c7d58> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w01 [container1-56]\" prio=10 tid=60000000047e8290 nid=416 lwp_id=9390232 runnable [9ffffffe8c700000..9ffffffe8c700b40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff421cbde8> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJH_SOPSI_BAN_01-w00 [container1-51]\" prio=10 tid=60000000047e5a70 nid=415 lwp_id=9390231 runnable [9ffffffe8c900000..9ffffffe8c900bc0]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff421cf3b0> (a java.io.BufferedInputStream)\r\n\tat jeus.servlet.engine.ServletInputStreamImpl.read(ServletInputStreamImpl.java:46)\r\n\tat javax.servlet.ServletInputStream.readLine(ServletInputStream.java:102)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequestLine(WebServletRequest.java:127)\r\n\tat jeus.servlet.engine.WebServletRequest.readRequest(WebServletRequest.java:60)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:143)\r\n\r\n\"ACJB_SOPSI_BAN_01-acceptor\" prio=10 tid=60000000047601b0 nid=414 lwp_id=9390230 runnable [9ffffffe8cb00000..9ffffffe8cb00c40]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff03b0b768> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"ACJB_SOPSI_BAN_01-w04 [container1-317]\" prio=10 tid=600000000475fe50 nid=413 lwp_id=9390229 waiting on condition [9ffffffe8cd00000..9ffffffe8cd00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ACJB_SOPSI_BAN_01-w03 [container1-318]\" prio=10 tid=60000000047290c0 nid=412 lwp_id=9390228 waiting on condition [9ffffffe8cf00000..9ffffffe8cf00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ACJB_SOPSI_BAN_01-w02\" prio=10 tid=6000000003538b90 nid=411 lwp_id=9390227 waiting on condition [9ffffffe8d100000..9ffffffe8d100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ACJB_SOPSI_BAN_01-w01 [container1-297]\" prio=10 tid=6000000003525780 nid=410 lwp_id=9390226 waiting on condition [9ffffffe8d300000..9ffffffe8d300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ACJB_SOPSI_BAN_01-w00 [container1-296]\" prio=10 tid=6000000003524d20 nid=409 lwp_id=9390225 waiting on condition [9ffffffe8d500000..9ffffffe8d500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-acceptor\" prio=10 tid=6000000003cde580 nid=408 lwp_id=9390224 runnable [9ffffffe8d700000..9ffffffe8d700b40]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff039e23a0> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"ASHB_SOPSI_BAN_01-w09 [container1-142]\" prio=10 tid=6000000003cb1340 nid=407 lwp_id=9390223 waiting on condition [9ffffffe8d900000..9ffffffe8d900bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w08 [container1-177]\" prio=10 tid=6000000003c9eb10 nid=406 lwp_id=9390222 waiting on condition [9ffffffe8db00000..9ffffffe8db00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w07 [container1-185]\" prio=10 tid=60000000037ca0e0 nid=405 lwp_id=9390221 waiting on condition [9ffffffe8dd00000..9ffffffe8dd00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w06 [container1-140]\" prio=10 tid=60000000037c2120 nid=404 lwp_id=9390220 waiting on condition [9ffffffe8df00000..9ffffffe8df00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w05 [container1-186]\" prio=10 tid=60000000037bf900 nid=403 lwp_id=9390219 waiting on condition [9ffffffe8e100000..9ffffffe8e100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w04 [container1-187]\" prio=10 tid=60000000037bd0e0 nid=402 lwp_id=9390218 waiting on condition [9ffffffe8e300000..9ffffffe8e300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w03 [container1-198]\" prio=10 tid=60000000037ba8c0 nid=401 lwp_id=9390217 waiting on condition [9ffffffe8e500000..9ffffffe8e500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w02 [container1-251]\" prio=10 tid=60000000037b80a0 nid=400 lwp_id=9390216 waiting on condition [9ffffffe8e700000..9ffffffe8e700b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w01 [container1-263]\" prio=10 tid=60000000037b3f60 nid=399 lwp_id=9390215 waiting on condition [9ffffffe8e900000..9ffffffe8e900bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"ASHB_SOPSI_BAN_01-w00 [container1-270]\" prio=10 tid=60000000037b1740 nid=398 lwp_id=9390214 waiting on condition [9ffffffe8eb00000..9ffffffe8eb00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-acceptor\" prio=10 tid=60000000037aef20 nid=397 lwp_id=9390213 runnable [9ffffffe8ed00000..9ffffffe8ed00cc0]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff032753e0> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat jeus.servlet.connection.HttpConnector.run(HttpConnector.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"http1-w09 [container1-174]\" prio=10 tid=60000000037a7be0 nid=396 lwp_id=9390212 waiting on condition [9ffffffe8ef00000..9ffffffe8ef00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w08 [container1-171]\" prio=10 tid=60000000037a53c0 nid=395 lwp_id=9390211 waiting on condition [9ffffffe8f100000..9ffffffe8f100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w07 [container1-175]\" prio=10 tid=60000000037a2ba0 nid=394 lwp_id=9390210 waiting on condition [9ffffffe8f300000..9ffffffe8f300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w06 [container1-176]\" prio=10 tid=600000000379d160 nid=393 lwp_id=9390209 waiting on condition [9ffffffe8f500000..9ffffffe8f500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w05 [container1-182]\" prio=10 tid=600000000379a940 nid=392 lwp_id=9390208 waiting on condition [9ffffffe8f700000..9ffffffe8f700b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w04 [container1-173]\" prio=10 tid=6000000003798120 nid=391 lwp_id=9390207 waiting on condition [9ffffffe8f900000..9ffffffe8f900bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w03 [container1-170]\" prio=10 tid=600000000373cf50 nid=390 lwp_id=9390206 waiting on condition [9ffffffe8fb00000..9ffffffe8fb00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w02 [container1-184]\" prio=10 tid=600000000373bb70 nid=389 lwp_id=9390205 waiting on condition [9ffffffe8fd00000..9ffffffe8fd00cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w01 [container1-169]\" prio=10 tid=600000000350bc60 nid=388 lwp_id=9390204 waiting on condition [9ffffffe8ff00000..9ffffffe8ff00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"http1-w00 [container1-172]\" prio=10 tid=60000000034f2b80 nid=387 lwp_id=9390203 waiting on condition [9ffffffe90100000..9ffffffe90100dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat jeus.servlet.util.StandardQueue.get(StandardQueue.java:53)\r\n\tat jeus.servlet.engine.ThreadPoolManager.getConnection(ThreadPoolManager.java:332)\r\n\tat jeus.servlet.engine.HttpRequestProcessor.run(HttpRequestProcessor.java:96)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-5\" daemon prio=10 tid=6000000003c7fca0 nid=386 lwp_id=9390202 waiting on condition [9ffffffe90300000..9ffffffe90300a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"SchedulingService-2\" daemon prio=10 tid=6000000003546370 nid=385 lwp_id=9390201 waiting on condition [9ffffffe90500000..9ffffffe90500ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1803)\r\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:135)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:504)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:497)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-179\" prio=10 tid=6000000003526510 nid=384 lwp_id=9390200 waiting on condition [9ffffffe90700000..9ffffffe90700b40]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.tmax.ebxml.trp.rm.RetryThread.run(RetryThread.java:148)\r\n\r\n\"Thread-178\" prio=10 tid=600000000350c170 nid=383 lwp_id=9390199 waiting on condition [9ffffffe90900000..9ffffffe90900bc0]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.tmax.ebxml.trp.rm.PersistThread.run(PersistThread.java:100)\r\n\r\n\"Thread-180\" prio=10 tid=60000000034ce9a0 nid=382 lwp_id=9390198 waiting on condition [9ffffffe90b00000..9ffffffe90b00c40]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.tmax.ebxml.trp.rm.RMControlScheduler.run(RMControlScheduler.java:69)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"DistributedSessionRouterAcceptor-Selector\" daemon prio=10 tid=60000000034fc8d0 nid=381 lwp_id=9390197 runnable [9ffffffe90d00000..9ffffffe90d00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff02c8ab20> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff02c8ab08> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff02c8a998> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"DistributedSessionServerAcceptor-1\" daemon prio=10 tid=60000000034ce230 nid=380 lwp_id=9390196 in Object.wait() [9ffffffe90f00000..9ffffffe90f00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03eedaf0> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff03eedaf0> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"DistributedSessionServerAcceptor-0\" daemon prio=10 tid=600000000349b520 nid=379 lwp_id=9390195 in Object.wait() [9fffffffb8f00000..9fffffffb8f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03eedaf0> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff03eedaf0> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Job_Executor8\" daemon prio=10 tid=6000000003c0a0a0 nid=378 lwp_id=9390194 in Object.wait() [9ffffffe91100000..9ffffffe91100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff41f3fb50> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:183)\r\n\t- locked <9fffffff41f3fb50> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor7\" daemon prio=10 tid=60000000035b4a90 nid=377 lwp_id=9390192 in Object.wait() [9ffffffe91300000..9ffffffe91300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff41f80340> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:183)\r\n\t- locked <9fffffff41f80340> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Thread-177\" daemon prio=10 tid=600000000357ba90 nid=376 lwp_id=9390191 waiting on condition [9ffffffe91500000..9ffffffe91500b40]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.sun.jmx.remote.opt.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:154)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Job_Executor6\" daemon prio=10 tid=6000000003539e50 nid=375 lwp_id=9390190 in Object.wait() [9ffffffe91700000..9ffffffe91700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03fdb3a8> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:183)\r\n\t- locked <9fffffff03fdb3a8> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor5\" daemon prio=10 tid=60000000001f77d0 nid=374 lwp_id=9390187 runnable [9ffffffe91900000..9ffffffe91900c40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff03ff43e8> (a java.io.BufferedInputStream)\r\n\tat java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2196)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2486)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2496)\r\n\tat java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1273)\r\n\tat java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)\r\n\tat com.sun.jmx.remote.socket.SocketConnection.readMessage(SocketConnection.java:211)\r\n\tat com.sun.jmx.remote.generic.ClientSynchroMessageConnectionImpl$MessageReader.run(ClientSynchroMessageConnectionImpl.java:391)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:208)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Job_Executor4\" daemon prio=10 tid=60000000034d56f0 nid=373 lwp_id=9390182 in Object.wait() [9ffffffe91b00000..9ffffffe91b00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff420c05b0> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:183)\r\n\t- locked <9fffffff420c05b0> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Thread-176\" daemon prio=10 tid=60000000034d5390 nid=372 lwp_id=9390181 waiting on condition [9ffffffe91d00000..9ffffffe91d00d40]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.sun.jmx.remote.opt.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:154)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-4\" daemon prio=10 tid=60000000040705c0 nid=371 lwp_id=9390179 waiting on condition [9ffffffe91f00000..9ffffffe91f00dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-3\" daemon prio=10 tid=6000000003c67ca0 nid=370 lwp_id=9390178 waiting on condition [9ffffffe92100000..9ffffffe92100a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-2\" daemon prio=10 tid=600000000401f460 nid=369 lwp_id=9390177 waiting on condition [9ffffffe92300000..9ffffffe92300ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OracleTimeoutPollingThread\" daemon prio=10 tid=6000000003c5fed0 nid=368 lwp_id=9390175 waiting on condition [9ffffffe92500000..9ffffffe92500b40]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat oracle.jdbc.driver.OracleTimeoutPollingThread.run(OracleTimeoutPollingThread.java:158)\r\n\r\n\"SchedulingService-1\" daemon prio=10 tid=60000000038bf5f0 nid=367 lwp_id=9390174 waiting on condition [9ffffffe92700000..9ffffffe92700bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1803)\r\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:135)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:504)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:497)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"[__DEFAULT_SERVICE_GROUP__]listener pool-2-thread-1\" daemon prio=10 tid=600000000389ce80 nid=366 lwp_id=9390173 waiting on condition [9ffffffe92900000..9ffffffe92900c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.PriorityBlockingQueue.take(PriorityBlockingQueue.java:200)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-175\" daemon prio=10 tid=60000000034ab600 nid=365 lwp_id=9390172 in Object.wait() [9ffffffe92b00000..9ffffffe92b00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0484ded8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0484ded8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LIND_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000034a8de0 nid=364 lwp_id=9390171 runnable [9ffffffe92d00000..9ffffffe92d00d40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04877438> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LIND_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000034a65c0 nid=363 lwp_id=9390170 runnable [9ffffffe92f00000..9ffffffe92f00dc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04543c68> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04543c50> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04543af0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-174\" daemon prio=10 tid=600000000349ff40 nid=362 lwp_id=9390169 in Object.wait() [9ffffffe93100000..9ffffffe93100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04877208> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04877208> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-ACJB_SOPSI_BAN_01\" daemon prio=10 tid=6000000000247030 nid=361 lwp_id=9390168 in Object.wait() [9ffffffe93300000..9ffffffe93300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0427b1f8> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff0427b1f8> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"scheduler\" daemon prio=10 tid=60000000001f6400 nid=360 lwp_id=9390167 in Object.wait() [9ffffffe93500000..9ffffffe93500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04883cd0> (a com.tmax.anylink.scheduler.Scheduler$SchedulingThread)\r\n\tat com.tmax.anylink.scheduler.Scheduler$SchedulingThread.run(Scheduler.java:232)\r\n\t- locked <9fffffff04883cd0> (a com.tmax.anylink.scheduler.Scheduler$SchedulingThread)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-171\" daemon prio=10 tid=60000000034957c0 nid=359 lwp_id=9390166 in Object.wait() [9ffffffe93700000..9ffffffe93700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff048a2290> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff048a2290> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LCTB_BAN_SIA_11-Acceptor\" daemon prio=10 tid=6000000003491040 nid=358 lwp_id=9390165 runnable [9ffffffe93900000..9ffffffe93900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff048b1758> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LCTB_BAN_SIA_11-Selector\" daemon prio=10 tid=600000000348e820 nid=357 lwp_id=9390164 runnable [9ffffffe93b00000..9ffffffe93b00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0456d630> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0456d618> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0456d4b8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-170\" daemon prio=10 tid=6000000003489420 nid=356 lwp_id=9390163 in Object.wait() [9ffffffe93d00000..9ffffffe93d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff048b1528> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff048b1528> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-169\" daemon prio=10 tid=6000000003486c00 nid=355 lwp_id=9390162 in Object.wait() [9ffffffe93f00000..9ffffffe93f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04988fd0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04988fd0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-168\" daemon prio=10 tid=60000000034811c0 nid=354 lwp_id=9390161 in Object.wait() [9ffffffe94100000..9ffffffe94100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04a1a5f0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04a1a5f0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBCW_BTB_SIA_11-Acceptor\" daemon prio=10 tid=600000000347e9a0 nid=353 lwp_id=9390160 runnable [9ffffffe94300000..9ffffffe94300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04a1e638> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBCW_BTB_SIA_11-Selector\" daemon prio=10 tid=600000000347ad60 nid=352 lwp_id=9390159 runnable [9ffffffe94500000..9ffffffe94500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0456cb10> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0456caf8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0456c998> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-167\" daemon prio=10 tid=6000000003478540 nid=351 lwp_id=9390158 in Object.wait() [9ffffffe94700000..9ffffffe94700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04a2b890> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04a2b890> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-166\" daemon prio=10 tid=6000000003474900 nid=350 lwp_id=9390157 in Object.wait() [9ffffffe94900000..9ffffffe94900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04a1ebc0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04a1ebc0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSHB_BTD_SIA_02-Acceptor\" daemon prio=10 tid=60000000034720e0 nid=349 lwp_id=9390156 runnable [9ffffffe94b00000..9ffffffe94b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04a3f240> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSHB_BTD_SIA_02-Selector\" daemon prio=10 tid=600000000346f8c0 nid=348 lwp_id=9390155 runnable [9ffffffe94d00000..9ffffffe94d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04550b30> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04550b18> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff045509b8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-165\" daemon prio=10 tid=600000000346d0a0 nid=347 lwp_id=9390154 in Object.wait() [9ffffffe94f00000..9ffffffe94f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04a3f010> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04a3f010> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSHB_BTD_SIA_01-Acceptor\" daemon prio=10 tid=600000000346a880 nid=346 lwp_id=9390153 runnable [9ffffffe95100000..9ffffffe95100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04a3e668> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSHB_BTD_SIA_01-Selector\" daemon prio=10 tid=6000000003468060 nid=345 lwp_id=9390152 runnable [9ffffffe95300000..9ffffffe95300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0455fd68> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0455fd50> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0455fbf0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-164\" daemon prio=10 tid=6000000003465840 nid=344 lwp_id=9390151 in Object.wait() [9ffffffe95500000..9ffffffe95500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04a3e438> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04a3e438> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-163\" daemon prio=10 tid=6000000003461700 nid=343 lwp_id=9390150 in Object.wait() [9ffffffe95700000..9ffffffe95700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04aa4080> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04aa4080> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-162\" daemon prio=10 tid=600000000345eee0 nid=342 lwp_id=9390149 in Object.wait() [9ffffffe95900000..9ffffffe95900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04abfcc8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04abfcc8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKDB_BAN_SIA_12-Acceptor\" daemon prio=10 tid=600000000345c6c0 nid=341 lwp_id=9390148 runnable [9ffffffe95b00000..9ffffffe95b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04adde10> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKDB_BAN_SIA_12-Selector\" daemon prio=10 tid=6000000003459ea0 nid=340 lwp_id=9390147 runnable [9ffffffe95d00000..9ffffffe95d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0455f1c8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0455f1b0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0455f050> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-161\" daemon prio=10 tid=6000000003457680 nid=339 lwp_id=9390146 in Object.wait() [9ffffffe95f00000..9ffffffe95f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04addbe0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04addbe0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKDB_BAN_AAA_11-Acceptor\" daemon prio=10 tid=6000000003454e60 nid=338 lwp_id=9390145 runnable [9ffffffe96100000..9ffffffe96100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04ad3220> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKDB_BAN_AAA_11-Selector\" daemon prio=10 tid=6000000003451220 nid=337 lwp_id=9390144 runnable [9ffffffe96300000..9ffffffe96300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04551710> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff045516f8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04551598> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-160\" daemon prio=10 tid=600000000344ea00 nid=336 lwp_id=9390143 in Object.wait() [9ffffffe96500000..9ffffffe96500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ad2ff0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04ad2ff0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-159\" daemon prio=10 tid=600000000344c1e0 nid=335 lwp_id=9390142 in Object.wait() [9ffffffe96700000..9ffffffe96700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ad8b58> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04ad8b58> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKID_BTD_SIA_11-Acceptor\" daemon prio=10 tid=60000000034499c0 nid=334 lwp_id=9390141 runnable [9ffffffe96900000..9ffffffe96900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04afc4c0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKID_BTD_SIA_11-Selector\" daemon prio=10 tid=60000000034481e0 nid=333 lwp_id=9390140 runnable [9ffffffe96b00000..9ffffffe96b00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0455e518> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0455e500> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0455e3a0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-158\" daemon prio=10 tid=6000000003440ea0 nid=332 lwp_id=9390139 in Object.wait() [9ffffffe96d00000..9ffffffe96d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04afc290> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04afc290> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-157\" daemon prio=10 tid=600000000343e680 nid=331 lwp_id=9390138 in Object.wait() [9ffffffe96f00000..9ffffffe96f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04b2e610> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04b2e610> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISB_BTB_SIA_11-Acceptor\" daemon prio=10 tid=600000000343be60 nid=330 lwp_id=9390137 runnable [9ffffffe97100000..9ffffffe97100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04b45e00> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISB_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000003439640 nid=329 lwp_id=9390136 runnable [9ffffffe97300000..9ffffffe97300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0457a328> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0457a310> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0457a1b0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-156\" daemon prio=10 tid=6000000003435a00 nid=328 lwp_id=9390135 in Object.wait() [9ffffffe97500000..9ffffffe97500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04b45bd0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04b45bd0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-ASHB_SOPSI_BAN_01\" daemon prio=10 tid=60000000034331e0 nid=327 lwp_id=9390134 in Object.wait() [9ffffffe97700000..9ffffffe97700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0426d910> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff0426d910> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-154\" daemon prio=10 tid=600000000342f0a0 nid=326 lwp_id=9390133 in Object.wait() [9ffffffe97900000..9ffffffe97900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04bc4f70> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04bc4f70> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-AMZF_TMXSO_BAN_01\" daemon prio=10 tid=600000000342c880 nid=325 lwp_id=9390132 in Object.wait() [9ffffffe97b00000..9ffffffe97b00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04c080f8> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener.run(AsyncOutboundGateway.java:125)\r\n\t- locked <9fffffff04c080f8> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-152\" daemon prio=10 tid=600000000342a060 nid=324 lwp_id=9390131 in Object.wait() [9ffffffe97d00000..9ffffffe97d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04c1b030> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04c1b030> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-151\" daemon prio=10 tid=6000000003427840 nid=323 lwp_id=9390130 in Object.wait() [9ffffffe97f00000..9ffffffe97f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04c2d230> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04c2d230> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LWBP_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000003425020 nid=322 lwp_id=9390129 runnable [9ffffffe98100000..9ffffffe98100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04c46230> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LWBP_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000034213e0 nid=321 lwp_id=9390128 runnable [9ffffffe98300000..9ffffffe98300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0481d2e8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0481d2d0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0481d170> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-150\" daemon prio=10 tid=600000000341b9a0 nid=320 lwp_id=9390127 in Object.wait() [9ffffffe98500000..9ffffffe98500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04c46a10> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04c46a10> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-149\" daemon prio=10 tid=6000000003419180 nid=319 lwp_id=9390126 in Object.wait() [9ffffffe98700000..9ffffffe98700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04586c98> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04586c98> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKB__BAN_AIO_01-Selector\" daemon prio=10 tid=6000000003416960 nid=318 lwp_id=9390125 runnable [9ffffffe98900000..9ffffffe98900c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff047ee3b8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff047ee3a0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff047ee138> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-148\" daemon prio=10 tid=6000000003414140 nid=317 lwp_id=9390124 in Object.wait() [9ffffffe98b00000..9ffffffe98b00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff047e5da8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff047e5da8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKB__BAN_AII_01-Selector\" daemon prio=10 tid=6000000003411920 nid=316 lwp_id=9390123 runnable [9ffffffe98d00000..9ffffffe98d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0457afa8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0457af90> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0457ae30> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-147\" daemon prio=10 tid=600000000340f100 nid=315 lwp_id=9390122 in Object.wait() [9ffffffe98f00000..9ffffffe98f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04592e98> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04592e98> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-146\" daemon prio=10 tid=600000000340c8e0 nid=314 lwp_id=9390121 in Object.wait() [9ffffffe99100000..9ffffffe99100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04d04a98> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04d04a98> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LITS_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000003407b20 nid=313 lwp_id=9390120 runnable [9ffffffe99300000..9ffffffe99300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04d21b00> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LITS_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000003403ee0 nid=312 lwp_id=9390119 runnable [9ffffffe99500000..9ffffffe99500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0481ca48> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0481ca30> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0481c8d0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-145\" daemon prio=10 tid=60000000034016c0 nid=311 lwp_id=9390118 in Object.wait() [9ffffffe99700000..9ffffffe99700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04d222e0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04d222e0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-AMZF_TMXSO_BTD_01\" daemon prio=10 tid=60000000033fd580 nid=310 lwp_id=9390117 in Object.wait() [9ffffffe99900000..9ffffffe99900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04dc1e68> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener.run(AsyncOutboundGateway.java:125)\r\n\t- locked <9fffffff04dc1e68> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-143\" daemon prio=10 tid=60000000033f71b0 nid=309 lwp_id=9390116 in Object.wait() [9ffffffe99b00000..9ffffffe99b00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04dd5d20> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04dd5d20> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LWCI_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000033f4990 nid=308 lwp_id=9390115 runnable [9ffffffe99d00000..9ffffffe99d00d40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04de0d50> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LWCI_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000033f2170 nid=307 lwp_id=9390114 runnable [9ffffffe99f00000..9ffffffe99f00dc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0481c1a8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0481c190> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0481c030> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-142\" daemon prio=10 tid=60000000033ef950 nid=306 lwp_id=9390113 in Object.wait() [9ffffffe9a100000..9ffffffe9a100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04de5550> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04de5550> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-141\" daemon prio=10 tid=60000000033ed130 nid=305 lwp_id=9390112 in Object.wait() [9ffffffe9a300000..9ffffffe9a300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04dc4bf0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04dc4bf0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-140\" daemon prio=10 tid=60000000033e94f0 nid=304 lwp_id=9390111 in Object.wait() [9ffffffe9a500000..9ffffffe9a500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04e56118> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04e56118> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-139\" daemon prio=10 tid=60000000033e6cd0 nid=303 lwp_id=9390110 in Object.wait() [9ffffffe9a700000..9ffffffe9a700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04e5f040> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04e5f040> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LHRC_BTB _SIA_11-Acceptor\" daemon prio=10 tid=60000000033ded10 nid=302 lwp_id=9390109 runnable [9ffffffe9a900000..9ffffffe9a900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04e72548> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LHRC_BTB _SIA_11-Selector\" daemon prio=10 tid=60000000033dc4f0 nid=301 lwp_id=9390108 runnable [9ffffffe9ab00000..9ffffffe9ab00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048158a0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04815888> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04815728> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-138\" daemon prio=10 tid=60000000033d9cd0 nid=300 lwp_id=9390107 in Object.wait() [9ffffffe9ad00000..9ffffffe9ad00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04e72d28> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04e72d28> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-137\" daemon prio=10 tid=60000000033d2990 nid=299 lwp_id=9390106 in Object.wait() [9ffffffe9af00000..9ffffffe9af00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04e631b8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04e631b8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-APUB_X25SA_BTD_01\" daemon prio=10 tid=60000000033d0170 nid=298 lwp_id=9390105 in Object.wait() [9ffffffe9b100000..9ffffffe9b100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ea74e8> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener.run(AsyncOutboundGateway.java:125)\r\n\t- locked <9fffffff04ea74e8> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-135\" daemon prio=10 tid=60000000033cd950 nid=297 lwp_id=9390104 in Object.wait() [9ffffffe9b300000..9ffffffe9b300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ec0888> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04ec0888> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-134\" daemon prio=10 tid=60000000033c9d10 nid=296 lwp_id=9390103 in Object.wait() [9ffffffe9b500000..9ffffffe9b500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ec7020> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04ec7020> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISF_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000033c74f0 nid=295 lwp_id=9390102 runnable [9ffffffe9b700000..9ffffffe9b700bc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04ed8178> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISF_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000033c4cd0 nid=294 lwp_id=9390101 runnable [9ffffffe9b900000..9ffffffe9b900c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff047fa288> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff047fa270> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff047fa110> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-133\" daemon prio=10 tid=60000000033c0b90 nid=293 lwp_id=9390100 in Object.wait() [9ffffffe9bb00000..9ffffffe9bb00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ed86f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04ed86f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-AMZF_TMXSO_BTB_01\" daemon prio=10 tid=60000000033be370 nid=292 lwp_id=9390099 in Object.wait() [9ffffffe9bd00000..9ffffffe9bd00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ee57a8> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener.run(AsyncOutboundGateway.java:125)\r\n\t- locked <9fffffff04ee57a8> (a com.tmax.probus.gateway.framework.outbound.AsyncOutboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-131\" daemon prio=10 tid=60000000033bbb50 nid=291 lwp_id=9390098 in Object.wait() [9ffffffe9bf00000..9ffffffe9bf00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ee2000> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04ee2000> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000033b9330 nid=290 lwp_id=9390097 runnable [9ffffffe9c100000..9ffffffe9c100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04f21290> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000033b56f0 nid=289 lwp_id=9390096 runnable [9ffffffe9c300000..9ffffffe9c300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0481ddb8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0481dda0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0481dc40> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-130\" daemon prio=10 tid=60000000033aaa30 nid=288 lwp_id=9390095 in Object.wait() [9ffffffe9c500000..9ffffffe9c500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04f21060> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04f21060> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-129\" daemon prio=10 tid=60000000033a8210 nid=287 lwp_id=9390094 in Object.wait() [9ffffffe9c700000..9ffffffe9c700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04fb2100> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04fb2100> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_13-Acceptor\" daemon prio=10 tid=60000000033a59f0 nid=286 lwp_id=9390093 runnable [9ffffffe9c900000..9ffffffe9c900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04fc4c38> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_13-Selector\" daemon prio=10 tid=60000000033a1db0 nid=285 lwp_id=9390092 runnable [9ffffffe9cb00000..9ffffffe9cb00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048337e8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048337d0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04833670> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-128\" daemon prio=10 tid=600000000339f590 nid=284 lwp_id=9390091 in Object.wait() [9ffffffe9cd00000..9ffffffe9cd00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04fc4a08> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04fc4a08> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_12-Acceptor\" daemon prio=10 tid=600000000339cd70 nid=283 lwp_id=9390090 runnable [9ffffffe9cf00000..9ffffffe9cf00dc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04ff0f00> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_12-Selector\" daemon prio=10 tid=600000000339a550 nid=282 lwp_id=9390089 runnable [9ffffffe9d100000..9ffffffe9d100a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04832cc8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04832cb0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04832b50> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-127\" daemon prio=10 tid=6000000003397d30 nid=281 lwp_id=9390088 in Object.wait() [9ffffffe9d300000..9ffffffe9d300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ff0cd0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04ff0cd0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-126\" daemon prio=10 tid=6000000003395510 nid=280 lwp_id=9390087 in Object.wait() [9ffffffe9d500000..9ffffffe9d500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ff1700> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04ff1700> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LDON_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000003392cf0 nid=279 lwp_id=9390086 runnable [9ffffffe9d700000..9ffffffe9d700bc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05001b08> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LDON_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000033904d0 nid=278 lwp_id=9390085 runnable [9ffffffe9d900000..9ffffffe9d900c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04822a90> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04822a78> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04822918> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-125\" daemon prio=10 tid=600000000338c390 nid=277 lwp_id=9390084 in Object.wait() [9ffffffe9db00000..9ffffffe9db00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05002088> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05002088> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-124\" daemon prio=10 tid=6000000003389b70 nid=276 lwp_id=9390083 in Object.wait() [9ffffffe9dd00000..9ffffffe9dd00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05014d48> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05014d48> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LGHN_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000003384770 nid=275 lwp_id=9390082 runnable [9ffffffe9df00000..9ffffffe9df00dc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff050056c0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LGHN_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000003381f50 nid=274 lwp_id=9390081 runnable [9ffffffe9e100000..9ffffffe9e100a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0482bca8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0482bc90> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0482bb30> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-123\" daemon prio=10 tid=600000000337f730 nid=273 lwp_id=9390080 in Object.wait() [9ffffffe9e300000..9ffffffe9e300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff050059b0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff050059b0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-122\" daemon prio=10 tid=600000000337baf0 nid=272 lwp_id=9390079 in Object.wait() [9ffffffe9e500000..9ffffffe9e500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff050ae9d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff050ae9d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_14-Acceptor\" daemon prio=10 tid=60000000033792d0 nid=271 lwp_id=9390078 runnable [9ffffffe9e700000..9ffffffe9e700bc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff050b8250> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LMST_BTB_SIA_14-Selector\" daemon prio=10 tid=6000000003376ab0 nid=270 lwp_id=9390077 runnable [9ffffffe9e900000..9ffffffe9e900c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0482b068> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0482b050> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0482aef0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-121\" daemon prio=10 tid=6000000003374290 nid=269 lwp_id=9390076 in Object.wait() [9ffffffe9eb00000..9ffffffe9eb00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff050b6008> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff050b6008> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-ACJH_SOPSI_BAN_01\" daemon prio=10 tid=6000000003371a70 nid=268 lwp_id=9390075 in Object.wait() [9ffffffe9ed00000..9ffffffe9ed00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04e9a358> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff04e9a358> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-119\" daemon prio=10 tid=600000000331a3a0 nid=267 lwp_id=9390074 in Object.wait() [9ffffffe9ef00000..9ffffffe9ef00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff050b8cf8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff050b8cf8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LPRI_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000003317b80 nid=266 lwp_id=9390073 runnable [9ffffffe9f100000..9ffffffe9f100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff050bff18> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LPRI_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000003315360 nid=265 lwp_id=9390072 runnable [9ffffffe9f300000..9ffffffe9f300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04823680> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04823668> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04823508> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-118\" daemon prio=10 tid=600000000330da40 nid=264 lwp_id=9390071 in Object.wait() [9ffffffe9f500000..9ffffffe9f500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff050bfce8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff050bfce8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-117\" daemon prio=10 tid=60000000032e0cc0 nid=263 lwp_id=9390070 in Object.wait() [9ffffffe9f700000..9ffffffe9f700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff050f49d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff050f49d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBHN_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000032de4a0 nid=262 lwp_id=9390069 runnable [9ffffffe9f900000..9ffffffe9f900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff051428b0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBHN_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000032dbc80 nid=261 lwp_id=9390068 runnable [9ffffffe9fb00000..9ffffffe9fb00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0482a458> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0482a440> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0482a2e0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-116\" daemon prio=10 tid=60000000032610e0 nid=260 lwp_id=9390067 in Object.wait() [9ffffffe9fd00000..9ffffffe9fd00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05142e30> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05142e30> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-115\" daemon prio=10 tid=60000000031e5ea0 nid=259 lwp_id=9390066 in Object.wait() [9ffffffe9ff00000..9ffffffe9ff00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff051431c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff051431c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBLS_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000031e3680 nid=258 lwp_id=9390065 runnable [9ffffffea0100000..9ffffffea0100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff051561f0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBLS_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000031e0e60 nid=257 lwp_id=9390064 runnable [9ffffffea0300000..9ffffffea0300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0483a4f0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0483a4d8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0483a378> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-114\" daemon prio=10 tid=60000000031de640 nid=256 lwp_id=9390063 in Object.wait() [9ffffffea0500000..9ffffffea0500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0515a9e8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0515a9e8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-113\" daemon prio=10 tid=60000000031dbe20 nid=255 lwp_id=9390062 in Object.wait() [9ffffffea0700000..9ffffffea0700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0514ede0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0514ede0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LCGI_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000031d63e0 nid=254 lwp_id=9390061 runnable [9ffffffea0900000..9ffffffea0900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05170628> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LCGI_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000031d3bc0 nid=253 lwp_id=9390060 runnable [9ffffffea0b00000..9ffffffea0b00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0487de40> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0487de28> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0487dcc8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-112\" daemon prio=10 tid=60000000031d13a0 nid=252 lwp_id=9390059 in Object.wait() [9ffffffea0d00000..9ffffffea0d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff051703f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff051703f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-AHNB_SOPSI_BAN_01\" daemon prio=10 tid=60000000031ceb80 nid=251 lwp_id=9390058 in Object.wait() [9ffffffea0f00000..9ffffffea0f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04ea51f0> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff04ea51f0> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-110\" daemon prio=10 tid=60000000001f7060 nid=250 lwp_id=9390057 in Object.wait() [9ffffffea1100000..9ffffffea1100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04854ea0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff04854ea0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIC_BTB_SOA_11-Selector\" daemon prio=10 tid=60000000031c5930 nid=249 lwp_id=9390056 runnable [9ffffffea1300000..9ffffffea1300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048541f8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048541e0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04854080> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-109\" daemon prio=10 tid=60000000031c3110 nid=248 lwp_id=9390055 in Object.wait() [9ffffffea1500000..9ffffffea1500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04865898> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff04865898> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-108\" daemon prio=10 tid=60000000031c08f0 nid=247 lwp_id=9390054 in Object.wait() [9ffffffea1700000..9ffffffea1700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff051ec8d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff051ec8d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LTNG_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000031be0d0 nid=246 lwp_id=9390053 runnable [9ffffffea1900000..9ffffffea1900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff051fd880> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LTNG_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000031bb8b0 nid=245 lwp_id=9390052 runnable [9ffffffea1b00000..9ffffffea1b00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0483b0b8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0483b0a0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0483af40> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-107\" daemon prio=10 tid=60000000031b9090 nid=244 lwp_id=9390051 in Object.wait() [9ffffffea1d00000..9ffffffea1d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff051fde00> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff051fde00> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-AFNB_EBXSI_BAN_01\" daemon prio=10 tid=60000000031b4f50 nid=243 lwp_id=9390050 in Object.wait() [9ffffffea1f00000..9ffffffea1f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0426c048> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff0426c048> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-105\" daemon prio=10 tid=60000000031b1310 nid=242 lwp_id=9390049 in Object.wait() [9ffffffea2100000..9ffffffea2100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05203830> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05203830> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNCE_BTD_SIA_14-Acceptor\" daemon prio=10 tid=60000000031aeaf0 nid=241 lwp_id=9390048 runnable [9ffffffea2300000..9ffffffea2300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff052231b0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNCE_BTD_SIA_14-Selector\" daemon prio=10 tid=60000000031ac2d0 nid=240 lwp_id=9390047 runnable [9ffffffea2500000..9ffffffea2500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04845580> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04845568> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04845408> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-104\" daemon prio=10 tid=60000000031a9ab0 nid=239 lwp_id=9390046 in Object.wait() [9ffffffea2700000..9ffffffea2700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05222f80> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05222f80> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-103\" daemon prio=10 tid=60000000031a7290 nid=238 lwp_id=9390045 in Object.wait() [9ffffffea2900000..9ffffffea2900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff052366b8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff052366b8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LICC_BTB_SIA_11-Acceptor\" daemon prio=10 tid=60000000031a4a70 nid=237 lwp_id=9390044 runnable [9ffffffea2b00000..9ffffffea2b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05245918> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LICC_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000031a2250 nid=236 lwp_id=9390043 runnable [9ffffffea2d00000..9ffffffea2d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0483bb98> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0483bb80> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0483ba20> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-102\" daemon prio=10 tid=600000000319fa30 nid=235 lwp_id=9390042 in Object.wait() [9ffffffea2f00000..9ffffffea2f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff052456e8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff052456e8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-101\" daemon prio=10 tid=600000000319d210 nid=234 lwp_id=9390041 in Object.wait() [9ffffffea3100000..9ffffffea3100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff052a49f8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff052a49f8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LPAX_BTB_SIA_11-Acceptor\" daemon prio=10 tid=600000000319a9f0 nid=233 lwp_id=9390040 runnable [9ffffffea3300000..9ffffffea3300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff052b99c8> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LPAX_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000003192290 nid=232 lwp_id=9390039 runnable [9ffffffea3500000..9ffffffea3500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04844988> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04844970> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04844810> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-100\" daemon prio=10 tid=600000000318fa70 nid=231 lwp_id=9390038 in Object.wait() [9ffffffea3700000..9ffffffea3700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff052ba1a8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff052ba1a8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-99\" daemon prio=10 tid=600000000318d250 nid=230 lwp_id=9390037 in Object.wait() [9ffffffea3900000..9ffffffea3900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff052d1088> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff052d1088> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LJBB_BAN_SIA_11-Acceptor\" daemon prio=10 tid=600000000318aa30 nid=229 lwp_id=9390036 runnable [9ffffffea3b00000..9ffffffea3b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff052f48d0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LJBB_BAN_SIA_11-Selector\" daemon prio=10 tid=6000000003188210 nid=228 lwp_id=9390035 runnable [9ffffffea3d00000..9ffffffea3d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04887ac0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04887aa8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04887948> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-98\" daemon prio=10 tid=60000000031840d0 nid=227 lwp_id=9390034 in Object.wait() [9ffffffea3f00000..9ffffffea3f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff052f46a0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff052f46a0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-97\" daemon prio=10 tid=60000000031818b0 nid=226 lwp_id=9390033 in Object.wait() [9ffffffea4100000..9ffffffea4100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0535a8d8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0535a8d8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIC_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000002d39960 nid=225 lwp_id=9390032 runnable [9ffffffea4300000..9ffffffea4300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05365928> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIC_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000002d35d20 nid=224 lwp_id=9390031 runnable [9ffffffea4500000..9ffffffea4500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048aafe8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048aafd0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048aae70> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-96\" daemon prio=10 tid=6000000002d33500 nid=223 lwp_id=9390030 in Object.wait() [9ffffffea4700000..9ffffffea4700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05366108> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05366108> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-95\" daemon prio=10 tid=6000000002d30ce0 nid=222 lwp_id=9390029 in Object.wait() [9ffffffea4900000..9ffffffea4900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05382640> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05382640> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBKS_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000002d2e4c0 nid=221 lwp_id=9390028 runnable [9ffffffea4b00000..9ffffffea4b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05391fc8> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBKS_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000002d28a80 nid=220 lwp_id=9390027 runnable [9ffffffea4d00000..9ffffffea4d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048aa4c8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048aa4b0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048aa350> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-94\" daemon prio=10 tid=6000000002d17be0 nid=219 lwp_id=9390026 in Object.wait() [9ffffffea4f00000..9ffffffea4f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0539a890> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0539a890> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-93\" daemon prio=10 tid=6000000002d153c0 nid=218 lwp_id=9390025 in Object.wait() [9ffffffea5100000..9ffffffea5100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05438488> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05438488> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-92\" daemon prio=10 tid=6000000002d12ba0 nid=217 lwp_id=9390024 in Object.wait() [9ffffffea5300000..9ffffffea5300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05443210> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05443210> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-91\" daemon prio=10 tid=6000000002d0ef60 nid=216 lwp_id=9390023 in Object.wait() [9ffffffea5500000..9ffffffea5500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff054eb6b0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff054eb6b0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-90\" daemon prio=10 tid=6000000002d0c740 nid=215 lwp_id=9390022 in Object.wait() [9ffffffea5700000..9ffffffea5700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05500b58> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05500b58> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-89\" daemon prio=10 tid=6000000002d09f20 nid=214 lwp_id=9390021 in Object.wait() [9ffffffea5900000..9ffffffea5900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0550bf48> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0550bf48> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISL_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000002d07700 nid=213 lwp_id=9390020 runnable [9ffffffea5b00000..9ffffffea5b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05519e68> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISL_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000002d04ee0 nid=212 lwp_id=9390019 runnable [9ffffffea5d00000..9ffffffea5d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048906c8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048906b0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04890550> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-88\" daemon prio=10 tid=6000000002d026c0 nid=211 lwp_id=9390018 in Object.wait() [9ffffffea5f00000..9ffffffea5f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff055246f0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff055246f0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-87\" daemon prio=10 tid=6000000002cd3e10 nid=210 lwp_id=9390017 in Object.wait() [9ffffffea6100000..9ffffffea6100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff055aef30> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff055aef30> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKEB_BAN_SIA_11-Acceptor\" daemon prio=10 tid=6000000002ccf690 nid=209 lwp_id=9390016 runnable [9ffffffea6300000..9ffffffea6300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff055c44a0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKEB_BAN_SIA_11-Selector\" daemon prio=10 tid=6000000002ccba50 nid=208 lwp_id=9390015 runnable [9ffffffea6500000..9ffffffea6500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0489d8a8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0489d890> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0489d730> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-86\" daemon prio=10 tid=6000000002cc9230 nid=207 lwp_id=9390014 in Object.wait() [9ffffffea6700000..9ffffffea6700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff055c4270> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff055c4270> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-85\" daemon prio=10 tid=6000000002cc6a10 nid=206 lwp_id=9390013 in Object.wait() [9ffffffea6900000..9ffffffea6900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff055e2740> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff055e2740> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-84\" daemon prio=10 tid=6000000002cc41f0 nid=205 lwp_id=9390012 in Object.wait() [9ffffffea6b00000..9ffffffea6b00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff055ef590> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff055ef590> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-83\" daemon prio=10 tid=6000000002cc19d0 nid=204 lwp_id=9390011 in Object.wait() [9ffffffea6d00000..9ffffffea6d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056013f8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff056013f8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSNS_BTD_AIA_02-Acceptor\" daemon prio=10 tid=6000000001bd6660 nid=203 lwp_id=9390010 runnable [9ffffffea6f00000..9ffffffea6f00dc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff056132a8> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSNS_BTD_AIA_02-Selector\" daemon prio=10 tid=6000000001bce6a0 nid=202 lwp_id=9390009 runnable [9ffffffea7100000..9ffffffea7100a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0489cd08> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0489ccf0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0489cb90> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-82\" daemon prio=10 tid=6000000001bcaa60 nid=201 lwp_id=9390008 in Object.wait() [9ffffffea7300000..9ffffffea7300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05613078> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05613078> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSNS_BTD_AIA_01-Acceptor\" daemon prio=10 tid=6000000001bc8240 nid=200 lwp_id=9390007 runnable [9ffffffea7500000..9ffffffea7500b40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05614150> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LSNS_BTD_AIA_01-Selector\" daemon prio=10 tid=6000000001bad4d0 nid=199 lwp_id=9390006 runnable [9ffffffea7700000..9ffffffea7700bc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04891290> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04891278> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04891118> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-81\" daemon prio=10 tid=6000000001baacb0 nid=198 lwp_id=9390005 in Object.wait() [9ffffffea7900000..9ffffffea7900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05613f20> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05613f20> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-80\" daemon prio=10 tid=6000000001ba8490 nid=197 lwp_id=9390004 in Object.wait() [9ffffffea7b00000..9ffffffea7b00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0562b7f0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0562b7f0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-79\" daemon prio=10 tid=6000000001ba5c70 nid=196 lwp_id=9390003 in Object.wait() [9ffffffea7d00000..9ffffffea7d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056426a0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff056426a0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-78\" daemon prio=10 tid=6000000001ba2030 nid=195 lwp_id=9390002 in Object.wait() [9ffffffea7f00000..9ffffffea7f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056588c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff056588c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LTGB_BAN_SIA_11-Acceptor\" daemon prio=10 tid=6000000001b9def0 nid=194 lwp_id=9390001 runnable [9ffffffea8100000..9ffffffea8100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff0566eca0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LTGB_BAN_SIA_11-Selector\" daemon prio=10 tid=6000000001b9b6d0 nid=193 lwp_id=9390000 runnable [9ffffffea8300000..9ffffffea8300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0489c058> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0489c040> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04891eb8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-77\" daemon prio=10 tid=6000000001b98eb0 nid=192 lwp_id=9389999 in Object.wait() [9ffffffea8500000..9ffffffea8500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0566ea70> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0566ea70> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-76\" daemon prio=10 tid=6000000001b96690 nid=191 lwp_id=9389998 in Object.wait() [9ffffffea8700000..9ffffffea8700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05670008> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05670008> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIM_BAN_SIA_11-Acceptor\" daemon prio=10 tid=6000000001b93e70 nid=190 lwp_id=9389997 runnable [9ffffffea8900000..9ffffffea8900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05685090> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIM_BAN_SIA_11-Selector\" daemon prio=10 tid=6000000001b90230 nid=189 lwp_id=9389996 runnable [9ffffffea8b00000..9ffffffea8b00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048abcc8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048abcb0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048abb50> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-75\" daemon prio=10 tid=6000000001b8da10 nid=188 lwp_id=9389995 in Object.wait() [9ffffffea8d00000..9ffffffea8d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05685870> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05685870> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-74\" daemon prio=10 tid=6000000001b86bb0 nid=187 lwp_id=9389994 in Object.wait() [9ffffffea8f00000..9ffffffea8f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0568c918> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0568c918> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-73\" daemon prio=10 tid=6000000001b82f70 nid=186 lwp_id=9389993 in Object.wait() [9ffffffea9100000..9ffffffea9100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056937f0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff056937f0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISN_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000001533340 nid=185 lwp_id=9389992 runnable [9ffffffea9300000..9ffffffea9300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff0567ee88> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISN_BTB_SIA_11-Selector\" daemon prio=10 tid=60000000015318a0 nid=184 lwp_id=9389991 runnable [9ffffffea9500000..9ffffffea9500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048d52f0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048d52d8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048d5178> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-72\" daemon prio=10 tid=600000000152f080 nid=183 lwp_id=9389990 in Object.wait() [9ffffffea9700000..9ffffffea9700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0567f178> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0567f178> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-71\" daemon prio=10 tid=600000000152c860 nid=182 lwp_id=9389989 in Object.wait() [9ffffffea9900000..9ffffffea9900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056a1438> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff056a1438> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKIE_BTB_SIA_11-Acceptor\" daemon prio=10 tid=600000000152a040 nid=181 lwp_id=9389988 runnable [9ffffffea9b00000..9ffffffea9b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff056b8508> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKIE_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000001527820 nid=180 lwp_id=9389987 runnable [9ffffffea9d00000..9ffffffea9d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048d47d0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048d47b8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048d4658> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-70\" daemon prio=10 tid=6000000001525000 nid=179 lwp_id=9389986 in Object.wait() [9ffffffea9f00000..9ffffffea9f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056b8ce8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff056b8ce8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-69\" daemon prio=10 tid=6000000001520ec0 nid=178 lwp_id=9389985 in Object.wait() [9ffffffeaa100000..9ffffffeaa100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056ba188> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff056ba188> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIM_TCPSI_BTD_02-Acceptor\" daemon prio=10 tid=600000000151e6a0 nid=177 lwp_id=9389984 runnable [9ffffffeaa300000..9ffffffeaa300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff056d1318> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIM_TCPSI_BTD_02-Selector\" daemon prio=10 tid=600000000151cec0 nid=176 lwp_id=9389983 runnable [9ffffffeaa500000..9ffffffeaa500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048b8ac8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048b8ab0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048b8950> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-68\" daemon prio=10 tid=600000000151a6a0 nid=175 lwp_id=9389982 in Object.wait() [9ffffffeaa700000..9ffffffeaa700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056d1b08> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff056d1b08> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-67\" daemon prio=10 tid=6000000001517e80 nid=174 lwp_id=9389981 in Object.wait() [9ffffffeaa900000..9ffffffeaa900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056e0cd8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff056e0cd8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LPRS_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000001515660 nid=173 lwp_id=9389980 runnable [9ffffffeaab00000..9ffffffeaab00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff056e9cf8> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LPRS_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000001512e40 nid=172 lwp_id=9389979 runnable [9ffffffeaad00000..9ffffffeaad00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048c7b68> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048c7b50> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048c79f0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-66\" daemon prio=10 tid=6000000001510620 nid=171 lwp_id=9389978 in Object.wait() [9ffffffeaaf00000..9ffffffeaaf00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff056f84f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff056f84f8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-65\" daemon prio=10 tid=600000000150de00 nid=170 lwp_id=9389977 in Object.wait() [9ffffffeab100000..9ffffffeab100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05718a78> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05718a78> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIM_TCPSI_BTD_01-Acceptor\" daemon prio=10 tid=600000000150b5e0 nid=169 lwp_id=9389976 runnable [9ffffffeab300000..9ffffffeab300ac0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05742300> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNIM_TCPSI_BTD_01-Selector\" daemon prio=10 tid=6000000001508dc0 nid=168 lwp_id=9389975 runnable [9ffffffeab500000..9ffffffeab500b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048c7048> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048c7030> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048c6ed0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-64\" daemon prio=10 tid=60000000012193c0 nid=167 lwp_id=9389974 in Object.wait() [9ffffffeab700000..9ffffffeab700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0573a0b8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff0573a0b8> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-63\" daemon prio=10 tid=60000000011143e0 nid=166 lwp_id=9389973 in Object.wait() [9ffffffeab900000..9ffffffeab900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05742c68> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05742c68> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-62\" daemon prio=10 tid=6000000001111bc0 nid=165 lwp_id=9389972 in Object.wait() [9ffffffeabb00000..9ffffffeabb00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0575cd18> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0575cd18> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKB__BAN_SIA_01-Acceptor\" daemon prio=10 tid=6000000001103fc0 nid=164 lwp_id=9389971 runnable [9ffffffeabd00000..9ffffffeabd00d40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff0576a300> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKB__BAN_SIA_01-Selector\" daemon prio=10 tid=60000000011017a0 nid=163 lwp_id=9389970 runnable [9ffffffeabf00000..9ffffffeabf00dc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048b9698> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048b9680> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048b9520> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-61\" daemon prio=10 tid=60000000010fef80 nid=162 lwp_id=9389969 in Object.wait() [9ffffffeac100000..9ffffffeac100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05766030> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05766030> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-AWRB_SOPSI_BAN_01\" daemon prio=10 tid=60000000010fae40 nid=161 lwp_id=9389968 in Object.wait() [9ffffffeac300000..9ffffffeac300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff045d6a88> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff045d6a88> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-59\" daemon prio=10 tid=60000000010f7200 nid=160 lwp_id=9389967 in Object.wait() [9ffffffeac500000..9ffffffeac500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0576a530> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff0576a530> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-AMZF_TMXSI_PUB_00\" daemon prio=10 tid=60000000010f2a80 nid=159 lwp_id=9389966 in Object.wait() [9ffffffeac700000..9ffffffeac700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff049f4148> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff049f4148> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-57\" daemon prio=10 tid=60000000010f0260 nid=158 lwp_id=9389965 in Object.wait() [9ffffffeac900000..9ffffffeac900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05777720> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05777720> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LINV_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000000f114f0 nid=157 lwp_id=9389964 runnable [9ffffffeacb00000..9ffffffeacb00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05790f58> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LINV_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000000f0ecd0 nid=156 lwp_id=9389963 runnable [9ffffffeacd00000..9ffffffeacd00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048c6450> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048c6438> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048c62d8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-56\" daemon prio=10 tid=6000000000f0c4b0 nid=155 lwp_id=9389962 in Object.wait() [9ffffffeacf00000..9ffffffeacf00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05790d28> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05790d28> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-55\" daemon prio=10 tid=6000000000ad4350 nid=154 lwp_id=9389961 in Object.wait() [9ffffffead100000..9ffffffead100a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05784088> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05784088> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-54\" daemon prio=10 tid=6000000000ad1b30 nid=153 lwp_id=9389960 in Object.wait() [9ffffffead300000..9ffffffead300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff057a9668> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff057a9668> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LAMC_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000000acdef0 nid=152 lwp_id=9389959 runnable [9ffffffead500000..9ffffffead500b40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff057c4c00> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LAMC_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000000acb6d0 nid=151 lwp_id=9389958 runnable [9ffffffead700000..9ffffffead700bc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048e2030> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048e2018> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048d5e58> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-53\" daemon prio=10 tid=6000000000ac8eb0 nid=150 lwp_id=9389957 in Object.wait() [9ffffffead900000..9ffffffead900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff057c53e0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff057c53e0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-ABSB_SOPSI_BAN_01\" daemon prio=10 tid=6000000000ac6690 nid=149 lwp_id=9389956 in Object.wait() [9ffffffeadb00000..9ffffffeadb00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04292d08> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff04292d08> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-51\" daemon prio=10 tid=6000000000ac3e70 nid=148 lwp_id=9389955 in Object.wait() [9ffffffeadd00000..9ffffffeadd00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05815d18> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05815d18> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKGA_BTB_SIA_11 -Acceptor\" daemon prio=10 tid=6000000000ac0230 nid=147 lwp_id=9389954 runnable [9ffffffeadf00000..9ffffffeadf00dc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff058394f0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKGA_BTB_SIA_11 -Selector\" daemon prio=10 tid=6000000000abda10 nid=146 lwp_id=9389953 runnable [9ffffffeae100000..9ffffffeae100a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048fd610> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048fd5f8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048fd498> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-50\" daemon prio=10 tid=6000000000ab98d0 nid=145 lwp_id=9389952 in Object.wait() [9ffffffeae300000..9ffffffeae300ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058392c0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff058392c0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-49\" daemon prio=10 tid=6000000000ab70b0 nid=144 lwp_id=9389951 in Object.wait() [9ffffffeae500000..9ffffffeae500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05864808> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05864808> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-48\" daemon prio=10 tid=6000000000ab4890 nid=143 lwp_id=9389950 in Object.wait() [9ffffffeae700000..9ffffffeae700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05873750> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff05873750> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LIMT_BTB_SIA_11-Acceptor\" daemon prio=10 tid=6000000000ab2070 nid=142 lwp_id=9389949 runnable [9ffffffeae900000..9ffffffeae900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05886c80> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LIMT_BTB_SIA_11-Selector\" daemon prio=10 tid=6000000000aa60d0 nid=141 lwp_id=9389948 runnable [9ffffffeaeb00000..9ffffffeaeb00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048fcaf0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048fcad8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048fc978> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-47\" daemon prio=10 tid=6000000000aa38b0 nid=140 lwp_id=9389947 in Object.wait() [9ffffffeaed00000..9ffffffeaed00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05887460> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05887460> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-46\" daemon prio=10 tid=6000000000aa1090 nid=139 lwp_id=9389946 in Object.wait() [9ffffffeaef00000..9ffffffeaef00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058880b0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff058880b0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKNI_BTD_SIA_11-Acceptor\" daemon prio=10 tid=600000000056c720 nid=138 lwp_id=9389945 runnable [9ffffffeaf100000..9ffffffeaf100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff058a06c0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKNI_BTD_SIA_11-Selector\" daemon prio=10 tid=6000000000545500 nid=137 lwp_id=9389944 runnable [9ffffffeaf300000..9ffffffeaf300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048e2c00> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048e2be8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048e2a88> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-45\" daemon prio=10 tid=6000000000542ce0 nid=136 lwp_id=9389943 in Object.wait() [9ffffffeaf500000..9ffffffeaf500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058a0490> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff058a0490> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKNI_BTD_SIA_12-Acceptor\" daemon prio=10 tid=60000000005404c0 nid=135 lwp_id=9389942 runnable [9ffffffeaf700000..9ffffffeaf700bc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff05891590> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKNI_BTD_SIA_12-Selector\" daemon prio=10 tid=600000000053dca0 nid=134 lwp_id=9389941 runnable [9ffffffeaf900000..9ffffffeaf900c40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048efdf8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048efde0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048efc80> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-44\" daemon prio=10 tid=600000000053b480 nid=133 lwp_id=9389940 in Object.wait() [9ffffffeafb00000..9ffffffeafb00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05891360> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff05891360> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-43\" daemon prio=10 tid=6000000000534140 nid=132 lwp_id=9389939 in Object.wait() [9ffffffeafd00000..9ffffffeafd00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058be5d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff058be5d0> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-42\" daemon prio=10 tid=6000000000530500 nid=131 lwp_id=9389938 in Object.wait() [9ffffffeaff00000..9ffffffeaff00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058bb6c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff058bb6c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISI_BTB_SIA_11-Acceptor\" daemon prio=10 tid=600000000052dce0 nid=130 lwp_id=9389937 runnable [9ffffffeb0100000..9ffffffeb0100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff058c7e88> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LISI_BTB_SIA_11-Selector\" daemon prio=10 tid=600000000052b4c0 nid=129 lwp_id=9389936 runnable [9ffffffeb0300000..9ffffffeb0300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048ef2d8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048ef2c0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048ef160> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-41\" daemon prio=10 tid=6000000000528ca0 nid=128 lwp_id=9389935 in Object.wait() [9ffffffeb0500000..9ffffffeb0500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058d09a0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff058d09a0> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"OutQueueListener-ASCB_SOPSI_BAN_01\" daemon prio=10 tid=6000000000526480 nid=127 lwp_id=9389934 in Object.wait() [9ffffffeb0700000..9ffffffeb0700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04282a90> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener.run(InboundGateway.java:409)\r\n\t- locked <9fffffff04282a90> (a com.tmax.probus.gateway.framework.inbound.InboundGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-39\" daemon prio=10 tid=6000000000523c60 nid=126 lwp_id=9389933 in Object.wait() [9ffffffeb0900000..9ffffffeb0900c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058d86c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff058d86c8> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNHB_BTD_SIA_02-Acceptor\" daemon prio=10 tid=6000000000520020 nid=125 lwp_id=9389932 runnable [9ffffffeb0b00000..9ffffffeb0b00cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff058d0bd8> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNHB_BTD_SIA_02-Selector\" daemon prio=10 tid=60000000002d5e50 nid=124 lwp_id=9389931 runnable [9ffffffeb0d00000..9ffffffeb0d00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048e3880> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048e3868> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048e3708> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-38\" daemon prio=10 tid=60000000002d3630 nid=123 lwp_id=9389930 in Object.wait() [9ffffffeb0f00000..9ffffffeb0f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058d0e90> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff058d0e90> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNHB_BTD_SIA_01-Acceptor\" daemon prio=10 tid=60000000002d0e10 nid=122 lwp_id=9389929 runnable [9ffffffeb1100000..9ffffffeb1100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff058d18a8> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LNHB_BTD_SIA_01-Selector\" daemon prio=10 tid=60000000002ce5f0 nid=121 lwp_id=9389928 runnable [9ffffffeb1300000..9ffffffeb1300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff048ee678> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff048ee660> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff048ee500> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-37\" daemon prio=10 tid=60000000002c8bb0 nid=120 lwp_id=9389927 in Object.wait() [9ffffffeb1500000..9ffffffeb1500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058e1940> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff058e1940> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-36\" daemon prio=10 tid=60000000002c6390 nid=119 lwp_id=9389926 in Object.wait() [9ffffffeb1700000..9ffffffeb1700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ead20> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff058ead20> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKIB_BTD_SIA_11-Acceptor\" daemon prio=10 tid=60000000002c3b70 nid=118 lwp_id=9389925 runnable [9ffffffeb1900000..9ffffffeb1900c40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff058d1be0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LKIB_BTD_SIA_11-Selector\" daemon prio=10 tid=6000000000248d50 nid=117 lwp_id=9389924 runnable [9ffffffeb1b00000..9ffffffeb1b00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04904370> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04904358> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff049041f8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-35\" daemon prio=10 tid=6000000000243ff0 nid=116 lwp_id=9389923 in Object.wait() [9ffffffeb1d00000..9ffffffeb1d00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058d1e98> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff058d1e98> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-34\" daemon prio=10 tid=60000000002417d0 nid=115 lwp_id=9389922 in Object.wait() [9ffffffeb1f00000..9ffffffeb1f00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058f0358> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener.run(NIOGateway.java:709)\r\n\t- locked <9fffffff058f0358> (a com.tmax.anylink.gateway.channel.nio.NIOGateway$OutQueueListener)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBNS_BTB_SIA_11-Acceptor\" daemon prio=10 tid=600000000023efb0 nid=114 lwp_id=9389921 runnable [9ffffffeb2100000..9ffffffeb2100a40]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff058f8db0> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"LBNS_BTB_SIA_11-Selector\" daemon prio=10 tid=600000000023a080 nid=113 lwp_id=9389920 runnable [9ffffffeb2300000..9ffffffeb2300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff049b4658> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff049b4640> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff049b44e0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-33\" daemon prio=10 tid=60000000001faec0 nid=112 lwp_id=9389919 in Object.wait() [9ffffffeb2500000..9ffffffeb2500b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058f9330> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:410)\r\n\t- locked <9fffffff058f9330> (a com.tmax.bp.nio.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-32\" daemon prio=10 tid=60000000001f6d00 nid=111 lwp_id=9389918 in Object.wait() [9ffffffeb2700000..9ffffffeb2700bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03dc71a0> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.management.remote.generic.ClientSynchroMessageNonblockingConnectionImpl.sendWithReturn(ClientSynchroMessageNonblockingConnectionImpl.java:224)\r\n\t- locked <9fffffff03dc71a0> (a [I)\r\n\tat javax.management.remote.generic.ClientIntermediary$GenericClientNotifForwarder.fetchNotifs(ClientIntermediary.java:864)\r\n\tat com.sun.jmx.remote.opt.internal.ClientNotifForwarder$NotifFetcher.fetchNotifs(ClientNotifForwarder.java:420)\r\n\tat com.sun.jmx.remote.opt.internal.ClientNotifForwarder$NotifFetcher.run(ClientNotifForwarder.java:318)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-31\" daemon prio=10 tid=60000000001f60a0 nid=110 lwp_id=9389917 waiting on condition [9ffffffeb6700000..9ffffffeb6700c40]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.sun.jmx.remote.opt.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:154)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AMZF_TMXSO_BTB_01_TmaxManager-Selector\" daemon prio=10 tid=6000000003cd2250 nid=109 lwp_id=9389907 runnable [9ffffffeb2900000..9ffffffeb2900cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff049a7bf8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff049a7be0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff049a7a80> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-30\" daemon prio=10 tid=6000000003ccfa30 nid=108 lwp_id=9389906 in Object.wait() [9ffffffeb2b00000..9ffffffeb2b00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff049a8e98> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:347)\r\n\t- locked <9fffffff049a8e98> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-29\" daemon prio=10 tid=6000000003ccca70 nid=106 lwp_id=9389904 in Object.wait() [9ffffffeb2f00000..9ffffffeb2f00a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff049a8fe8> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager.run(WebtEndpointImpl.java:343)\r\n\t- locked <9fffffff049a8fe8> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AMZF_TMXSO_BTD_01_TmaxManager-Selector\" daemon prio=10 tid=6000000003cca250 nid=105 lwp_id=9389903 runnable [9ffffffeb3100000..9ffffffeb3100ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff04904f70> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff04904f58> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04904df8> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-28\" daemon prio=10 tid=6000000003cc6110 nid=104 lwp_id=9389902 in Object.wait() [9ffffffeb3300000..9ffffffeb3300b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0496b8e8> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:347)\r\n\t- locked <9fffffff0496b8e8> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-27\" daemon prio=10 tid=6000000003c9e2b0 nid=102 lwp_id=9389900 in Object.wait() [9ffffffeb3700000..9ffffffeb3700c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0496ba38> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager.run(WebtEndpointImpl.java:347)\r\n\t- locked <9fffffff0496ba38> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"TmaxInboundNJGGateway_AMZF_TMXSI_PUB_00-Acceptor\" daemon prio=10 tid=6000000003ca9b70 nid=101 lwp_id=9389899 runnable [9ffffffeb3900000..9ffffffeb3900cc0]\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\r\n\tat sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:145)\r\n\t- locked <9fffffff04915318> (a java.lang.Object)\r\n\tat jeus.io.impl.nio.ChannelAcceptor.run(ChannelAcceptor.java:51)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"TmaxInboundNJGGateway_AMZF_TMXSI_PUB_00-Selector\" daemon prio=10 tid=6000000003ca7350 nid=100 lwp_id=9389898 runnable [9ffffffeb3b00000..9ffffffeb3b00d40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff049059f8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff049059e0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff04905650> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-26\" daemon prio=10 tid=6000000003ca4b30 nid=99 lwp_id=9389897 in Object.wait() [9ffffffeb3d00000..9ffffffeb3d00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04913a98> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:347)\r\n\t- locked <9fffffff04913a98> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"TmaxInboundNJGGateway_AMZF_TMXSI_PUB_00_ThreadPool-0\" daemon prio=10 tid=60000000001f4480 nid=98 lwp_id=9389896 in Object.wait() [9ffffffeb3f00000..9ffffffeb3f00a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04913b68> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff04913b68> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"AMZF_TMXSO_BAN_01_TmaxManager-Selector\" daemon prio=10 tid=6000000003c95780 nid=97 lwp_id=9389895 runnable [9ffffffeb4100000..9ffffffeb4100ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0498e2e0> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0498e2c8> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0498e168> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-25\" daemon prio=10 tid=6000000003c92f60 nid=96 lwp_id=9389894 in Object.wait() [9ffffffeb4300000..9ffffffeb4300b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff049975a0> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:347)\r\n\t- locked <9fffffff049975a0> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-24\" daemon prio=10 tid=60000000001f3890 nid=94 lwp_id=9389892 in Object.wait() [9ffffffeb4700000..9ffffffeb4700c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff049976f0> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager.run(WebtEndpointImpl.java:347)\r\n\t- locked <9fffffff049976f0> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"APUB_X25SA_BTD_01_TmaxManager-Selector\" daemon prio=10 tid=6000000003bff620 nid=93 lwp_id=9389891 runnable [9ffffffeb4900000..9ffffffeb4900cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff0496cf98> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff0496cf80> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff0496ce20> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-23\" daemon prio=10 tid=6000000003bf9f00 nid=92 lwp_id=9389890 in Object.wait() [9ffffffeb4b00000..9ffffffeb4b00d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04981dc8> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager.run(TCPEndpointImpl.java:347)\r\n\t- locked <9fffffff04981dc8> (a com.tmax.webtn.tcp.impl.TCPEndpointImpl$ConnectionPoolManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"APUB_X25SA_BTD_01_TmaxManager_ThreadPool-2\" daemon prio=10 tid=6000000003bbeb40 nid=91 lwp_id=9389889 in Object.wait() [9ffffffeb4d00000..9ffffffeb4d00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04982148> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff04982148> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"APUB_X25SA_BTD_01_TmaxManager_ThreadPool-1\" daemon prio=10 tid=60000000036c7b00 nid=90 lwp_id=9389888 in Object.wait() [9ffffffeb4f00000..9ffffffeb4f00a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04982148> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff04982148> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"APUB_X25SA_BTD_01_TmaxManager_ThreadPool-0\" daemon prio=10 tid=6000000003344220 nid=89 lwp_id=9389887 in Object.wait() [9ffffffeb5100000..9ffffffeb5100ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04982148> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff04982148> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-22\" daemon prio=10 tid=600000000056e210 nid=88 lwp_id=9389886 in Object.wait() [9ffffffeb5300000..9ffffffeb5300b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04981f18> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager.run(WebtEndpointImpl.java:347)\r\n\t- locked <9fffffff04981f18> (a com.tmax.nio.webt.impl.WebtEndpointImpl$TimeoutManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"event handler worker-thread-5\" daemon prio=10 tid=6000000003d4e2e0 nid=87 lwp_id=9389884 waiting on condition [9ffffffeb5500000..9ffffffeb5500bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"event handler worker-thread-4\" daemon prio=10 tid=6000000003d4bac0 nid=86 lwp_id=9389883 waiting on condition [9ffffffeb5700000..9ffffffeb5700c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"event handler worker-thread-3\" daemon prio=10 tid=6000000003d4a2e0 nid=85 lwp_id=9389882 waiting on condition [9ffffffeb5900000..9ffffffeb5900cc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"event handler worker-thread-2\" daemon prio=10 tid=600000000329fa20 nid=84 lwp_id=9389881 waiting on condition [9ffffffeb8f00000..9ffffffeb8f00d40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"event handler worker-thread-1\" daemon prio=10 tid=600000000035f4e0 nid=83 lwp_id=9389880 waiting on condition [9ffffffeb5b00000..9ffffffeb5b00dc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"com.tmax.probus.event.plugin.rte.EventHandler\" daemon prio=10 tid=6000000002cd6f20 nid=82 lwp_id=9389879 waiting on condition [9ffffffeb5d00000..9ffffffeb5d00a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat com.tmax.probus.event.plugin.rte.EventHandler.run(EventHandler.java:59)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"com.tmax.anylink.flow.rte_plugin.BatchLogProcessor\" daemon prio=10 tid=60000000001f5a50 nid=80 lwp_id=9389877 waiting on condition [9ffffffeb6100000..9ffffffeb6100b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat com.tmax.anylink.flow.rte_plugin.BatchLogProcessor.run(BatchLogProcessor.java:50)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"com.tmax.anylink.flow.rte_plugin.OnlineLogProcessor [container1-36]\" daemon prio=10 tid=60000000001f4120 nid=79 lwp_id=9389876 waiting on condition [9ffffffeb6300000..9ffffffeb6300bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:359)\r\n\tat com.tmax.anylink.flow.rte_plugin.OnlineLogProcessor.run(OnlineLogProcessor.java:50)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Job_Executor3\" daemon prio=10 tid=600000000041f6d0 nid=78 lwp_id=9389872 runnable [9ffffffeb6500000..9ffffffeb6500c40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff0484d988> (a java.io.BufferedInputStream)\r\n\tat java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2196)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2486)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2496)\r\n\tat java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1273)\r\n\tat java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)\r\n\tat com.sun.jmx.remote.socket.SocketConnection.readMessage(SocketConnection.java:211)\r\n\tat com.sun.jmx.remote.generic.ClientSynchroMessageConnectionImpl$MessageReader.run(ClientSynchroMessageConnectionImpl.java:391)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:208)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Thread-16\" prio=10 tid=6000000003305f20 nid=76 lwp_id=9389841 in Object.wait() [9ffffffeb6900000..9ffffffeb6900d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05910c88> (a com.tmax.probus.nio.endpoint.impl.MessageDispatcher)\r\n\tat com.tmax.probus.nio.endpoint.impl.MessageDispatcher.run(MessageDispatcher.java:292)\r\n\t- locked <9fffffff05910c88> (a com.tmax.probus.nio.endpoint.impl.MessageDispatcher)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-15\" daemon prio=10 tid=6000000003304480 nid=75 lwp_id=9389840 in Object.wait() [9ffffffeb6b00000..9ffffffeb6b00dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05911870> (a com.tmax.probus.nio.endpoint.impl.TimerWrapperStopper)\r\n\tat com.tmax.probus.nio.endpoint.impl.TimerWrapperStopper.run(EventManager.java:504)\r\n\t- locked <9fffffff05911870> (a com.tmax.probus.nio.endpoint.impl.TimerWrapperStopper)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-14\" daemon prio=10 tid=60000000032e2fb0 nid=74 lwp_id=9389839 in Object.wait() [9ffffffeb6d00000..9ffffffeb6d00a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff059236a0> (a com.tmax.probus.nio.endpoint.impl.EventManager)\r\n\tat com.tmax.probus.nio.endpoint.impl.EventManager.run(EventManager.java:257)\r\n\t- locked <9fffffff059236a0> (a com.tmax.probus.nio.endpoint.impl.EventManager)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"XAJobBuffer-rollback-1142506670\" prio=10 tid=600000000327e550 nid=73 lwp_id=9389838 waiting on condition [9ffffffeb6f00000..9ffffffeb6f00ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.runListener(BatchJobExecutor.java:152)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.access$000(BatchJobExecutor.java:39)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor$1.run(BatchJobExecutor.java:72)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"XAJobBuffer-commit-2002145759\" prio=10 tid=6000000002d19500 nid=72 lwp_id=9389837 waiting on condition [9ffffffeb7100000..9ffffffeb7100b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.runListener(BatchJobExecutor.java:152)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.access$000(BatchJobExecutor.java:39)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor$1.run(BatchJobExecutor.java:72)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"XAJobBuffer-prepare-2083460642\" prio=10 tid=6000000001bd96a0 nid=71 lwp_id=9389836 waiting on condition [9ffffffeb7300000..9ffffffeb7300bc0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.runListener(BatchJobExecutor.java:152)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.access$000(BatchJobExecutor.java:39)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor$1.run(BatchJobExecutor.java:72)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Job_Executor2\" daemon prio=10 tid=6000000000570150 nid=70 lwp_id=9389835 in Object.wait() [9ffffffeb7500000..9ffffffeb7500c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04841088> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:183)\r\n\t- locked <9fffffff04841088> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Thread-12\" daemon prio=10 tid=60000000002da6a0 nid=68 lwp_id=9389833 runnable [9ffffffeb7900000..9ffffffeb7900d40]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff03dfd9b0> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat com.sun.jmx.remote.socket.SocketConnectionServer.accept(SocketConnectionServer.java:173)\r\n\tat com.sun.jmx.remote.generic.SynchroMessageConnectionServerImpl.accept(SynchroMessageConnectionServerImpl.java:47)\r\n\tat javax.management.remote.generic.GenericConnectorServer$Receiver.run(GenericConnectorServer.java:337)\r\n\r\n\"RMI TCP Accept-20005\" daemon prio=10 tid=6000000000546220 nid=67 lwp_id=9389832 runnable [9ffffffeb7b00000..9ffffffeb7b00dc0]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff02e18850> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:340)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"XAJobBuffer-rollback-1562971892\" prio=10 tid=60000000011169d0 nid=66 lwp_id=9389831 waiting on condition [9ffffffeb7d00000..9ffffffeb7d00ac0]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.runListener(BatchJobExecutor.java:152)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.access$000(BatchJobExecutor.java:39)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor$1.run(BatchJobExecutor.java:72)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"XAJobBuffer-commit-1659874875\" prio=10 tid=60000000002da340 nid=65 lwp_id=9389830 waiting on condition [9ffffffeb7f00000..9ffffffeb7f00b40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.runListener(BatchJobExecutor.java:152)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.access$000(BatchJobExecutor.java:39)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor$1.run(BatchJobExecutor.java:72)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"XAJobBuffer-prepare-672568948\" prio=10 tid=60000000002d9fe0 nid=64 lwp_id=9389829 waiting on condition [9ffffffeb9100000..9ffffffeb9100a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:118)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1767)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.runListener(BatchJobExecutor.java:152)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor.access$000(BatchJobExecutor.java:39)\r\n\tat com.tmax.probus.nio.tx.BatchJobExecutor$1.run(BatchJobExecutor.java:72)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"chprd2_servlet_engine1.ContainerMonitor [container1-141]\" daemon prio=10 tid=6000000002c817a0 nid=63 lwp_id=9389821 waiting on condition [9ffffffeb8100000..9ffffffeb8100bc0]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat jeus.servlet.common.WebContainerMonitor.run(WebContainerMonitor.java:137)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"GC Daemon\" daemon prio=10 tid=60000000038ccc60 nid=62 lwp_id=9389820 in Object.wait() [9ffffffeb8300000..9ffffffeb8300c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03561690> (a sun.misc.GC$LatencyLock)\r\n\tat sun.misc.GC$Daemon.run(GC.java:100)\r\n\t- locked <9fffffff03561690> (a sun.misc.GC$LatencyLock)\r\n\r\n\"RMI Reaper\" prio=10 tid=60000000038c1300 nid=61 lwp_id=9389819 in Object.wait() [9ffffffeb8500000..9ffffffeb8500cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff035614a0> (a java.lang.ref.ReferenceQueue$Lock)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:133)\r\n\t- locked <9fffffff035614a0> (a java.lang.ref.ReferenceQueue$Lock)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:149)\r\n\tat sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:336)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Timer-1\" daemon prio=10 tid=6000000002c89660 nid=60 lwp_id=9389818 in Object.wait() [9ffffffeb8700000..9ffffffeb8700d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0592a238> (a java.util.TaskQueue)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:483)\r\n\t- locked <9fffffff0592a238> (a java.util.TaskQueue)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n\"RMI TCP Accept-0\" daemon prio=10 tid=60000000003ff860 nid=59 lwp_id=9389817 runnable [9fffffffb9100000..9fffffffb9100dc0]\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked <9fffffff049c3a20> (a java.net.SocksSocketImpl)\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:456)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:427)\r\n\tat sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:340)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"EJBTimerExecutor-1\" daemon prio=10 tid=600000000231fcb0 nid=57 lwp_id=9389798 in Object.wait() [9ffffffeb8900000..9ffffffeb8900ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0592ab20> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff0592ab20> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"EJBTimerExecutor-0\" daemon prio=10 tid=600000000231f250 nid=56 lwp_id=9389797 in Object.wait() [9ffffffeb8b00000..9ffffffeb8b00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff0592ab20> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff0592ab20> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Timer-0\" prio=10 tid=6000000000c2d3b0 nid=55 lwp_id=9389796 in Object.wait() [9ffffffeb9500000..9ffffffeb9500bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05931d00> (a java.util.TaskQueue)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:483)\r\n\t- locked <9fffffff05931d00> (a java.util.TaskQueue)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n\"EJBEngineTimer_chprd2_ejb_engine1\" daemon prio=10 tid=60000000022ef0b0 nid=54 lwp_id=9389795 in Object.wait() [9ffffffeb8d00000..9ffffffeb8d00c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05932490> (a java.util.TaskQueue)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:509)\r\n\t- locked <9fffffff05932490> (a java.util.TaskQueue)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n\"DeploymentCommander-0\" daemon prio=10 tid=60000000002d8870 nid=51 lwp_id=9389792 in Object.wait() [9ffffffeb9300000..9ffffffeb9300dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff718> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff718> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"FlushManager\" daemon prio=10 tid=6000000003262c90 nid=49 lwp_id=9389788 waiting on condition [9ffffffeb9700000..9ffffffeb9700ac0]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat org.objectweb.howl.log.LogBufferManager$FlushManager.run(LogBufferManager.java:1254)\r\n\r\n\"LogFileManager.EventManager\" daemon prio=10 tid=600000000324a9a0 nid=48 lwp_id=9389787 in Object.wait() [9ffffffeb9900000..9ffffffeb9900b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05933230> (a java.lang.Object)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat org.objectweb.howl.log.LogFileManager$EventManager.run(LogFileManager.java:1260)\r\n\t- locked <9fffffff05933230> (a java.lang.Object)\r\n\r\n\"FlushManager\" daemon prio=10 tid=6000000003231f10 nid=47 lwp_id=9389786 waiting on condition [9ffffffeb9b00000..9ffffffeb9b00bc0]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat org.objectweb.howl.log.LogBufferManager$FlushManager.run(LogBufferManager.java:1254)\r\n\r\n\"LogFileManager.EventManager\" daemon prio=10 tid=600000000322f6f0 nid=46 lwp_id=9389785 in Object.wait() [9ffffffeb9d00000..9ffffffeb9d00c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff05961140> (a java.lang.Object)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat org.objectweb.howl.log.LogFileManager$EventManager.run(LogFileManager.java:1260)\r\n\t- locked <9fffffff05961140> (a java.lang.Object)\r\n\r\n\"TMLinkManager-Selector\" daemon prio=10 tid=600000000322ced0 nid=45 lwp_id=9389784 runnable [9ffffffeb9f00000..9ffffffeb9f00cc0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff02fdd650> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff02fdd638> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff02fd0ee0> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"TMLink.Client-1\" daemon prio=10 tid=600000000321bb90 nid=44 lwp_id=9389783 in Object.wait() [9ffffffeba100000..9ffffffeba100d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02fdddc8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff02fdddc8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"TMLink.Client-0\" daemon prio=10 tid=6000000003206520 nid=43 lwp_id=9389782 in Object.wait() [9ffffffeba300000..9ffffffeba300dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02fdddc8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff02fdddc8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"TMLink.Server-1\" daemon prio=10 tid=6000000002cdf830 nid=42 lwp_id=9389781 in Object.wait() [9ffffffeba500000..9ffffffeba500a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02fdecb8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff02fdecb8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"TMLink.Server-0\" daemon prio=10 tid=60000000023564a0 nid=41 lwp_id=9389780 in Object.wait() [9ffffffeba700000..9ffffffeba700ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02fdecb8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff02fdecb8> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"SelectorThread\" daemon prio=10 tid=6000000002355a40 nid=40 lwp_id=9389779 runnable [9ffffffeba900000..9ffffffeba900b40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff059757d8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff059757c0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff05975370> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat com.sun.corba.se.impl.transport.SelectorImpl.run(SelectorImpl.java:249)\r\n\r\n\"Thread-6\" daemon prio=10 tid=6000000002c67d20 nid=39 lwp_id=9389778 in Object.wait() [9ffffffebab00000..9ffffffebab00bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03dd6fc8> (a [I)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.management.remote.generic.ClientSynchroMessageNonblockingConnectionImpl.sendWithReturn(ClientSynchroMessageNonblockingConnectionImpl.java:224)\r\n\t- locked <9fffffff03dd6fc8> (a [I)\r\n\tat javax.management.remote.generic.ClientIntermediary$GenericClientNotifForwarder.fetchNotifs(ClientIntermediary.java:864)\r\n\tat com.sun.jmx.remote.opt.internal.ClientNotifForwarder$NotifFetcher.fetchNotifs(ClientNotifForwarder.java:420)\r\n\tat com.sun.jmx.remote.opt.internal.ClientNotifForwarder$NotifFetcher.run(ClientNotifForwarder.java:318)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-5\" daemon prio=10 tid=60000000006304a0 nid=38 lwp_id=9389777 in Object.wait() [9ffffffebad00000..9ffffffebad00c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03de23d8> (a [I)\r\n\tat com.sun.jmx.remote.opt.internal.ServerCommunicatorAdmin$Adminor.run(ServerCommunicatorAdmin.java:145)\r\n\t- locked <9fffffff03de23d8> (a [I)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Job_Executor1\" daemon prio=10 tid=600000000061bf30 nid=37 lwp_id=9389774 in Object.wait() [9ffffffebaf00000..9ffffffebaf00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff04215238> (a [I)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:87)\r\n\t- locked <9fffffff04215238> (a [I)\r\n\r\n\"Job_Executor0\" daemon prio=10 tid=6000000002c61090 nid=36 lwp_id=9389773 runnable [9ffffffebb100000..9ffffffebb100d40]\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:134)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:235)\r\n\t- locked <9fffffff420c63c0> (a java.io.BufferedInputStream)\r\n\tat java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2196)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2486)\r\n\tat java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2496)\r\n\tat java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1273)\r\n\tat java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)\r\n\tat com.sun.jmx.remote.socket.SocketConnection.readMessage(SocketConnection.java:211)\r\n\tat com.sun.jmx.remote.generic.ServerSynchroMessageConnectionImpl$MessageReader.run(ServerSynchroMessageConnectionImpl.java:168)\r\n\tat com.sun.jmx.remote.opt.util.ThreadService$ThreadServiceJob.run(ThreadService.java:208)\r\n\tat com.sun.jmx.remote.opt.util.JobExecutor.run(JobExecutor.java:59)\r\n\r\n\"Thread-4\" daemon prio=10 tid=6000000002b3f780 nid=35 lwp_id=9389772 waiting on condition [9ffffffebb300000..9ffffffebb300dc0]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.sun.jmx.remote.opt.internal.ClientCommunicatorAdmin$Checker.run(ClientCommunicatorAdmin.java:154)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMPSelector\" daemon prio=10 tid=6000000002b31e80 nid=34 lwp_id=9389770 runnable [9ffffffebb500000..9ffffffebb500a40]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff03dd59c8> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff03dd59b0> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff03dc7818> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat jeus.io.impl.nio.NIOSelector.run(NIOSelector.java:178)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-9\" daemon prio=10 tid=6000000002b2c500 nid=33 lwp_id=9389769 in Object.wait() [9ffffffebb700000..9ffffffebb700ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-8\" daemon prio=10 tid=6000000002b29ce0 nid=32 lwp_id=9389768 in Object.wait() [9ffffffebb900000..9ffffffebb900b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-7\" daemon prio=10 tid=6000000002b244c0 nid=31 lwp_id=9389767 in Object.wait() [9ffffffebbb00000..9ffffffebbb00bc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-6\" daemon prio=10 tid=6000000002a35db0 nid=30 lwp_id=9389766 in Object.wait() [9ffffffebbd00000..9ffffffebbd00c40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-5\" daemon prio=10 tid=6000000002a2c770 nid=29 lwp_id=9389765 in Object.wait() [9ffffffebbf00000..9ffffffebbf00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-4\" daemon prio=10 tid=6000000002a23f40 nid=28 lwp_id=9389764 in Object.wait() [9ffffffebc100000..9ffffffebc100d40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-3\" daemon prio=10 tid=600000000245a3c0 nid=27 lwp_id=9389763 in Object.wait() [9ffffffebc300000..9ffffffebc300dc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-2\" daemon prio=10 tid=600000000242d5d0 nid=26 lwp_id=9389762 in Object.wait() [9ffffffebc500000..9ffffffebc500a40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-1\" daemon prio=10 tid=600000000153fc40 nid=25 lwp_id=9389761 in Object.wait() [9ffffffebc700000..9ffffffebc700ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"JMXMP-0\" daemon prio=10 tid=60000000014acf30 nid=24 lwp_id=9389760 in Object.wait() [9ffffffebc900000..9ffffffebc900b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff058ff790> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"IO-JNSLocal-0[Socket[addr=/172.25.60.112,port=9736,localport=54805]]\" daemon prio=10 tid=60000000014938f0 nid=23 lwp_id=9389759 runnable [9ffffffebcb00000..9ffffffebcb00bc0]\r\n\tat sun.nio.ch.FileDispatcher.read0(Native Method)\r\n\tat sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)\r\n\tat sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:233)\r\n\tat sun.nio.ch.IOUtil.read(IOUtil.java:200)\r\n\tat sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:207)\r\n\t- locked <9fffffff03018740> (a java.lang.Object)\r\n\tat jeus.io.impl.blockingChannel.util.BlockingChannelInputStreamBuffer.readBuffer(BlockingChannelInputStreamBuffer.java:28)\r\n\tat jeus.io.impl.nio.util.ChannelInputStreamBuffer.read(ChannelInputStreamBuffer.java:55)\r\n\tat jeus.io.impl.nio.protocol.message.NIOContentBuffer.read(NIOContentBuffer.java:63)\r\n\tat jeus.io.protocol.message.ContentBuffer.readBuffer(ContentBuffer.java:58)\r\n\tat jeus.io.protocol.message.ContentReader.readMessage(ContentReader.java:59)\r\n\tat jeus.io.impl.StreamHandlerImpl.readMessage(StreamHandlerImpl.java:242)\r\n\tat jeus.io.impl.StreamHandlerImpl14.readMessage(StreamHandlerImpl14.java:72)\r\n\tat jeus.io.impl.blocking.handler.BlockingStreamHandlerImpl14.run(BlockingStreamHandlerImpl14.java:54)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:642)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:667)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"SchedulingService-2\" daemon prio=10 tid=6000000001411fc0 nid=22 lwp_id=9389758 waiting on condition [9ffffffebcd00000..9ffffffebcd00c40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1803)\r\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:135)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:504)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:497)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Thread-3\" daemon prio=10 tid=6000000001405ef0 nid=21 lwp_id=9389757 in Object.wait() [9ffffffebcf00000..9ffffffebcf00cc0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff03de2e90> (a jeus.management.remote.jeusmp.OneSocketNonblockingConnectionServer)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.management.remote.jeusmp.OneSocketNonblockingConnectionServer.accept(OneSocketNonblockingConnectionServer.java:66)\r\n\t- locked <9fffffff03de2e90> (a jeus.management.remote.jeusmp.OneSocketNonblockingConnectionServer)\r\n\tat jeus.management.remote.generic.SynchroMessageNonblockingConnectionServerImpl.accept(SynchroMessageNonblockingConnectionServerImpl.java:61)\r\n\tat javax.management.remote.generic.GenericConnectorServer$Receiver.run(GenericConnectorServer.java:337)\r\n\r\n\"jeus.server.enginecontainer.Timer\" daemon prio=10 tid=60000000012ec030 nid=20 lwp_id=9389756 waiting on condition [9ffffffebd100000..9ffffffebd100d40]\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat jeus.server.enginecontainer.ResourceManager.run(ResourceManager.java:40)\r\n\r\n\"IO-IO-ClientSecurity-0[Socket[addr=/172.25.60.112,port=9736,localport=54804]]\" daemon prio=10 tid=60000000010e6310 nid=19 lwp_id=9389755 runnable [9ffffffebd300000..9ffffffebd300dc0]\r\n\tat sun.nio.ch.FileDispatcher.read0(Native Method)\r\n\tat sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)\r\n\tat sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:233)\r\n\tat sun.nio.ch.IOUtil.read(IOUtil.java:200)\r\n\tat sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:207)\r\n\t- locked <9fffffff02ffc128> (a java.lang.Object)\r\n\tat jeus.io.impl.blockingChannel.util.BlockingChannelInputStreamBuffer.readBuffer(BlockingChannelInputStreamBuffer.java:28)\r\n\tat jeus.io.impl.nio.util.ChannelInputStreamBuffer.read(ChannelInputStreamBuffer.java:55)\r\n\tat jeus.io.impl.nio.protocol.message.NIOContentBuffer.read(NIOContentBuffer.java:63)\r\n\tat jeus.io.protocol.message.ContentBuffer.readBuffer(ContentBuffer.java:58)\r\n\tat jeus.io.protocol.message.ContentReader.readMessage(ContentReader.java:59)\r\n\tat jeus.io.impl.StreamHandlerImpl.readMessage(StreamHandlerImpl.java:242)\r\n\tat jeus.io.impl.StreamHandlerImpl14.readMessage(StreamHandlerImpl14.java:72)\r\n\tat jeus.io.impl.blocking.handler.BlockingStreamHandlerImpl14.run(BlockingStreamHandlerImpl14.java:54)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:642)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:667)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"SchedulingService-1\" daemon prio=10 tid=6000000000f2e880 nid=18 lwp_id=9389754 waiting on condition [9ffffffebdb00000..9ffffffebdb00a40]\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:146)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1803)\r\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:135)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:504)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:497)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:470)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:674)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"ActiveDispatcher-10771\" daemon prio=10 tid=6000000000ed2990 nid=17 lwp_id=9389753 runnable [9fffffffb9300000..9fffffffb9300ac0]\r\n\tat sun.nio.ch.PollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:170)\r\n\tat sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked <9fffffff02fe6818> (a sun.nio.ch.Util$1)\r\n\t- locked <9fffffff02fe6800> (a java.util.Collections$UnmodifiableSet)\r\n\t- locked <9fffffff02fe6688> (a sun.nio.ch.PollSelectorImpl)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:84)\r\n\tat jeus.util.net.ActiveDispatcher.run(ActiveDispatcher.java:94)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"jeus.util.net.SocketDispatcher-0\" daemon prio=10 tid=6000000000169cf0 nid=16 lwp_id=9389752 in Object.wait() [9fffffffb9f00000..9fffffffb9f00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02fefc70> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.util.concurrent50.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:328)\r\n\t- locked <9fffffff02fefc70> (a jeus.util.concurrent50.concurrent.LinkedBlockingQueue$SerializableLock)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:469)\r\n\tat jeus.util.concurrent50.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:666)\r\n\tat java.lang.Thread.run(Thread.java:595)\r\n\r\n\"Low Memory Detector\" daemon prio=10 tid=600000000044ab10 nid=15 lwp_id=9389714 runnable [0000000000000000..0000000000000000]\r\n\r\n\"CompilerThread1\" daemon prio=10 tid=60000000004462c0 nid=13 lwp_id=9389712 waiting on condition [0000000000000000..9ffffffebd7fea00]\r\n\r\n\"CompilerThread0\" daemon prio=10 tid=60000000003dfae0 nid=12 lwp_id=9389711 waiting on condition [0000000000000000..9ffffffebdffea80]\r\n\r\n\"AdapterThread\" daemon prio=10 tid=60000000003dce60 nid=11 lwp_id=9389710 waiting on condition [0000000000000000..0000000000000000]\r\n\r\n\"Signal Dispatcher\" daemon prio=10 tid=60000000003da640 nid=10 lwp_id=9389709 waiting on condition [0000000000000000..0000000000000000]\r\n\r\n\"Finalizer\" daemon prio=10 tid=60000000001bae50 nid=9 lwp_id=9389708 in Object.wait() [9ffffffebed00000..9ffffffebed00ac0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02c85e40> (a java.lang.ref.ReferenceQueue$Lock)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:133)\r\n\t- locked <9fffffff02c85e40> (a java.lang.ref.ReferenceQueue$Lock)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:149)\r\n\tat java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:197)\r\n\r\n\"Reference Handler\" daemon prio=10 tid=60000000001b6be0 nid=8 lwp_id=9389707 in Object.wait() [9ffffffebef00000..9ffffffebef00b40]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02c85e08> (a java.lang.ref.Reference$Lock)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat java.lang.ref.Reference$ReferenceHandler.run(Reference.java:123)\r\n\t- locked <9fffffff02c85e08> (a java.lang.ref.Reference$Lock)\r\n\r\n\"jeus.server.enginecontainer.EngineContainer [container1-10]\" prio=10 tid=6000000000098a20 nid=1 lwp_id=-1 in Object.wait() [9fffffffffffc000..9fffffffffffd0b0]\r\n\tat java.lang.Object.wait(Native Method)\r\n\t- waiting on <9fffffff02ca7428> (a java.lang.Object)\r\n\tat java.lang.Object.wait(Object.java:474)\r\n\tat jeus.server.enginecontainer.EngineContainer.waitForDown(EngineContainer.java:1041)\r\n\t- locked <9fffffff02ca7428> (a java.lang.Object)\r\n\tat jeus.server.enginecontainer.EngineContainer.main(EngineContainer.java:1022)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\r\n\tat java.lang.reflect.Method.invoke(Method.java:585)\r\n\tat jeus.server.Bootstrapper.callMainMethod(Bootstrapper.java:295)\r\n\tat jeus.server.Bootstrapper.callMain(Bootstrapper.java:364)\r\n\tat jeus.server.enginecontainer.EngineContainerBootstrapper.main(EngineContainerBootstrapper.java:14)\r\n\r\n\"VM Thread\" prio=10 tid=6000000000104270 nid=7 lwp_id=9389706 runnable \r\n\r\n\"GC task thread#0 (ParallelGC)\" prio=10 tid=6000000000021aa0 nid=3 lwp_id=9389693 runnable \r\n\r\n\"GC task thread#1 (ParallelGC)\" prio=10 tid=6000000000021c00 nid=4 lwp_id=9389694 runnable \r\n\r\n\"GC task thread#2 (ParallelGC)\" prio=10 tid=6000000000021d60 nid=5 lwp_id=9389695 runnable \r\n\r\n\"GC task thread#3 (ParallelGC)\" prio=10 tid=6000000000021ec0 nid=6 lwp_id=9389696 runnable \r\n\r\n\"VM Periodic Task Thread\" prio=10 tid=60000000001043b0 nid=14 lwp_id=9389713 waiting on condition \r\n"
  },
  {
    "path": "tda/src/test/resources/intellij_dump.json",
    "content": "{\n  \"threadDump\": {\n    \"processId\": \"3862\",\n    \"time\": \"2026-01-25T15:46:04.439828Z\",\n    \"runtimeVersion\": \"21.0.10+7-LTS\",\n    \"threadContainers\": [\n      {\n        \"container\": \"<root>\",\n        \"parent\": null,\n        \"owner\": null,\n        \"threads\": [\n         {\n           \"tid\": \"9\",\n           \"name\": \"Reference Handler\",\n           \"stack\": [\n              \"java.base\\/java.lang.ref.Reference.waitForReferencePendingList(Native Method)\",\n              \"java.base\\/java.lang.ref.Reference.processPendingReferences(Reference.java:246)\",\n              \"java.base\\/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:208)\"\n           ]\n         },\n         {\n           \"tid\": \"10\",\n           \"name\": \"Finalizer\",\n           \"stack\": [\n              \"java.base\\/java.lang.Object.wait0(Native Method)\",\n              \"java.base\\/java.lang.Object.wait(Object.java:366)\",\n              \"java.base\\/java.lang.Object.wait(Object.java:339)\",\n              \"java.base\\/java.lang.ref.NativeReferenceQueue.await(NativeReferenceQueue.java:48)\",\n              \"java.base\\/java.lang.ref.ReferenceQueue.remove0(ReferenceQueue.java:158)\",\n              \"java.base\\/java.lang.ref.NativeReferenceQueue.remove(NativeReferenceQueue.java:89)\",\n              \"java.base\\/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:173)\"\n           ]\n         },\n         {\n           \"tid\": \"11\",\n           \"name\": \"Signal Dispatcher\",\n           \"stack\": [\n           ]\n         },\n         {\n           \"tid\": \"18\",\n           \"name\": \"Notification Thread\",\n           \"stack\": [\n           ]\n         },\n         {\n           \"tid\": \"19\",\n           \"name\": \"Common-Cleaner\",\n           \"stack\": [\n              \"java.base\\/jdk.internal.misc.Unsafe.park(Native Method)\",\n              \"java.base\\/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:269)\",\n              \"java.base\\/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1886)\",\n              \"java.base\\/java.lang.ref.ReferenceQueue.await(ReferenceQueue.java:71)\",\n              \"java.base\\/java.lang.ref.ReferenceQueue.remove0(ReferenceQueue.java:143)\",\n              \"java.base\\/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:218)\",\n              \"java.base\\/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:140)\",\n              \"java.base\\/java.lang.Thread.run(Thread.java:1583)\",\n              \"java.base\\/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:186)\"\n           ]\n         },\n         {\n           \"tid\": \"21\",\n           \"name\": \"JPS event loop\",\n           \"stack\": [\n              \"java.base\\/sun.nio.ch.KQueue.poll(Native Method)\",\n              \"java.base\\/sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:125)\",\n              \"java.base\\/sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:130)\",\n              \"java.base\\/sun.nio.ch.SelectorImpl.select(SelectorImpl.java:142)\",\n              \"io.netty.channel.nio.NioIoHandler.select(NioIoHandler.java:646)\",\n              \"io.netty.channel.nio.NioIoHandler.run(NioIoHandler.java:432)\",\n              \"io.netty.channel.SingleThreadIoEventLoop.runIo(SingleThreadIoEventLoop.java:203)\",\n              \"io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:174)\",\n              \"io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1123)\",\n              \"io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\",\n              \"java.base\\/java.lang.Thread.run(Thread.java:1583)\"\n           ]\n         },\n         {\n           \"tid\": \"37\",\n           \"name\": \"DestroyJavaVM\",\n           \"stack\": [\n           ]\n         },\n         {\n           \"tid\": \"38\",\n           \"name\": \"Attach Listener\",\n           \"stack\": [\n              \"java.base\\/java.lang.Thread.getStackTrace(Thread.java:2451)\",\n              \"java.base\\/jdk.internal.vm.ThreadDumper.dumpThreadToJson(ThreadDumper.java:270)\",\n              \"java.base\\/jdk.internal.vm.ThreadDumper.dumpThreadsToJson(ThreadDumper.java:242)\",\n              \"java.base\\/jdk.internal.vm.ThreadDumper.dumpThreadsToJson(ThreadDumper.java:206)\",\n              \"java.base\\/jdk.internal.vm.ThreadDumper.dumpThreadsToFile(ThreadDumper.java:117)\",\n              \"java.base\\/jdk.internal.vm.ThreadDumper.dumpThreadsToJson(ThreadDumper.java:85)\"\n           ]\n         }\n        ],\n        \"threadCount\": \"8\"\n      },\n      {\n        \"container\": \"java.util.concurrent.ThreadPoolExecutor@41e68fc\",\n        \"parent\": \"<root>\",\n        \"owner\": null,\n        \"threads\": [\n        ],\n        \"threadCount\": \"0\"\n      },\n      {\n        \"container\": \"ForkJoinPool.commonPool\\/jdk.internal.vm.SharedThreadContainer@5781cbe2\",\n        \"parent\": \"<root>\",\n        \"owner\": null,\n        \"threads\": [\n        ],\n        \"threadCount\": \"0\"\n      },\n      {\n        \"container\": \"java.util.concurrent.ThreadPoolExecutor@163e4e87\",\n        \"parent\": \"<root>\",\n        \"owner\": null,\n        \"threads\": [\n        ],\n        \"threadCount\": \"0\"\n      }\n    ]\n  }\n}\n"
  },
  {
    "path": "tda/src/test/resources/java11dump.log",
    "content": "2020-04-16 02:53:41\nFull thread dump OpenJDK 64-Bit Server VM (11.0.6+10 mixed mode):\n\n\"main\" #1 prio=5 os_prio=0 cpu=1124.82ms elapsed=116459.50s tid=0x00007f6aec016800 nid=0xaba runnable  [0x00007f6af4245000]\n   java.lang.Thread.State: RUNNABLE\n        at java.net.PlainSocketImpl.socketAccept(java.base@11.0.6/Native Method)\n        at java.net.AbstractPlainSocketImpl.accept(java.base@11.0.6/AbstractPlainSocketImpl.java:458)\n        at java.net.ServerSocket.implAccept(java.base@11.0.6/ServerSocket.java:565)\n        at java.net.ServerSocket.accept(java.base@11.0.6/ServerSocket.java:533)\n        at org.apache.catalina.core.StandardServer.await(StandardServer.java:466)\n        at org.apache.catalina.startup.Catalina.await(Catalina.java:776)\n        at org.apache.catalina.startup.Catalina.start(Catalina.java:722)\n        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(java.base@11.0.6/Native Method)\n        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(java.base@11.0.6/NativeMethodAccessorImpl.java:62)\n        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(java.base@11.0.6/DelegatingMethodAccessorImpl.java:43)\n        at java.lang.reflect.Method.invoke(java.base@11.0.6/Method.java:566)\n        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:353)\n        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:493)\n\n   Locked ownable synchronizers:\n        - None\n\n\"Reference Handler\" #2 daemon prio=10 os_prio=0 cpu=74835.02ms elapsed=116459.48s tid=0x00007f6aec0a8800 nid=0xabe waiting on condition  [0x00007f6ab3af8000]\n   java.lang.Thread.State: RUNNABLE\n        at java.lang.ref.Reference.waitForReferencePendingList(java.base@11.0.6/Native Method)\n        at java.lang.ref.Reference.processPendingReferences(java.base@11.0.6/Reference.java:241)\n        at java.lang.ref.Reference$ReferenceHandler.run(java.base@11.0.6/Reference.java:213)\n\n   Locked ownable synchronizers:\n        - None\n\n\"VM Thread\" os_prio=0 cpu=1400820.85ms elapsed=116459.49s tid=0x00007f6aec0a0000 nid=0xabc runnable  \n\n\"ParGC Thread#0\" os_prio=0 cpu=531433.46ms elapsed=116459.51s tid=0x00007f6aec040000 nid=0xabb runnable  \n\n\"ParGC Thread#1\" os_prio=0 cpu=532378.30ms elapsed=116452.11s tid=0x00007f6aac005000 nid=0xb35 runnable  \n\n\"ParGC Thread#2\" os_prio=0 cpu=531378.18ms elapsed=116452.11s tid=0x00007f6aac006800 nid=0xb36 runnable  \n\n\"ParGC Thread#3\" os_prio=0 cpu=531444.52ms elapsed=116452.10s tid=0x00007f6aac008000 nid=0xb37 runnable  \n\n\"ParGC Thread#4\" os_prio=0 cpu=531319.95ms elapsed=116452.10s tid=0x00007f6aac009800 nid=0xb38 runnable  \n\n\"ParGC Thread#5\" os_prio=0 cpu=531506.14ms elapsed=116452.10s tid=0x00007f6aac00b000 nid=0xb39 runnable  \n\n\"ParGC Thread#6\" os_prio=0 cpu=531183.48ms elapsed=116452.10s tid=0x00007f6aac00c800 nid=0xb3a runnable  \n\n\"ParGC Thread#7\" os_prio=0 cpu=532862.62ms elapsed=116452.10s tid=0x00007f6aac00e000 nid=0xb3b runnable  \n\n\"ParGC Thread#8\" os_prio=0 cpu=531416.13ms elapsed=116436.06s tid=0x00007f6aac015000 nid=0xcf8 runnable  \n\n\"ParGC Thread#9\" os_prio=0 cpu=531990.95ms elapsed=116436.06s tid=0x00007f6aac016800 nid=0xcf9 runnable  \n\n\"VM Periodic Task Thread\" os_prio=0 cpu=60646.16ms elapsed=116459.40s tid=0x00007f6aec18f000 nid=0xaca waiting on condition  \n\nJNI global refs: 173, weak refs: 5\n"
  },
  {
    "path": "tda/src/test/resources/java21dump.log",
    "content": "2024-08-20 14:25:30\nFull thread dump OpenJDK 64-Bit Server VM (21.0.2+13-LTS mixed mode, sharing):\n\n\"main\" #1 [1] prio=5 os_prio=0 cpu=2245.67ms elapsed=58234.25s tid=0x00007f8b2c016800 nid=0x1abc runnable  [0x00007f8b34245000]\n   java.lang.Thread.State: RUNNABLE\n        at java.net.PlainSocketImpl.socketAccept(java.base@21.0.2/Native Method)\n        at java.net.AbstractPlainSocketImpl.accept(java.base@21.0.2/AbstractPlainSocketImpl.java:458)\n        at java.net.ServerSocket.implAccept(java.base@21.0.2/ServerSocket.java:565)\n        at java.net.ServerSocket.accept(java.base@21.0.2/ServerSocket.java:533)\n        at com.example.virtualthread.WebServer.start(WebServer.java:45)\n        at com.example.virtualthread.Application.main(Application.java:25)\n\n   Locked ownable synchronizers:\n        - None\n\n\"Reference Handler\" #2 daemon [2] prio=10 os_prio=0 cpu=85432.15ms elapsed=58234.23s tid=0x00007f8b2c0a8800 nid=0x1abe waiting on condition  [0x00007f8b23af8000]\n   java.lang.Thread.State: RUNNABLE\n        at java.lang.ref.Reference.waitForReferencePendingList(java.base@21.0.2/Native Method)\n        at java.lang.ref.Reference.processPendingReferences(java.base@21.0.2/Reference.java:253)\n        at java.lang.ref.Reference$ReferenceHandler.run(java.base@21.0.2/Reference.java:215)\n\n   Locked ownable synchronizers:\n        - None\n\n\"Finalizer\" #3 daemon [3] prio=8 os_prio=0 cpu=12.45ms elapsed=58234.23s tid=0x00007f8b2c0ab000 nid=0x1abf in Object.wait()  [0x00007f8b239f7000]\n   java.lang.Thread.State: WAITING (on object monitor)\n        at java.lang.Object.wait(java.base@21.0.2/Native Method)\n        - waiting on <0x000000076ab62208> (a java.lang.ref.ReferenceQueue$Lock)\n        at java.lang.ref.ReferenceQueue.remove(java.base@21.0.2/ReferenceQueue.java:155)\n        - locked <0x000000076ab62208> (a java.lang.ref.ReferenceQueue$Lock)\n        at java.lang.ref.ReferenceQueue.remove(java.base@21.0.2/ReferenceQueue.java:176)\n        at java.lang.ref.Finalizer$FinalizerThread.run(java.base@21.0.2/Finalizer.java:172)\n\n   Locked ownable synchronizers:\n        - None\n\n\"Signal Dispatcher\" #4 daemon [4] prio=9 os_prio=0 cpu=0.89ms elapsed=58234.22s tid=0x00007f8b2c0b2000 nid=0x1ac0 runnable  [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n\n   Locked ownable synchronizers:\n        - None\n\n\"VirtualThread-unparker\" #10 daemon [10] prio=5 os_prio=0 cpu=1234.56ms elapsed=58230.15s tid=0x00007f8b2c156000 nid=0x1ac6 waiting on condition  [0x00007f8b235f6000]\n   java.lang.Thread.State: WAITING (parking)\n        at jdk.internal.misc.Unsafe.park(java.base@21.0.2/Native Method)\n        - parking to wait for  <0x000000076ab75678> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n        at java.util.concurrent.locks.LockSupport.park(java.base@21.0.2/LockSupport.java:211)\n        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@21.0.2/AbstractQueuedSynchronizer.java:1623)\n        at java.util.concurrent.LinkedBlockingQueue.take(java.base@21.0.2/LinkedBlockingQueue.java:435)\n        at java.lang.VirtualThread.unpark(java.base@21.0.2/VirtualThread.java:687)\n\n   Locked ownable synchronizers:\n        - None\n\n\"ForkJoinPool-1-worker-1\" #11 daemon [11] prio=5 os_prio=0 cpu=5678.90ms elapsed=58230.14s tid=0x00007f8b2c158000 nid=0x1ac7 waiting on condition  [0x00007f8b234f5000]\n   java.lang.Thread.State: WAITING (parking)\n        at jdk.internal.misc.Unsafe.park(java.base@21.0.2/Native Method)\n        - parking to wait for  <0x000000076ab76890> (a java.util.concurrent.ForkJoinPool)\n        at java.util.concurrent.locks.LockSupport.park(java.base@21.0.2/LockSupport.java:211)\n        at java.util.concurrent.ForkJoinPool.awaitWork(java.base@21.0.2/ForkJoinPool.java:1565)\n        at java.util.concurrent.ForkJoinPool.runWorker(java.base@21.0.2/ForkJoinPool.java:1519)\n        at java.util.concurrent.ForkJoinWorkerThread.run(java.base@21.0.2/ForkJoinWorkerThread.java:165)\n\n   Locked ownable synchronizers:\n        - None\n\n\"VirtualThread[#21]\" #21 virtual [21] prio=5 os_prio=0 cpu=45.23ms elapsed=12345.67s tid=0x00007f8b2c200000 nid=0x1ac8 runnable  [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n        at java.io.FileInputStream.readBytes(java.base@21.0.2/Native Method)\n        at java.io.FileInputStream.read(java.base@21.0.2/FileInputStream.java:276)\n        at java.io.BufferedInputStream.fill(java.base@21.0.2/BufferedInputStream.java:244)\n        at java.io.BufferedInputStream.read1(java.base@21.0.2/BufferedInputStream.java:284)\n        at java.io.BufferedInputStream.read(java.base@21.0.2/BufferedInputStream.java:343)\n        at com.example.virtualthread.FileProcessor.processFile(FileProcessor.java:34)\n        at com.example.virtualthread.TaskRunner.run(TaskRunner.java:28)\n        at java.lang.VirtualThread.run(java.base@21.0.2/VirtualThread.java:309)\n\n   Locked ownable synchronizers:\n        - None\n\n\"VirtualThread[#22]\" #22 virtual [22] prio=5 os_prio=0 cpu=67.89ms elapsed=12340.12s tid=0x00007f8b2c201000 nid=0x1ac9 waiting on condition  [0x0000000000000000]\n   java.lang.Thread.State: TIMED_WAITING (sleeping)\n        at java.lang.Thread.sleep0(java.base@21.0.2/Native Method)\n        at java.lang.Thread.sleep(java.base@21.0.2/Thread.java:509)\n        at com.example.virtualthread.AsyncWorker.doWork(AsyncWorker.java:45)\n        at com.example.virtualthread.AsyncWorker.run(AsyncWorker.java:25)\n        at java.lang.VirtualThread.run(java.base@21.0.2/VirtualThread.java:309)\n\n   Locked ownable synchronizers:\n        - None\n\n\"VirtualThread[#23]\" #23 virtual [23] prio=5 os_prio=0 cpu=123.45ms elapsed=12335.89s tid=0x00007f8b2c202000 nid=0x1aca waiting on condition  [0x0000000000000000]\n   java.lang.Thread.State: WAITING (parking)\n        at jdk.internal.misc.Unsafe.park(java.base@21.0.2/Native Method)\n        - parking to wait for  <0x000000076ab89012> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n        at java.util.concurrent.locks.LockSupport.park(java.base@21.0.2/LockSupport.java:211)\n        at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@21.0.2/AbstractQueuedSynchronizer.java:1623)\n        at java.util.concurrent.BlockingQueue.take(java.base@21.0.2/LinkedBlockingQueue.java:435)\n        at com.example.virtualthread.MessageProcessor.processMessages(MessageProcessor.java:52)\n        at com.example.virtualthread.MessageProcessor.run(MessageProcessor.java:38)\n        at java.lang.VirtualThread.run(java.base@21.0.2/VirtualThread.java:309)\n\n   Locked ownable synchronizers:\n        - None\n\n\"VirtualThread[#24]\" #24 virtual [24] prio=5 os_prio=0 cpu=234.56ms elapsed=12330.45s tid=0x00007f8b2c203000 nid=0x1acb in Object.wait()  [0x0000000000000000]\n   java.lang.Thread.State: WAITING (on object monitor)\n        at java.lang.Object.wait(java.base@21.0.2/Native Method)\n        - waiting on <0x000000076ab90234> (a java.lang.Object)\n        at java.lang.Object.wait(java.base@21.0.2/Object.java:359)\n        at com.example.virtualthread.SynchronizedWorker.waitForSignal(SynchronizedWorker.java:67)\n        - locked <0x000000076ab90234> (a java.lang.Object)\n        at com.example.virtualthread.SynchronizedWorker.run(SynchronizedWorker.java:42)\n        at java.lang.VirtualThread.run(java.base@21.0.2/VirtualThread.java:309)\n\n   Locked ownable synchronizers:\n        - None\n\n\"VirtualThread[#25]\" #25 virtual [25] prio=5 os_prio=0 cpu=345.67ms elapsed=12325.78s tid=0x00007f8b2c204000 nid=0x1acc runnable  [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n        at java.net.SocketInputStream.socketRead0(java.base@21.0.2/Native Method)\n        at java.net.SocketInputStream.socketRead(java.base@21.0.2/SocketInputStream.java:118)\n        at java.net.SocketInputStream.read(java.base@21.0.2/SocketInputStream.java:166)\n        at java.net.SocketInputStream.read(java.base@21.0.2/SocketInputStream.java:140)\n        at java.io.BufferedInputStream.fill(java.base@21.0.2/BufferedInputStream.java:244)\n        at java.io.BufferedInputStream.read1(java.base@21.0.2/BufferedInputStream.java:284)\n        at java.io.BufferedInputStream.read(java.base@21.0.2/BufferedInputStream.java:343)\n        at com.example.virtualthread.NetworkClient.readResponse(NetworkClient.java:89)\n        at com.example.virtualthread.NetworkClient.run(NetworkClient.java:56)\n        at java.lang.VirtualThread.run(java.base@21.0.2/VirtualThread.java:309)\n\n   Locked ownable synchronizers:\n        - None\n\n\"Attach Listener\" #26 daemon [26] prio=9 os_prio=0 cpu=156.78ms elapsed=58230.10s tid=0x00007f8b2c20a000 nid=0x1acd waiting on condition  [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n\n   Locked ownable synchronizers:\n        - None\n\n\"VM Thread\" os_prio=0 cpu=1567820.45ms elapsed=58234.24s tid=0x00007f8b2c0a0000 nid=0x1abc runnable  \n\n\"G1 Main Marker\" os_prio=0 cpu=234567.89ms elapsed=58234.25s tid=0x00007f8b2c040000 nid=0x1abb runnable  \n\n\"G1 Conc#0\" os_prio=0 cpu=345678.90ms elapsed=58230.11s tid=0x00007f8b2c005000 nid=0x1b35 runnable  \n\n\"G1 Refine#0\" os_prio=0 cpu=456789.01ms elapsed=58230.11s tid=0x00007f8b2c006800 nid=0x1b36 runnable  \n\n\"G1 Service\" os_prio=0 cpu=567890.12ms elapsed=58230.10s tid=0x00007f8b2c008000 nid=0x1b37 runnable  \n\n\"VM Periodic Task Thread\" os_prio=0 cpu=67892.34ms elapsed=58234.15s tid=0x00007f8b2c18f000 nid=0x1aca waiting on condition  \n\nJNI global refs: 247, weak refs: 12"
  },
  {
    "path": "tda/src/test/resources/java8dump.log",
    "content": "2016-07-12 14:02:38\nFull thread dump OpenJDK 64-Bit Server VM (25.91-b14 mixed mode):\n\n\"Thread-2\" #20 prio=6 os_prio=0 tid=0x00007f92b01aa000 nid=0x2a43 waiting on condition [0x00007f92f507e000]\n   java.lang.Thread.State: TIMED_WAITING (sleeping)\n\tat java.lang.Thread.sleep(Native Method)\n\tat com.pironet.tda.utils.MemoryStatusUpdater.run(StatusBar.java:124)\n\tat java.lang.Thread.run(Thread.java:745)\n\n\"TimerQueue\" #19 daemon prio=5 os_prio=0 tid=0x00007f92b00fc800 nid=0x2a42 waiting on condition [0x00007f92f9176000]\n   java.lang.Thread.State: WAITING (parking)\n\tat sun.misc.Unsafe.park(Native Method)\n\t- parking to wait for  <0x00000000d7bf6bd0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:211)\n\tat javax.swing.TimerQueue.run(TimerQueue.java:171)\n\tat java.lang.Thread.run(Thread.java:745)\n\n\"Timer-0\" #16 daemon prio=6 os_prio=0 tid=0x00007f92b0057800 nid=0x2a40 in Object.wait() [0x00007f92f9ea4000]\n   java.lang.Thread.State: TIMED_WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\t- waiting on <0x00000000d75b1e48> (a java.util.TaskQueue)\n\tat java.util.TimerThread.mainLoop(Timer.java:552)\n\t- locked <0x00000000d75b1e48> (a java.util.TaskQueue)\n\tat java.util.TimerThread.run(Timer.java:505)\n\n\"DestroyJavaVM\" #14 prio=5 os_prio=0 tid=0x00007f930c009800 nid=0x2a2d waiting on condition [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n\n\"AWT-EventQueue-0\" #12 prio=6 os_prio=0 tid=0x00007f930c464000 nid=0x2a3e waiting on condition [0x00007f92fa0a6000]\n   java.lang.Thread.State: WAITING (parking)\n\tat sun.misc.Unsafe.park(Native Method)\n\t- parking to wait for  <0x00000000d7353320> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\n\tat java.awt.EventQueue.getNextEvent(EventQueue.java:554)\n\tat java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:170)\n\tat java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)\n\tat java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)\n\tat java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)\n\tat java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)\n\tat java.awt.EventDispatchThread.run(EventDispatchThread.java:82)\n\n\"AWT-Shutdown\" #13 prio=5 os_prio=0 tid=0x00007f930c462000 nid=0x2a3d in Object.wait() [0x00007f92fa1a7000]\n   java.lang.Thread.State: WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\t- waiting on <0x00000000d7353cd8> (a java.lang.Object)\n\tat java.lang.Object.wait(Object.java:502)\n\tat sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:295)\n\t- locked <0x00000000d7353cd8> (a java.lang.Object)\n\tat java.lang.Thread.run(Thread.java:745)\n\n\"AWT-XAWT\" #11 daemon prio=6 os_prio=0 tid=0x00007f930c460800 nid=0x2a3c runnable [0x00007f92fa2a8000]\n   java.lang.Thread.State: RUNNABLE\n\tat sun.awt.X11.XToolkit.waitForEvents(Native Method)\n\tat sun.awt.X11.XToolkit.run(XToolkit.java:568)\n\tat sun.awt.X11.XToolkit.run(XToolkit.java:532)\n\tat java.lang.Thread.run(Thread.java:745)\n\n\"Java2D Disposer\" #9 daemon prio=10 os_prio=0 tid=0x00007f930c44c000 nid=0x2a3b in Object.wait() [0x00007f92fa3a9000]\n   java.lang.Thread.State: WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\t- waiting on <0x00000000d7338608> irockel@spunky:~/Entwicklung/tda/tda-git/tda/dist$ (a java.lang.ref.ReferenceQueue$Lock)\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)\n\t- locked <0x00000000d7338608> (a java.lang.ref.ReferenceQueue$Lock)\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)\n\tat sun.java2d.Disposer.run(Disposer.java:148)\n\tat java.lang.Thread.run(Thread.java:745)\n\n\"Service Thread\" #8 daemon prio=9 os_prio=0 tid=0x00007f930c2b3800 nid=0x2a39 runnable [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n\n\"C1 CompilerThread2\" #7 daemon prio=9 os_prio=0 tid=0x00007f930c294000 nid=0x2a38 waiting on condition [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n\n\"C2 CompilerThread1\" #6 daemon prio=9 os_prio=0 tid=0x00007f930c292000 nid=0x2a37 waiting on condition [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n\n\"C2 CompilerThread0\" #5 daemon prio=9 os_prio=0 tid=0x00007f930c28f000 nid=0x2a36 waiting on condition [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n\n\"Signal Dispatcher\" #4 daemon prio=9 os_prio=0 tid=0x00007f930c28d000 nid=0x2a35 waiting on condition [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n\n\"Finalizer\" #3 daemon prio=8 os_prio=0 tid=0x00007f930c266800 nid=0x2a34 in Object.wait() [0x00007f92fb8ef000]\n   java.lang.Thread.State: WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\t- waiting on <0x00000000d7008ee0> (a java.lang.ref.ReferenceQueue$Lock)\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)\n\t- locked <0x00000000d7008ee0> (a java.lang.ref.ReferenceQueue$Lock)\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)\n\tat java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)\n\n\"Reference Handler\" #2 daemon prio=10 os_prio=0 tid=0x00007f930c262000 nid=0x2a33 in Object.wait() [0x00007f92fb9f0000]\n   java.lang.Thread.State: WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\t- waiting on <0x00000000d7006b50> (a java.lang.ref.Reference$Lock)\n\tat java.lang.Object.wait(Object.java:502)\n\tat java.lang.ref.Reference.tryHandlePending(Reference.java:191)\n\t- locked <0x00000000d7006b50> (a java.lang.ref.Reference$Lock)\n\tat java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)\n\n\"VM Thread\" os_prio=0 tid=0x00007f930c25a800 nid=0x2a32 runnable \n\n\"GC task thread#0 (ParallelGC)\" os_prio=0 tid=0x00007f930c01f000 nid=0x2a2e runnable \n\n\"GC task thread#1 (ParallelGC)\" os_prio=0 tid=0x00007f930c020800 nid=0x2a2f runnable \n\n\"GC task thread#2 (ParallelGC)\" os_prio=0 tid=0x00007f930c022800 nid=0x2a30 runnable \n\n\"GC task thread#3 (ParallelGC)\" os_prio=0 tid=0x00007f930c024000 nid=0x2a31 runnable \n\n\"VM Periodic Task Thread\" os_prio=0 tid=0x00007f930c2b6000 nid=0x2a3a waiting on condition \n\nJNI global references: 556\n\nHeap\n PSYoungGen      total 36864K, used 19075K [0x00000000d7000000, 0x00000000d9900000, 0x0000000100000000)\n  eden space 31744K, 60% used [0x00000000d7000000,0x00000000d82a0e88,0x00000000d8f00000)\n  from space 5120K, 0% used [0x00000000d9400000,0x00000000d9400000,0x00000000d9900000)\n  to   space 5120K, 0% used [0x00000000d8f00000,0x00000000d8f00000,0x00000000d9400000)\n ParOldGen       total 84992K, used 0K [0x0000000085000000, 0x000000008a300000, 0x00000000d7000000)\n  object space 84992K, 0% used [0x0000000085000000,0x0000000085000000,0x000000008a300000)\n Metaspace       used 17518K, capacity 17732K, committed 17920K, reserved 1064960K\n  class space    used 2177K, capacity 2276K, committed 2304K, reserved 1048576K\n\n\n\n"
  },
  {
    "path": "tda/src/test/resources/jdk11_long_running.log",
    "content": "2026-01-17 10:00:00\nFull thread dump OpenJDK 64-Bit Server VM (11.0.12+7-LTS mixed mode):\n\n\"C2 CompilerThread0\" #5 daemon prio=9 os_prio=0 cpu=55652.75ms elapsed=107142.81s tid=0x00007f4b3883d000 nid=0x10854 waiting on condition [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n   No compile task\n\n\"VM Periodic Task Thread\" os_prio=0 cpu=450.00ms elapsed=107142.81s tid=0x00007f4b3883d000 nid=0x10855 waiting on condition\n\n2026-01-17 10:01:00\nFull thread dump OpenJDK 64-Bit Server VM (11.0.12+7-LTS mixed mode):\n\n\"C2 CompilerThread0\" #5 daemon prio=9 os_prio=0 cpu=55652.76ms elapsed=107145.12s tid=0x00007f4b3883d000 nid=0x10854 waiting on condition [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n   No compile task\n\n\"VM Periodic Task Thread\" os_prio=0 cpu=451.00ms elapsed=107145.12s tid=0x00007f4b3883d000 nid=0x10855 waiting on condition\n"
  },
  {
    "path": "tda/src/test/resources/jstack_dump.log",
    "content": "2026-01-20 17:29:40\nFull thread dump OpenJDK 64-Bit Server VM (21.0.9+10-LTS mixed mode, sharing):\n\nThreads class SMR info:\n_java_thread_list=0x000000087e826560, length=12, elements={\n0x000000010328e320, 0x000000087f130000, 0x000000087f130700, 0x000000087f130e00,\n0x000000087f131500, 0x000000010328eda0, 0x000000010328f5a0, 0x000000087f131c00,\n0x000000087f132300, 0x000000087f133800, 0x0000000882179500, 0x0000000882179c00\n}\n\n\"Reference Handler\" #9 [30467] daemon prio=10 os_prio=31 cpu=0.44ms elapsed=25574.11s tid=0x000000010328e320 nid=30467 waiting on condition  [0x000000016e7c2000]\n   java.lang.Thread.State: RUNNABLE\n\tat java.lang.ref.Reference.waitForReferencePendingList(java.base@21.0.9/Native Method)\n\tat java.lang.ref.Reference.processPendingReferences(java.base@21.0.9/Reference.java:246)\n\tat java.lang.ref.Reference$ReferenceHandler.run(java.base@21.0.9/Reference.java:208)\n\n   Locked ownable synchronizers:\n\t- None\n\n\"Finalizer\" #10 [25091] daemon prio=8 os_prio=31 cpu=0.05ms elapsed=25574.11s tid=0x000000087f130000 nid=25091 in Object.wait()  [0x000000016e9ce000]\n   java.lang.Thread.State: WAITING (on object monitor)\n\tat java.lang.Object.wait0(java.base@21.0.9/Native Method)\n\t- waiting on <0x000000034b3000f0> (a java.lang.ref.NativeReferenceQueue$Lock)\n\tat java.lang.Object.wait(java.base@21.0.9/Object.java:366)\n\tat java.lang.Object.wait(java.base@21.0.9/Object.java:339)\n\tat java.lang.ref.NativeReferenceQueue.await(java.base@21.0.9/NativeReferenceQueue.java:48)\n\tat java.lang.ref.ReferenceQueue.remove0(java.base@21.0.9/ReferenceQueue.java:158)\n\tat java.lang.ref.NativeReferenceQueue.remove(java.base@21.0.9/NativeReferenceQueue.java:89)\n\t- locked <0x000000034b3000f0> (a java.lang.ref.NativeReferenceQueue$Lock)\n\tat java.lang.ref.Finalizer$FinalizerThread.run(java.base@21.0.9/Finalizer.java:173)\n\n   Locked ownable synchronizers:\n\t- None\n\n\"Signal Dispatcher\" #11 [25603] daemon prio=9 os_prio=31 cpu=1.62ms elapsed=25574.11s tid=0x000000087f130700 nid=25603 waiting on condition  [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n\n   Locked ownable synchronizers:\n\t- None\n\n\"Service Thread\" #12 [25859] daemon prio=9 os_prio=31 cpu=0.45ms elapsed=25574.11s tid=0x000000087f130e00 nid=25859 runnable  [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n\n   Locked ownable synchronizers:\n\t- None\n\n\"Monitor Deflation Thread\" #13 [29699] daemon prio=9 os_prio=31 cpu=2908.37ms elapsed=25574.11s tid=0x000000087f131500 nid=29699 runnable  [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n\n   Locked ownable synchronizers:\n\t- None\n\n\"C2 CompilerThread0\" #14 [26627] daemon prio=9 os_prio=31 cpu=431.56ms elapsed=25574.11s tid=0x000000010328eda0 nid=26627 waiting on condition  [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n   No compile task\n\n   Locked ownable synchronizers:\n\t- None\n\n\"C1 CompilerThread0\" #17 [26883] daemon prio=9 os_prio=31 cpu=413.70ms elapsed=25574.11s tid=0x000000010328f5a0 nid=26883 waiting on condition  [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n   No compile task\n\n   Locked ownable synchronizers:\n\t- None\n\n\"Notification Thread\" #18 [27139] daemon prio=9 os_prio=31 cpu=0.05ms elapsed=25574.10s tid=0x000000087f131c00 nid=27139 runnable  [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n\n   Locked ownable synchronizers:\n\t- None\n\n\"Common-Cleaner\" #19 [27651] daemon prio=8 os_prio=31 cpu=72.73ms elapsed=25574.10s tid=0x000000087f132300 nid=27651 waiting on condition  [0x000000016f822000]\n   java.lang.Thread.State: TIMED_WAITING (parking)\n\tat jdk.internal.misc.Unsafe.park(java.base@21.0.9/Native Method)\n\t- parking to wait for  <0x000000034b3001b0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n\tat java.util.concurrent.locks.LockSupport.parkNanos(java.base@21.0.9/LockSupport.java:269)\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(java.base@21.0.9/AbstractQueuedSynchronizer.java:1886)\n\tat java.lang.ref.ReferenceQueue.await(java.base@21.0.9/ReferenceQueue.java:71)\n\tat java.lang.ref.ReferenceQueue.remove0(java.base@21.0.9/ReferenceQueue.java:143)\n\tat java.lang.ref.ReferenceQueue.remove(java.base@21.0.9/ReferenceQueue.java:218)\n\tat jdk.internal.ref.CleanerImpl.run(java.base@21.0.9/CleanerImpl.java:140)\n\tat java.lang.Thread.runWith(java.base@21.0.9/Thread.java:1596)\n\tat java.lang.Thread.run(java.base@21.0.9/Thread.java:1583)\n\tat jdk.internal.misc.InnocuousThread.run(java.base@21.0.9/InnocuousThread.java:186)\n\n   Locked ownable synchronizers:\n\t- None\n\n\"JPS event loop\" #21 [32771] prio=5 os_prio=31 cpu=1244.00ms elapsed=25573.97s tid=0x000000087f133800 nid=32771 runnable  [0x000000016fe46000]\n   java.lang.Thread.State: RUNNABLE\n\tat sun.nio.ch.KQueue.poll(java.base@21.0.9/Native Method)\n\tat sun.nio.ch.KQueueSelectorImpl.doSelect(java.base@21.0.9/KQueueSelectorImpl.java:125)\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@21.0.9/SelectorImpl.java:130)\n\t- locked <0x000000034b310400> (a sun.nio.ch.Util$2)\n\t- locked <0x000000034b3103a8> (a sun.nio.ch.KQueueSelectorImpl)\n\tat sun.nio.ch.SelectorImpl.select(java.base@21.0.9/SelectorImpl.java:142)\n\tat io.netty.channel.nio.NioIoHandler.select(NioIoHandler.java:646)\n\tat io.netty.channel.nio.NioIoHandler.run(NioIoHandler.java:432)\n\tat io.netty.channel.SingleThreadIoEventLoop.runIo(SingleThreadIoEventLoop.java:203)\n\tat io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:174)\n\tat io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1123)\n\tat io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)\n\tat java.lang.Thread.runWith(java.base@21.0.9/Thread.java:1596)\n\tat java.lang.Thread.run(java.base@21.0.9/Thread.java:1583)\n\n   Locked ownable synchronizers:\n\t- <0x000000034b314548> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)\n\n\"DestroyJavaVM\" #33 [4099] prio=5 os_prio=31 cpu=417.10ms elapsed=25573.66s tid=0x0000000882179500 nid=4099 waiting on condition  [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n\n   Locked ownable synchronizers:\n\t- None\n\n\"Attach Listener\" #34 [33287] daemon prio=9 os_prio=31 cpu=1.16ms elapsed=99.69s tid=0x0000000882179c00 nid=33287 waiting on condition  [0x0000000000000000]\n   java.lang.Thread.State: RUNNABLE\n\n   Locked ownable synchronizers:\n\t- None\n\n\"GC Thread#9\" os_prio=31 cpu=0.26ms elapsed=25573.86s tid=0x0000000881882800 nid=35331 runnable  \n\n\"GC Thread#8\" os_prio=31 cpu=0.72ms elapsed=25573.86s tid=0x0000000881882000 nid=35075 runnable  \n\n\"GC Thread#7\" os_prio=31 cpu=1.06ms elapsed=25573.86s tid=0x0000000881881c00 nid=34819 runnable  \n\n\"GC Thread#6\" os_prio=31 cpu=0.88ms elapsed=25573.86s tid=0x0000000881881800 nid=40963 runnable  \n\n\"GC Thread#5\" os_prio=31 cpu=1.01ms elapsed=25573.86s tid=0x0000000881881400 nid=41475 runnable  \n\n\"GC Thread#4\" os_prio=31 cpu=1.28ms elapsed=25573.86s tid=0x0000000881881000 nid=34051 runnable  \n\n\"GC Thread#3\" os_prio=31 cpu=1.48ms elapsed=25573.86s tid=0x0000000881880c00 nid=41987 runnable  \n\n\"GC Thread#2\" os_prio=31 cpu=1.30ms elapsed=25573.86s tid=0x0000000881880800 nid=42243 runnable  \n\n\"GC Thread#1\" os_prio=31 cpu=0.51ms elapsed=25573.86s tid=0x0000000881880400 nid=33539 runnable  \n\n\"VM Thread\" os_prio=31 cpu=789.01ms elapsed=25574.12s tid=0x000000087f0ee000 nid=18435 runnable  \n\n\"VM Periodic Task Thread\" os_prio=31 cpu=15959.25ms elapsed=25574.12s tid=0x0000000103281f80 nid=20995 waiting on condition  \n\n\"G1 Service\" os_prio=31 cpu=814.24ms elapsed=25574.12s tid=0x000000087f0ec400 nid=16643 runnable  \n\n\"G1 Refine#0\" os_prio=31 cpu=0.03ms elapsed=25574.12s tid=0x000000010327ea20 nid=13827 runnable  \n\n\"G1 Conc#0\" os_prio=31 cpu=0.02ms elapsed=25574.12s tid=0x000000010327bce0 nid=14339 runnable  \n\n\"G1 Main Marker\" os_prio=31 cpu=0.02ms elapsed=25574.12s tid=0x000000010327b240 nid=13315 runnable  \n\n\"GC Thread#0\" os_prio=31 cpu=0.67ms elapsed=25574.12s tid=0x000000010327a420 nid=12803 runnable  \n\nJNI global refs: 14, weak refs: 0\n\n"
  },
  {
    "path": "tda/src/test/resources/test.log",
    "content": "2007-11-06 10:30:41\nFull thread dump Java HotSpot(TM) Client VM 1.6.0_03-b05\n\n\"RMI TCP Connection(23)-127.0.1.1\" id=3149 in RUNNABLE (running in native)\n    at java.net.SocketInputStream.socketRead0(Native Method)\n    at java.net.SocketInputStream.read(SocketInputStream.java:129)\n    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\n    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)\n    at java.io.FilterInputStream.read(FilterInputStream.java:66)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@166fba\n\n\"RMI TCP Connection(22)-127.0.1.1\" id=3148 in RUNNABLE (running in native)\n    at java.net.SocketInputStream.socketRead0(Native Method)\n    at java.net.SocketInputStream.read(SocketInputStream.java:129)\n    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\n    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)\n    at java.io.FilterInputStream.read(FilterInputStream.java:66)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@15bc412\n\n\"RMI TCP Connection(21)-127.0.1.1\" id=3147 in RUNNABLE\n    at sun.management.ThreadImpl.dumpThreads0(Native Method)\n    at sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:374)\n    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n    at java.lang.reflect.Method.invoke(Method.java:597)\n    at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:167)\n    at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:96)\n    at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:33)\n    at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)\n    at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)\n    at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)\n    at javax.management.StandardMBean.invoke(StandardMBean.java:391)\n    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)\n    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)\n    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1426)\n    at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)\n    at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1264)\n    at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1359)\n    at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)\n    at sun.reflect.GeneratedMethodAccessor617.invoke(Unknown Source)\n    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n    at java.lang.reflect.Method.invoke(Method.java:597)\n    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)\n    at sun.rmi.transport.Transport$1.run(Transport.java:159)\n    at java.security.AccessController.doPrivileged(Native Method)\n    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@1a5930e\n\n\"JMX server connection timeout 3146\" id=3146 in TIMED_WAITING\n    - waiting on <0x18df8a5> (a [I)\n    - locked <0x18df8a5> (a [I)\n    at java.lang.Object.wait(Native Method)\n    at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"RMI TCP Connection(19)-127.0.1.1\" id=3144 in RUNNABLE (running in native)\n    at java.net.SocketInputStream.socketRead0(Native Method)\n    at java.net.SocketInputStream.read(SocketInputStream.java:129)\n    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\n    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)\n    at java.io.FilterInputStream.read(FilterInputStream.java:66)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@19c6840\n\n\"Inactive RequestProcessor thread [Was:AnnotationHolder/org.netbeans.modules.editor.hints.AnnotationHolder$2$2]\" id=3143 in TIMED_WAITING\n    - waiting on <0x18c4e5f> (a java.lang.Object)\n    - locked <0x18c4e5f> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Versioning/org.netbeans.modules.versioning.system.cvss.FilesystemHandler$3]\" id=3142 in TIMED_WAITING\n    - waiting on <0x1901c0d> (a java.lang.Object)\n    - locked <0x1901c0d> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:TimedSoftReference/org.openide.util.TimedSoftReference]\" id=3141 in TIMED_WAITING\n    - waiting on <0x1d1db12> (a java.lang.Object)\n    - locked <0x1d1db12> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3140 in TIMED_WAITING\n    - waiting on <0x182dd72> (a java.lang.Object)\n    - locked <0x182dd72> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3139 in TIMED_WAITING\n    - waiting on <0x1796bbc> (a java.lang.Object)\n    - locked <0x1796bbc> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3138 in TIMED_WAITING\n    - waiting on <0x1fac7ae> (a java.lang.Object)\n    - locked <0x1fac7ae> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3137 in TIMED_WAITING\n    - waiting on <0x114d3b6> (a java.lang.Object)\n    - locked <0x114d3b6> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/org.codehaus.mevenide.netbeans.nodes.ProjectFilesNode]\" id=3136 in TIMED_WAITING\n    - waiting on <0x482793> (a java.lang.Object)\n    - locked <0x482793> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/org.netbeans.modules.project.ui.ProjectsRootNode$BadgingNode]\" id=3135 in TIMED_WAITING\n    - waiting on <0xa28a> (a java.lang.Object)\n    - locked <0xa28a> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3134 in TIMED_WAITING\n    - waiting on <0x88a7ea> (a java.lang.Object)\n    - locked <0x88a7ea> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3133 in TIMED_WAITING\n    - waiting on <0x164bc68> (a java.lang.Object)\n    - locked <0x164bc68> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3132 in TIMED_WAITING\n    - waiting on <0x15594c8> (a java.lang.Object)\n    - locked <0x15594c8> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3131 in TIMED_WAITING\n    - waiting on <0x163320f> (a java.lang.Object)\n    - locked <0x163320f> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3130 in TIMED_WAITING\n    - waiting on <0x133f628> (a java.lang.Object)\n    - locked <0x133f628> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3129 in TIMED_WAITING\n    - waiting on <0x15b57f8> (a java.lang.Object)\n    - locked <0x15b57f8> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3128 in TIMED_WAITING\n    - waiting on <0x1bb6056> (a java.lang.Object)\n    - locked <0x1bb6056> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3127 in TIMED_WAITING\n    - waiting on <0x1a9abb8> (a java.lang.Object)\n    - locked <0x1a9abb8> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3126 in TIMED_WAITING\n    - waiting on <0x16ca633> (a java.lang.Object)\n    - locked <0x16ca633> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3125 in TIMED_WAITING\n    - waiting on <0x1a6d5c8> (a java.lang.Object)\n    - locked <0x1a6d5c8> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3124 in TIMED_WAITING\n    - waiting on <0x190486> (a java.lang.Object)\n    - locked <0x190486> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3123 in TIMED_WAITING\n    - waiting on <0x1a03236> (a java.lang.Object)\n    - locked <0x1a03236> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3122 in TIMED_WAITING\n    - waiting on <0x2a5751> (a java.lang.Object)\n    - locked <0x2a5751> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3121 in TIMED_WAITING\n    - waiting on <0x1595756> (a java.lang.Object)\n    - locked <0x1595756> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3120 in TIMED_WAITING\n    - waiting on <0x3795a1> (a java.lang.Object)\n    - locked <0x3795a1> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3119 in TIMED_WAITING\n    - waiting on <0xdf8179> (a java.lang.Object)\n    - locked <0xdf8179> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3118 in TIMED_WAITING\n    - waiting on <0x1077c90> (a java.lang.Object)\n    - locked <0x1077c90> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3117 in TIMED_WAITING\n    - waiting on <0x2fbeef> (a java.lang.Object)\n    - locked <0x2fbeef> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3116 in TIMED_WAITING\n    - waiting on <0x1740e88> (a java.lang.Object)\n    - locked <0x1740e88> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3115 in TIMED_WAITING\n    - waiting on <0x1d1607> (a java.lang.Object)\n    - locked <0x1d1607> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3114 in TIMED_WAITING\n    - waiting on <0x6ffee3> (a java.lang.Object)\n    - locked <0x6ffee3> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3113 in TIMED_WAITING\n    - waiting on <0xdb575e> (a java.lang.Object)\n    - locked <0xdb575e> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3112 in TIMED_WAITING\n    - waiting on <0x1fed426> (a java.lang.Object)\n    - locked <0x1fed426> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3111 in TIMED_WAITING\n    - waiting on <0x15219b> (a java.lang.Object)\n    - locked <0x15219b> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3110 in TIMED_WAITING\n    - waiting on <0x1a3a9ee> (a java.lang.Object)\n    - locked <0x1a3a9ee> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3109 in TIMED_WAITING\n    - waiting on <0xcccc0c> (a java.lang.Object)\n    - locked <0xcccc0c> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3108 in TIMED_WAITING\n    - waiting on <0x1178018> (a java.lang.Object)\n    - locked <0x1178018> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3107 in TIMED_WAITING\n    - waiting on <0xfa0e81> (a java.lang.Object)\n    - locked <0xfa0e81> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3106 in TIMED_WAITING\n    - waiting on <0xe287aa> (a java.lang.Object)\n    - locked <0xe287aa> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3105 in TIMED_WAITING\n    - waiting on <0x171b1f> (a java.lang.Object)\n    - locked <0x171b1f> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/org.codehaus.mevenide.netbeans.nodes.MavenProjectNode]\" id=3104 in TIMED_WAITING\n    - waiting on <0x9c0cdf> (a java.lang.Object)\n    - locked <0x9c0cdf> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:TimedSoftReference/org.openide.util.TimedSoftReference]\" id=3103 in TIMED_WAITING\n    - waiting on <0x7aa377> (a java.lang.Object)\n    - locked <0x7aa377> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3102 in TIMED_WAITING\n    - waiting on <0x18f3935> (a java.lang.Object)\n    - locked <0x18f3935> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3101 in TIMED_WAITING\n    - waiting on <0x29fb70> (a java.lang.Object)\n    - locked <0x29fb70> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3100 in TIMED_WAITING\n    - waiting on <0xf754cb> (a java.lang.Object)\n    - locked <0xf754cb> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3099 in TIMED_WAITING\n    - waiting on <0xa0f9e2> (a java.lang.Object)\n    - locked <0xa0f9e2> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3098 in TIMED_WAITING\n    - waiting on <0xd6b93e> (a java.lang.Object)\n    - locked <0xd6b93e> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3097 in TIMED_WAITING\n    - waiting on <0xc18fb> (a java.lang.Object)\n    - locked <0xc18fb> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3096 in TIMED_WAITING\n    - waiting on <0x3dcb75> (a java.lang.Object)\n    - locked <0x3dcb75> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3095 in TIMED_WAITING\n    - waiting on <0x1f5d99f> (a java.lang.Object)\n    - locked <0x1f5d99f> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3094 in TIMED_WAITING\n    - waiting on <0x15c29e0> (a java.lang.Object)\n    - locked <0x15c29e0> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/org.netbeans.spi.project.support.ant.GlobFileBuiltQuery$StatusImpl]\" id=3093 in TIMED_WAITING\n    - waiting on <0x3061b> (a java.lang.Object)\n    - locked <0x3061b> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3092 in TIMED_WAITING\n    - waiting on <0xa1b41e> (a java.lang.Object)\n    - locked <0xa1b41e> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"RMI TCP Connection(15)-127.0.1.1\" id=2617 in TIMED_WAITING\n    - waiting on <0x19e0708> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)\n    - locked <0x19e0708> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)\n    at java.lang.Object.wait(Native Method)\n    at com.sun.jmx.remote.internal.ArrayNotificationBuffer.fetchNotifications(ArrayNotificationBuffer.java:341)\n    at com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.fetchNotifications(ArrayNotificationBuffer.java:123)\n    at com.sun.jmx.remote.internal.ServerNotifForwarder.fetchNotifs(ServerNotifForwarder.java:258)\n    at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1227)\n    at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1225)\n    at javax.management.remote.rmi.RMIConnectionImpl.fetchNotifications(RMIConnectionImpl.java:1231)\n    at sun.reflect.GeneratedMethodAccessor706.invoke(Unknown Source)\n    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n    at java.lang.reflect.Method.invoke(Method.java:597)\n    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)\n    at sun.rmi.transport.Transport$1.run(Transport.java:159)\n    at java.security.AccessController.doPrivileged(Native Method)\n    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@131f99\n\n\"RMI TCP Connection(20)-127.0.1.1\" id=2616 in RUNNABLE (running in native)\n    at java.net.SocketInputStream.socketRead0(Native Method)\n    at java.net.SocketInputStream.read(SocketInputStream.java:129)\n    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\n    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)\n    at java.io.FilterInputStream.read(FilterInputStream.java:66)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@18ff747\n\n\"RMI TCP Connection(18)-127.0.1.1\" id=2615 in TIMED_WAITING\n    - waiting on <0x19e0708> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)\n    - locked <0x19e0708> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)\n    at java.lang.Object.wait(Native Method)\n    at com.sun.jmx.remote.internal.ArrayNotificationBuffer.fetchNotifications(ArrayNotificationBuffer.java:341)\n    at com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.fetchNotifications(ArrayNotificationBuffer.java:123)\n    at com.sun.jmx.remote.internal.ServerNotifForwarder.fetchNotifs(ServerNotifForwarder.java:258)\n    at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1227)\n    at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1225)\n    at javax.management.remote.rmi.RMIConnectionImpl.fetchNotifications(RMIConnectionImpl.java:1231)\n    at sun.reflect.GeneratedMethodAccessor706.invoke(Unknown Source)\n    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n    at java.lang.reflect.Method.invoke(Method.java:597)\n    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)\n    at sun.rmi.transport.Transport$1.run(Transport.java:159)\n    at java.security.AccessController.doPrivileged(Native Method)\n    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@b38440\n\n\"JMX server connection timeout 2613\" id=2613 in TIMED_WAITING\n    - waiting on <0x302c8e> (a [I)\n    - locked <0x302c8e> (a [I)\n    at java.lang.Object.wait(Native Method)\n    at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"RMI Scheduler(0)\" id=2547 in TIMED_WAITING\n    - waiting on <0x1efe2bc> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    - locked <0x1efe2bc> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    at sun.misc.Unsafe.park(Native Method)\n    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)\n    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)\n    at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)\n    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:582)\n    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:575)\n    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:946)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:906)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"RMI TCP Accept-0\" id=2545 in RUNNABLE (running in native)\n    at java.net.PlainSocketImpl.socketAccept(Native Method)\n    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\n    at java.net.ServerSocket.implAccept(ServerSocket.java:453)\n    at java.net.ServerSocket.accept(ServerSocket.java:421)\n    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)\n    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Attach Listener\" id=2544 in RUNNABLE\n\n    Locked synchronizers: count = 0\n\n\"GSF Source Worker Thread\" id=137 in TIMED_WAITING\n    - waiting on <0x13a2ace> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    - locked <0x13a2ace> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    at sun.misc.Unsafe.park(Native Method)\n    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)\n    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)\n    at java.util.concurrent.PriorityBlockingQueue.poll(PriorityBlockingQueue.java:245)\n    at org.netbeans.api.retouche.source.Source$CompilationJob.run(Source.java:1126)\n    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)\n    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)\n    at java.util.concurrent.FutureTask.run(FutureTask.java:138)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@d38397\n\n\"org.netbeans.modules.retouche.source.usages.RepositoryUpdater\" id=136 in WAITING\n    - waiting on <0xc1a33> (a java.util.TaskQueue)\n    - locked <0xc1a33> (a java.util.TaskQueue)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.util.TimerThread.mainLoop(Timer.java:483)\n    at java.util.TimerThread.run(Timer.java:462)\n\n    Locked synchronizers: count = 0\n\n\"pool-2-thread-1\" id=134 in WAITING\n    - waiting on <0xbf6480> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    - locked <0xbf6480> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    at sun.misc.Unsafe.park(Native Method)\n    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)\n    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)\n    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)\n    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:946)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:906)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Timer-2\" id=89 in WAITING\n    - waiting on <0x1470797> (a java.util.TaskQueue)\n    - locked <0x1470797> (a java.util.TaskQueue)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.util.TimerThread.mainLoop(Timer.java:483)\n    at java.util.TimerThread.run(Timer.java:462)\n\n    Locked synchronizers: count = 0\n\n\"DestroyJavaVM\" id=51 in RUNNABLE\n\n    Locked synchronizers: count = 0\n\n\"Collaboration Notification\" id=46 in WAITING\n    - waiting on <0x198ab83> (a java.lang.Object)\n    - locked <0x198ab83> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at org.netbeans.modules.collab.ui.NotificationThread.run(NotificationThread.java:121)\n\n    Locked synchronizers: count = 0\n\n\"AWT-EventQueue-1\" id=45 in WAITING\n    - waiting on <0x1104843> (a java.awt.EventQueue)\n    - locked <0x1104843> (a java.awt.EventQueue)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.awt.EventQueue.getNextEvent(EventQueue.java:479)\n    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:245)\n    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)\n    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)\n    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)\n    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)\n    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)\n\n    Locked synchronizers: count = 0\n\n\"Creator Error Handler Listener\" id=44 in RUNNABLE (running in native)\n    at java.net.PlainSocketImpl.socketAccept(Native Method)\n    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\n    at java.net.ServerSocket.implAccept(ServerSocket.java:453)\n    at java.net.ServerSocket.accept(ServerSocket.java:421)\n    at org.netbeans.modules.visualweb.errorhandler.DebugServerThread.run(DebugServerThread.java:115)\n\n    Locked synchronizers: count = 0\n\n\"*** JFluid Separate Command Execution Thread\" id=38 in WAITING\n    - waiting on <0x61cebf> (a java.lang.Object)\n    - locked <0x61cebf> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at org.netbeans.lib.profiler.ProfilerClient$SeparateCmdExecutionThread.run(ProfilerClient.java:104)\n\n    Locked synchronizers: count = 0\n\n\"Repository writer 0\" id=31 in TIMED_WAITING\n    at java.lang.Thread.sleep(Native Method)\n    at org.netbeans.modules.cnd.repository.queue.RepositoryWritingThread.waitReady(RepositoryWritingThread.java:94)\n    at org.netbeans.modules.cnd.repository.queue.RepositoryWritingThread.run(RepositoryWritingThread.java:128)\n    at org.netbeans.modules.cnd.repository.queue.RepositoryThreadManager$Wrapper.run(RepositoryThreadManager.java:84)\n    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)\n\n    Locked synchronizers: count = 0\n\n\"TimerQueue\" id=25 in TIMED_WAITING\n    - waiting on <0x1d6d71c> (a javax.swing.TimerQueue)\n    - locked <0x1d6d71c> (a javax.swing.TimerQueue)\n    at java.lang.Object.wait(Native Method)\n    at javax.swing.TimerQueue.run(TimerQueue.java:236)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Thread-3\" id=24 in WAITING\n    - waiting on <0x65ff23> (a java.util.LinkedList)\n    - locked <0x65ff23> (a java.util.LinkedList)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.util.prefs.AbstractPreferences$EventDispatchThread.run(AbstractPreferences.java:1461)\n\n    Locked synchronizers: count = 0\n\n\"Java Source Worker Thread\" id=23 in TIMED_WAITING\n    - waiting on <0x6b2268> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    - locked <0x6b2268> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    at sun.misc.Unsafe.park(Native Method)\n    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)\n    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)\n    at java.util.concurrent.PriorityBlockingQueue.poll(PriorityBlockingQueue.java:245)\n    at org.netbeans.api.java.source.JavaSource$CompilationJob.run(JavaSource.java:1428)\n    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)\n    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)\n    at java.util.concurrent.FutureTask.run(FutureTask.java:138)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@ea2050\n\n\"Code Model Parser 0\" id=17 in WAITING\n    - waiting on <0x18bc3e4> (a java.lang.Object)\n    - locked <0x18bc3e4> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserQueue.waitReady(ParserQueue.java:378)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:68)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:82)\n    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)\n\n    Locked synchronizers: count = 0\n\n\"AWT-Shutdown\" id=16 in WAITING\n    - waiting on <0x1d4094b> (a java.lang.Object)\n    - locked <0x1d4094b> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"AWT-XAWT\" id=14 in RUNNABLE\n    at sun.awt.X11.XToolkit.waitForEvents(Native Method)\n    at sun.awt.X11.XToolkit.run(XToolkit.java:544)\n    at sun.awt.X11.XToolkit.run(XToolkit.java:519)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Java2D Disposer\" id=13 in WAITING\n    - waiting on <0x12c336> (a java.lang.ref.ReferenceQueue$Lock)\n    - locked <0x12c336> (a java.lang.ref.ReferenceQueue$Lock)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)\n    at sun.java2d.Disposer.run(Disposer.java:125)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Code Model Parser 1\" id=11 in WAITING\n    - waiting on <0x18bc3e4> (a java.lang.Object)\n    - locked <0x18bc3e4> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserQueue.waitReady(ParserQueue.java:378)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:68)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:82)\n    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)\n\n    Locked synchronizers: count = 0\n\n\"Timer-0\" id=10 in TIMED_WAITING\n    - waiting on <0x6a1dfc> (a java.util.TaskQueue)\n    - locked <0x6a1dfc> (a java.util.TaskQueue)\n    at java.lang.Object.wait(Native Method)\n    at java.util.TimerThread.mainLoop(Timer.java:509)\n    at java.util.TimerThread.run(Timer.java:462)\n\n    Locked synchronizers: count = 0\n\n\"CLI Requests Server\" id=9 in RUNNABLE (running in native)\n    at java.net.PlainSocketImpl.socketAccept(Native Method)\n    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\n    at java.net.ServerSocket.implAccept(ServerSocket.java:453)\n    at java.net.ServerSocket.accept(ServerSocket.java:421)\n    at org.netbeans.CLIHandler$Server.run(CLIHandler.java:1003)\n\n    Locked synchronizers: count = 0\n\n\"Active Reference Queue Daemon\" id=8 in WAITING\n    - waiting on <0x10c0d43> (a java.lang.ref.ReferenceQueue$Lock)\n    - locked <0x10c0d43> (a java.lang.ref.ReferenceQueue$Lock)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\n    at org.openide.util.Utilities$ActiveQueue.run(Utilities.java:3056)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Signal Dispatcher\" id=4 in RUNNABLE\n\n    Locked synchronizers: count = 0\n\n\"Finalizer\" id=3 in WAITING\n    - waiting on <0xcb9d10> (a java.lang.ref.ReferenceQueue$Lock)\n    - locked <0xcb9d10> (a java.lang.ref.ReferenceQueue$Lock)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)\n    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)\n\n    Locked synchronizers: count = 0\n\n\"Reference Handler\" id=2 in WAITING\n    - waiting on <0x1dea370> (a java.lang.ref.Reference$Lock)\n    - locked <0x1dea370> (a java.lang.ref.Reference$Lock)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)\n\n    Locked synchronizers: count = 0\n\n\n\n<EndOfDump>\n\n\n2007-11-06 10:30:45\nFull thread dump Java HotSpot(TM) Client VM 1.6.0_03-b05\n\n\"RMI TCP Connection(23)-127.0.1.1\" id=3149 in RUNNABLE (running in native)\n    at java.net.SocketInputStream.socketRead0(Native Method)\n    at java.net.SocketInputStream.read(SocketInputStream.java:129)\n    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\n    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)\n    at java.io.FilterInputStream.read(FilterInputStream.java:66)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@166fba\n\n\"RMI TCP Connection(22)-127.0.1.1\" id=3148 in RUNNABLE (running in native)\n    at java.net.SocketInputStream.socketRead0(Native Method)\n    at java.net.SocketInputStream.read(SocketInputStream.java:129)\n    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\n    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)\n    at java.io.FilterInputStream.read(FilterInputStream.java:66)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@15bc412\n\n\"RMI TCP Connection(21)-127.0.1.1\" id=3147 in RUNNABLE\n    at sun.management.ThreadImpl.dumpThreads0(Native Method)\n    at sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:374)\n    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n    at java.lang.reflect.Method.invoke(Method.java:597)\n    at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:167)\n    at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:96)\n    at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:33)\n    at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)\n    at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)\n    at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)\n    at javax.management.StandardMBean.invoke(StandardMBean.java:391)\n    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)\n    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)\n    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1426)\n    at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)\n    at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1264)\n    at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1359)\n    at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)\n    at sun.reflect.GeneratedMethodAccessor617.invoke(Unknown Source)\n    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n    at java.lang.reflect.Method.invoke(Method.java:597)\n    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)\n    at sun.rmi.transport.Transport$1.run(Transport.java:159)\n    at java.security.AccessController.doPrivileged(Native Method)\n    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@1a5930e\n\n\"JMX server connection timeout 3146\" id=3146 in TIMED_WAITING\n    - waiting on <0x18df8a5> (a [I)\n    - locked <0x18df8a5> (a [I)\n    at java.lang.Object.wait(Native Method)\n    at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"RMI TCP Connection(19)-127.0.1.1\" id=3144 in RUNNABLE (running in native)\n    at java.net.SocketInputStream.socketRead0(Native Method)\n    at java.net.SocketInputStream.read(SocketInputStream.java:129)\n    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\n    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)\n    at java.io.FilterInputStream.read(FilterInputStream.java:66)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@19c6840\n\n\"Inactive RequestProcessor thread [Was:Versioning/org.netbeans.modules.versioning.system.cvss.FilesystemHandler$3]\" id=3142 in TIMED_WAITING\n    - waiting on <0x1901c0d> (a java.lang.Object)\n    - locked <0x1901c0d> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:TimedSoftReference/org.openide.util.TimedSoftReference]\" id=3141 in TIMED_WAITING\n    - waiting on <0x1d1db12> (a java.lang.Object)\n    - locked <0x1d1db12> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3140 in TIMED_WAITING\n    - waiting on <0x182dd72> (a java.lang.Object)\n    - locked <0x182dd72> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3139 in TIMED_WAITING\n    - waiting on <0x1796bbc> (a java.lang.Object)\n    - locked <0x1796bbc> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3138 in TIMED_WAITING\n    - waiting on <0x1fac7ae> (a java.lang.Object)\n    - locked <0x1fac7ae> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3137 in TIMED_WAITING\n    - waiting on <0x114d3b6> (a java.lang.Object)\n    - locked <0x114d3b6> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/org.netbeans.modules.project.ui.ProjectsRootNode$BadgingNode]\" id=3135 in TIMED_WAITING\n    - waiting on <0xa28a> (a java.lang.Object)\n    - locked <0xa28a> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3134 in TIMED_WAITING\n    - waiting on <0x88a7ea> (a java.lang.Object)\n    - locked <0x88a7ea> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3133 in TIMED_WAITING\n    - waiting on <0x164bc68> (a java.lang.Object)\n    - locked <0x164bc68> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3132 in TIMED_WAITING\n    - waiting on <0x15594c8> (a java.lang.Object)\n    - locked <0x15594c8> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3131 in TIMED_WAITING\n    - waiting on <0x163320f> (a java.lang.Object)\n    - locked <0x163320f> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3130 in TIMED_WAITING\n    - waiting on <0x133f628> (a java.lang.Object)\n    - locked <0x133f628> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3129 in TIMED_WAITING\n    - waiting on <0x15b57f8> (a java.lang.Object)\n    - locked <0x15b57f8> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3128 in TIMED_WAITING\n    - waiting on <0x1bb6056> (a java.lang.Object)\n    - locked <0x1bb6056> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3127 in TIMED_WAITING\n    - waiting on <0x1a9abb8> (a java.lang.Object)\n    - locked <0x1a9abb8> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3126 in TIMED_WAITING\n    - waiting on <0x16ca633> (a java.lang.Object)\n    - locked <0x16ca633> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3125 in TIMED_WAITING\n    - waiting on <0x1a6d5c8> (a java.lang.Object)\n    - locked <0x1a6d5c8> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3124 in TIMED_WAITING\n    - waiting on <0x190486> (a java.lang.Object)\n    - locked <0x190486> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3123 in TIMED_WAITING\n    - waiting on <0x1a03236> (a java.lang.Object)\n    - locked <0x1a03236> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3122 in TIMED_WAITING\n    - waiting on <0x2a5751> (a java.lang.Object)\n    - locked <0x2a5751> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3121 in TIMED_WAITING\n    - waiting on <0x1595756> (a java.lang.Object)\n    - locked <0x1595756> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3120 in TIMED_WAITING\n    - waiting on <0x3795a1> (a java.lang.Object)\n    - locked <0x3795a1> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3119 in TIMED_WAITING\n    - waiting on <0xdf8179> (a java.lang.Object)\n    - locked <0xdf8179> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3118 in TIMED_WAITING\n    - waiting on <0x1077c90> (a java.lang.Object)\n    - locked <0x1077c90> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3117 in TIMED_WAITING\n    - waiting on <0x2fbeef> (a java.lang.Object)\n    - locked <0x2fbeef> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3116 in TIMED_WAITING\n    - waiting on <0x1740e88> (a java.lang.Object)\n    - locked <0x1740e88> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3115 in TIMED_WAITING\n    - waiting on <0x1d1607> (a java.lang.Object)\n    - locked <0x1d1607> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3114 in TIMED_WAITING\n    - waiting on <0x6ffee3> (a java.lang.Object)\n    - locked <0x6ffee3> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3113 in TIMED_WAITING\n    - waiting on <0xdb575e> (a java.lang.Object)\n    - locked <0xdb575e> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3112 in TIMED_WAITING\n    - waiting on <0x1fed426> (a java.lang.Object)\n    - locked <0x1fed426> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3111 in TIMED_WAITING\n    - waiting on <0x15219b> (a java.lang.Object)\n    - locked <0x15219b> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3110 in TIMED_WAITING\n    - waiting on <0x1a3a9ee> (a java.lang.Object)\n    - locked <0x1a3a9ee> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3109 in TIMED_WAITING\n    - waiting on <0xcccc0c> (a java.lang.Object)\n    - locked <0xcccc0c> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3108 in TIMED_WAITING\n    - waiting on <0x1178018> (a java.lang.Object)\n    - locked <0x1178018> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3107 in TIMED_WAITING\n    - waiting on <0xfa0e81> (a java.lang.Object)\n    - locked <0xfa0e81> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3106 in TIMED_WAITING\n    - waiting on <0xe287aa> (a java.lang.Object)\n    - locked <0xe287aa> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3105 in TIMED_WAITING\n    - waiting on <0x171b1f> (a java.lang.Object)\n    - locked <0x171b1f> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/org.codehaus.mevenide.netbeans.nodes.MavenProjectNode]\" id=3104 in TIMED_WAITING\n    - waiting on <0x9c0cdf> (a java.lang.Object)\n    - locked <0x9c0cdf> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:TimedSoftReference/org.openide.util.TimedSoftReference]\" id=3103 in TIMED_WAITING\n    - waiting on <0x7aa377> (a java.lang.Object)\n    - locked <0x7aa377> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3102 in TIMED_WAITING\n    - waiting on <0x18f3935> (a java.lang.Object)\n    - locked <0x18f3935> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3101 in TIMED_WAITING\n    - waiting on <0x29fb70> (a java.lang.Object)\n    - locked <0x29fb70> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3100 in TIMED_WAITING\n    - waiting on <0xf754cb> (a java.lang.Object)\n    - locked <0xf754cb> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3099 in TIMED_WAITING\n    - waiting on <0xa0f9e2> (a java.lang.Object)\n    - locked <0xa0f9e2> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3098 in TIMED_WAITING\n    - waiting on <0xd6b93e> (a java.lang.Object)\n    - locked <0xd6b93e> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3097 in TIMED_WAITING\n    - waiting on <0xc18fb> (a java.lang.Object)\n    - locked <0xc18fb> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3096 in TIMED_WAITING\n    - waiting on <0x3dcb75> (a java.lang.Object)\n    - locked <0x3dcb75> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3095 in TIMED_WAITING\n    - waiting on <0x1f5d99f> (a java.lang.Object)\n    - locked <0x1f5d99f> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3094 in TIMED_WAITING\n    - waiting on <0x15c29e0> (a java.lang.Object)\n    - locked <0x15c29e0> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/org.netbeans.spi.project.support.ant.GlobFileBuiltQuery$StatusImpl]\" id=3093 in TIMED_WAITING\n    - waiting on <0x3061b> (a java.lang.Object)\n    - locked <0x3061b> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3092 in TIMED_WAITING\n    - waiting on <0xa1b41e> (a java.lang.Object)\n    - locked <0xa1b41e> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"RMI TCP Connection(15)-127.0.1.1\" id=2617 in TIMED_WAITING\n    - waiting on <0x19e0708> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)\n    - locked <0x19e0708> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)\n    at java.lang.Object.wait(Native Method)\n    at com.sun.jmx.remote.internal.ArrayNotificationBuffer.fetchNotifications(ArrayNotificationBuffer.java:341)\n    at com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.fetchNotifications(ArrayNotificationBuffer.java:123)\n    at com.sun.jmx.remote.internal.ServerNotifForwarder.fetchNotifs(ServerNotifForwarder.java:258)\n    at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1227)\n    at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1225)\n    at javax.management.remote.rmi.RMIConnectionImpl.fetchNotifications(RMIConnectionImpl.java:1231)\n    at sun.reflect.GeneratedMethodAccessor706.invoke(Unknown Source)\n    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n    at java.lang.reflect.Method.invoke(Method.java:597)\n    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)\n    at sun.rmi.transport.Transport$1.run(Transport.java:159)\n    at java.security.AccessController.doPrivileged(Native Method)\n    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@131f99\n\n\"RMI TCP Connection(20)-127.0.1.1\" id=2616 in RUNNABLE (running in native)\n    at java.net.SocketInputStream.socketRead0(Native Method)\n    at java.net.SocketInputStream.read(SocketInputStream.java:129)\n    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\n    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)\n    at java.io.FilterInputStream.read(FilterInputStream.java:66)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@18ff747\n\n\"RMI TCP Connection(18)-127.0.1.1\" id=2615 in TIMED_WAITING\n    - waiting on <0x19e0708> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)\n    - locked <0x19e0708> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)\n    at java.lang.Object.wait(Native Method)\n    at com.sun.jmx.remote.internal.ArrayNotificationBuffer.fetchNotifications(ArrayNotificationBuffer.java:341)\n    at com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.fetchNotifications(ArrayNotificationBuffer.java:123)\n    at com.sun.jmx.remote.internal.ServerNotifForwarder.fetchNotifs(ServerNotifForwarder.java:258)\n    at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1227)\n    at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1225)\n    at javax.management.remote.rmi.RMIConnectionImpl.fetchNotifications(RMIConnectionImpl.java:1231)\n    at sun.reflect.GeneratedMethodAccessor706.invoke(Unknown Source)\n    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n    at java.lang.reflect.Method.invoke(Method.java:597)\n    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)\n    at sun.rmi.transport.Transport$1.run(Transport.java:159)\n    at java.security.AccessController.doPrivileged(Native Method)\n    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@b38440\n\n\"JMX server connection timeout 2613\" id=2613 in TIMED_WAITING\n    - waiting on <0x302c8e> (a [I)\n    - locked <0x302c8e> (a [I)\n    at java.lang.Object.wait(Native Method)\n    at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"RMI Scheduler(0)\" id=2547 in TIMED_WAITING\n    - waiting on <0x1efe2bc> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    - locked <0x1efe2bc> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    at sun.misc.Unsafe.park(Native Method)\n    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)\n    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)\n    at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)\n    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:582)\n    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:575)\n    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:946)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:906)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"RMI TCP Accept-0\" id=2545 in RUNNABLE (running in native)\n    at java.net.PlainSocketImpl.socketAccept(Native Method)\n    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\n    at java.net.ServerSocket.implAccept(ServerSocket.java:453)\n    at java.net.ServerSocket.accept(ServerSocket.java:421)\n    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)\n    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Attach Listener\" id=2544 in RUNNABLE\n\n    Locked synchronizers: count = 0\n\n\"GSF Source Worker Thread\" id=137 in TIMED_WAITING\n    - waiting on <0x13a2ace> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    - locked <0x13a2ace> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    at sun.misc.Unsafe.park(Native Method)\n    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)\n    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)\n    at java.util.concurrent.PriorityBlockingQueue.poll(PriorityBlockingQueue.java:245)\n    at org.netbeans.api.retouche.source.Source$CompilationJob.run(Source.java:1126)\n    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)\n    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)\n    at java.util.concurrent.FutureTask.run(FutureTask.java:138)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@d38397\n\n\"org.netbeans.modules.retouche.source.usages.RepositoryUpdater\" id=136 in WAITING\n    - waiting on <0xc1a33> (a java.util.TaskQueue)\n    - locked <0xc1a33> (a java.util.TaskQueue)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.util.TimerThread.mainLoop(Timer.java:483)\n    at java.util.TimerThread.run(Timer.java:462)\n\n    Locked synchronizers: count = 0\n\n\"pool-2-thread-1\" id=134 in WAITING\n    - waiting on <0xbf6480> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    - locked <0xbf6480> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    at sun.misc.Unsafe.park(Native Method)\n    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)\n    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)\n    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)\n    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:946)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:906)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Timer-2\" id=89 in WAITING\n    - waiting on <0x1470797> (a java.util.TaskQueue)\n    - locked <0x1470797> (a java.util.TaskQueue)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.util.TimerThread.mainLoop(Timer.java:483)\n    at java.util.TimerThread.run(Timer.java:462)\n\n    Locked synchronizers: count = 0\n\n\"DestroyJavaVM\" id=51 in RUNNABLE\n\n    Locked synchronizers: count = 0\n\n\"Collaboration Notification\" id=46 in WAITING\n    - waiting on <0x198ab83> (a java.lang.Object)\n    - locked <0x198ab83> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at org.netbeans.modules.collab.ui.NotificationThread.run(NotificationThread.java:121)\n\n    Locked synchronizers: count = 0\n\n\"AWT-EventQueue-1\" id=45 in WAITING\n    - waiting on <0x1104843> (a java.awt.EventQueue)\n    - locked <0x1104843> (a java.awt.EventQueue)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.awt.EventQueue.getNextEvent(EventQueue.java:479)\n    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:245)\n    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)\n    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)\n    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)\n    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)\n    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)\n\n    Locked synchronizers: count = 0\n\n\"Creator Error Handler Listener\" id=44 in RUNNABLE (running in native)\n    at java.net.PlainSocketImpl.socketAccept(Native Method)\n    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\n    at java.net.ServerSocket.implAccept(ServerSocket.java:453)\n    at java.net.ServerSocket.accept(ServerSocket.java:421)\n    at org.netbeans.modules.visualweb.errorhandler.DebugServerThread.run(DebugServerThread.java:115)\n\n    Locked synchronizers: count = 0\n\n\"*** JFluid Separate Command Execution Thread\" id=38 in WAITING\n    - waiting on <0x61cebf> (a java.lang.Object)\n    - locked <0x61cebf> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at org.netbeans.lib.profiler.ProfilerClient$SeparateCmdExecutionThread.run(ProfilerClient.java:104)\n\n    Locked synchronizers: count = 0\n\n\"Repository writer 0\" id=31 in TIMED_WAITING\n    at java.lang.Thread.sleep(Native Method)\n    at org.netbeans.modules.cnd.repository.queue.RepositoryWritingThread.waitReady(RepositoryWritingThread.java:94)\n    at org.netbeans.modules.cnd.repository.queue.RepositoryWritingThread.run(RepositoryWritingThread.java:128)\n    at org.netbeans.modules.cnd.repository.queue.RepositoryThreadManager$Wrapper.run(RepositoryThreadManager.java:84)\n    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)\n\n    Locked synchronizers: count = 0\n\n\"TimerQueue\" id=25 in TIMED_WAITING\n    - waiting on <0x1d6d71c> (a javax.swing.TimerQueue)\n    - locked <0x1d6d71c> (a javax.swing.TimerQueue)\n    at java.lang.Object.wait(Native Method)\n    at javax.swing.TimerQueue.run(TimerQueue.java:236)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Thread-3\" id=24 in WAITING\n    - waiting on <0x65ff23> (a java.util.LinkedList)\n    - locked <0x65ff23> (a java.util.LinkedList)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.util.prefs.AbstractPreferences$EventDispatchThread.run(AbstractPreferences.java:1461)\n\n    Locked synchronizers: count = 0\n\n\"Java Source Worker Thread\" id=23 in TIMED_WAITING\n    - waiting on <0x6b2268> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    - locked <0x6b2268> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    at sun.misc.Unsafe.park(Native Method)\n    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)\n    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)\n    at java.util.concurrent.PriorityBlockingQueue.poll(PriorityBlockingQueue.java:245)\n    at org.netbeans.api.java.source.JavaSource$CompilationJob.run(JavaSource.java:1428)\n    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)\n    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)\n    at java.util.concurrent.FutureTask.run(FutureTask.java:138)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@ea2050\n\n\"Code Model Parser 0\" id=17 in WAITING\n    - waiting on <0x18bc3e4> (a java.lang.Object)\n    - locked <0x18bc3e4> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserQueue.waitReady(ParserQueue.java:378)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:68)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:82)\n    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)\n\n    Locked synchronizers: count = 0\n\n\"AWT-Shutdown\" id=16 in WAITING\n    - waiting on <0x1d4094b> (a java.lang.Object)\n    - locked <0x1d4094b> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"AWT-XAWT\" id=14 in RUNNABLE\n    at sun.awt.X11.XToolkit.waitForEvents(Native Method)\n    at sun.awt.X11.XToolkit.run(XToolkit.java:544)\n    at sun.awt.X11.XToolkit.run(XToolkit.java:519)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Java2D Disposer\" id=13 in WAITING\n    - waiting on <0x12c336> (a java.lang.ref.ReferenceQueue$Lock)\n    - locked <0x12c336> (a java.lang.ref.ReferenceQueue$Lock)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)\n    at sun.java2d.Disposer.run(Disposer.java:125)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Code Model Parser 1\" id=11 in WAITING\n    - waiting on <0x18bc3e4> (a java.lang.Object)\n    - locked <0x18bc3e4> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserQueue.waitReady(ParserQueue.java:378)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:68)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:82)\n    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)\n\n    Locked synchronizers: count = 0\n\n\"Timer-0\" id=10 in TIMED_WAITING\n    - waiting on <0x6a1dfc> (a java.util.TaskQueue)\n    - locked <0x6a1dfc> (a java.util.TaskQueue)\n    at java.lang.Object.wait(Native Method)\n    at java.util.TimerThread.mainLoop(Timer.java:509)\n    at java.util.TimerThread.run(Timer.java:462)\n\n    Locked synchronizers: count = 0\n\n\"CLI Requests Server\" id=9 in RUNNABLE (running in native)\n    at java.net.PlainSocketImpl.socketAccept(Native Method)\n    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\n    at java.net.ServerSocket.implAccept(ServerSocket.java:453)\n    at java.net.ServerSocket.accept(ServerSocket.java:421)\n    at org.netbeans.CLIHandler$Server.run(CLIHandler.java:1003)\n\n    Locked synchronizers: count = 0\n\n\"Active Reference Queue Daemon\" id=8 in WAITING\n    - waiting on <0x10c0d43> (a java.lang.ref.ReferenceQueue$Lock)\n    - locked <0x10c0d43> (a java.lang.ref.ReferenceQueue$Lock)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\n    at org.openide.util.Utilities$ActiveQueue.run(Utilities.java:3056)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Signal Dispatcher\" id=4 in RUNNABLE\n\n    Locked synchronizers: count = 0\n\n\"Finalizer\" id=3 in WAITING\n    - waiting on <0xcb9d10> (a java.lang.ref.ReferenceQueue$Lock)\n    - locked <0xcb9d10> (a java.lang.ref.ReferenceQueue$Lock)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)\n    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)\n\n    Locked synchronizers: count = 0\n\n\"Reference Handler\" id=2 in WAITING\n    - waiting on <0x1dea370> (a java.lang.ref.Reference$Lock)\n    - locked <0x1dea370> (a java.lang.ref.Reference$Lock)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)\n\n    Locked synchronizers: count = 0\n\n\n\n<EndOfDump>\n\n\n2007-11-06 10:30:46\nFull thread dump Java HotSpot(TM) Client VM 1.6.0_03-b05\n\n\"RMI TCP Connection(23)-127.0.1.1\" id=3149 in RUNNABLE (running in native)\n    at java.net.SocketInputStream.socketRead0(Native Method)\n    at java.net.SocketInputStream.read(SocketInputStream.java:129)\n    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\n    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)\n    at java.io.FilterInputStream.read(FilterInputStream.java:66)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@166fba\n\n\"RMI TCP Connection(22)-127.0.1.1\" id=3148 in RUNNABLE (running in native)\n    at java.net.SocketInputStream.socketRead0(Native Method)\n    at java.net.SocketInputStream.read(SocketInputStream.java:129)\n    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\n    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)\n    at java.io.FilterInputStream.read(FilterInputStream.java:66)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@15bc412\n\n\"RMI TCP Connection(21)-127.0.1.1\" id=3147 in RUNNABLE\n    at sun.management.ThreadImpl.dumpThreads0(Native Method)\n    at sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:374)\n    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\n    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n    at java.lang.reflect.Method.invoke(Method.java:597)\n    at com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:167)\n    at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:96)\n    at com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:33)\n    at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)\n    at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)\n    at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)\n    at javax.management.StandardMBean.invoke(StandardMBean.java:391)\n    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)\n    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)\n    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1426)\n    at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)\n    at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1264)\n    at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1359)\n    at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)\n    at sun.reflect.GeneratedMethodAccessor617.invoke(Unknown Source)\n    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n    at java.lang.reflect.Method.invoke(Method.java:597)\n    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)\n    at sun.rmi.transport.Transport$1.run(Transport.java:159)\n    at java.security.AccessController.doPrivileged(Native Method)\n    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@1a5930e\n\n\"JMX server connection timeout 3146\" id=3146 in TIMED_WAITING\n    - waiting on <0x18df8a5> (a [I)\n    - locked <0x18df8a5> (a [I)\n    at java.lang.Object.wait(Native Method)\n    at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"RMI TCP Connection(19)-127.0.1.1\" id=3144 in RUNNABLE (running in native)\n    at java.net.SocketInputStream.socketRead0(Native Method)\n    at java.net.SocketInputStream.read(SocketInputStream.java:129)\n    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\n    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)\n    at java.io.FilterInputStream.read(FilterInputStream.java:66)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@19c6840\n\n\"Inactive RequestProcessor thread [Was:Versioning/org.netbeans.modules.versioning.system.cvss.FilesystemHandler$3]\" id=3142 in TIMED_WAITING\n    - waiting on <0x1901c0d> (a java.lang.Object)\n    - locked <0x1901c0d> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:TimedSoftReference/org.openide.util.TimedSoftReference]\" id=3141 in TIMED_WAITING\n    - waiting on <0x1d1db12> (a java.lang.Object)\n    - locked <0x1d1db12> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3140 in TIMED_WAITING\n    - waiting on <0x182dd72> (a java.lang.Object)\n    - locked <0x182dd72> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3139 in TIMED_WAITING\n    - waiting on <0x1796bbc> (a java.lang.Object)\n    - locked <0x1796bbc> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3138 in TIMED_WAITING\n    - waiting on <0x1fac7ae> (a java.lang.Object)\n    - locked <0x1fac7ae> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3137 in TIMED_WAITING\n    - waiting on <0x114d3b6> (a java.lang.Object)\n    - locked <0x114d3b6> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/org.netbeans.modules.project.ui.ProjectsRootNode$BadgingNode]\" id=3135 in TIMED_WAITING\n    - waiting on <0xa28a> (a java.lang.Object)\n    - locked <0xa28a> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3134 in TIMED_WAITING\n    - waiting on <0x88a7ea> (a java.lang.Object)\n    - locked <0x88a7ea> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3133 in TIMED_WAITING\n    - waiting on <0x164bc68> (a java.lang.Object)\n    - locked <0x164bc68> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3132 in TIMED_WAITING\n    - waiting on <0x15594c8> (a java.lang.Object)\n    - locked <0x15594c8> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3131 in TIMED_WAITING\n    - waiting on <0x163320f> (a java.lang.Object)\n    - locked <0x163320f> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3130 in TIMED_WAITING\n    - waiting on <0x133f628> (a java.lang.Object)\n    - locked <0x133f628> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3129 in TIMED_WAITING\n    - waiting on <0x15b57f8> (a java.lang.Object)\n    - locked <0x15b57f8> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3128 in TIMED_WAITING\n    - waiting on <0x1bb6056> (a java.lang.Object)\n    - locked <0x1bb6056> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3127 in TIMED_WAITING\n    - waiting on <0x1a9abb8> (a java.lang.Object)\n    - locked <0x1a9abb8> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3126 in TIMED_WAITING\n    - waiting on <0x16ca633> (a java.lang.Object)\n    - locked <0x16ca633> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3125 in TIMED_WAITING\n    - waiting on <0x1a6d5c8> (a java.lang.Object)\n    - locked <0x1a6d5c8> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3124 in TIMED_WAITING\n    - waiting on <0x190486> (a java.lang.Object)\n    - locked <0x190486> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3123 in TIMED_WAITING\n    - waiting on <0x1a03236> (a java.lang.Object)\n    - locked <0x1a03236> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3122 in TIMED_WAITING\n    - waiting on <0x2a5751> (a java.lang.Object)\n    - locked <0x2a5751> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3121 in TIMED_WAITING\n    - waiting on <0x1595756> (a java.lang.Object)\n    - locked <0x1595756> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3120 in TIMED_WAITING\n    - waiting on <0x3795a1> (a java.lang.Object)\n    - locked <0x3795a1> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3119 in TIMED_WAITING\n    - waiting on <0xdf8179> (a java.lang.Object)\n    - locked <0xdf8179> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3118 in TIMED_WAITING\n    - waiting on <0x1077c90> (a java.lang.Object)\n    - locked <0x1077c90> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3117 in TIMED_WAITING\n    - waiting on <0x2fbeef> (a java.lang.Object)\n    - locked <0x2fbeef> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3116 in TIMED_WAITING\n    - waiting on <0x1740e88> (a java.lang.Object)\n    - locked <0x1740e88> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3115 in TIMED_WAITING\n    - waiting on <0x1d1607> (a java.lang.Object)\n    - locked <0x1d1607> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3114 in TIMED_WAITING\n    - waiting on <0x6ffee3> (a java.lang.Object)\n    - locked <0x6ffee3> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3113 in TIMED_WAITING\n    - waiting on <0xdb575e> (a java.lang.Object)\n    - locked <0xdb575e> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3112 in TIMED_WAITING\n    - waiting on <0x1fed426> (a java.lang.Object)\n    - locked <0x1fed426> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3111 in TIMED_WAITING\n    - waiting on <0x15219b> (a java.lang.Object)\n    - locked <0x15219b> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3110 in TIMED_WAITING\n    - waiting on <0x1a3a9ee> (a java.lang.Object)\n    - locked <0x1a3a9ee> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3109 in TIMED_WAITING\n    - waiting on <0xcccc0c> (a java.lang.Object)\n    - locked <0xcccc0c> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3108 in TIMED_WAITING\n    - waiting on <0x1178018> (a java.lang.Object)\n    - locked <0x1178018> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3107 in TIMED_WAITING\n    - waiting on <0xfa0e81> (a java.lang.Object)\n    - locked <0xfa0e81> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3106 in TIMED_WAITING\n    - waiting on <0xe287aa> (a java.lang.Object)\n    - locked <0xe287aa> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3105 in TIMED_WAITING\n    - waiting on <0x171b1f> (a java.lang.Object)\n    - locked <0x171b1f> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/org.codehaus.mevenide.netbeans.nodes.MavenProjectNode]\" id=3104 in TIMED_WAITING\n    - waiting on <0x9c0cdf> (a java.lang.Object)\n    - locked <0x9c0cdf> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:TimedSoftReference/org.openide.util.TimedSoftReference]\" id=3103 in TIMED_WAITING\n    - waiting on <0x7aa377> (a java.lang.Object)\n    - locked <0x7aa377> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3102 in TIMED_WAITING\n    - waiting on <0x18f3935> (a java.lang.Object)\n    - locked <0x18f3935> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3101 in TIMED_WAITING\n    - waiting on <0x29fb70> (a java.lang.Object)\n    - locked <0x29fb70> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3100 in TIMED_WAITING\n    - waiting on <0xf754cb> (a java.lang.Object)\n    - locked <0xf754cb> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3099 in TIMED_WAITING\n    - waiting on <0xa0f9e2> (a java.lang.Object)\n    - locked <0xa0f9e2> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3098 in TIMED_WAITING\n    - waiting on <0xd6b93e> (a java.lang.Object)\n    - locked <0xd6b93e> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3097 in TIMED_WAITING\n    - waiting on <0xc18fb> (a java.lang.Object)\n    - locked <0xc18fb> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3096 in TIMED_WAITING\n    - waiting on <0x3dcb75> (a java.lang.Object)\n    - locked <0x3dcb75> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3095 in TIMED_WAITING\n    - waiting on <0x1f5d99f> (a java.lang.Object)\n    - locked <0x1f5d99f> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3094 in TIMED_WAITING\n    - waiting on <0x15c29e0> (a java.lang.Object)\n    - locked <0x15c29e0> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/org.netbeans.spi.project.support.ant.GlobFileBuiltQuery$StatusImpl]\" id=3093 in TIMED_WAITING\n    - waiting on <0x3061b> (a java.lang.Object)\n    - locked <0x3061b> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"Inactive RequestProcessor thread [Was:Default RequestProcessor/null]\" id=3092 in TIMED_WAITING\n    - waiting on <0xa1b41e> (a java.lang.Object)\n    - locked <0xa1b41e> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:939)\n\n    Locked synchronizers: count = 0\n\n\"RMI TCP Connection(idle)\" id=2617 in TIMED_WAITING\n    - waiting on <0x822271> (a java.util.concurrent.SynchronousQueue$TransferStack)\n    - locked <0x822271> (a java.util.concurrent.SynchronousQueue$TransferStack)\n    at sun.misc.Unsafe.park(Native Method)\n    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)\n    at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)\n    at java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)\n    at java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)\n    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:944)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:906)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"RMI TCP Connection(20)-127.0.1.1\" id=2616 in RUNNABLE (running in native)\n    at java.net.SocketInputStream.socketRead0(Native Method)\n    at java.net.SocketInputStream.read(SocketInputStream.java:129)\n    at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\n    at java.io.BufferedInputStream.read(BufferedInputStream.java:237)\n    at java.io.FilterInputStream.read(FilterInputStream.java:66)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@18ff747\n\n\"RMI TCP Connection(18)-127.0.1.1\" id=2615 in TIMED_WAITING\n    - waiting on <0x19e0708> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)\n    - locked <0x19e0708> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)\n    at java.lang.Object.wait(Native Method)\n    at com.sun.jmx.remote.internal.ArrayNotificationBuffer.fetchNotifications(ArrayNotificationBuffer.java:341)\n    at com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.fetchNotifications(ArrayNotificationBuffer.java:123)\n    at com.sun.jmx.remote.internal.ServerNotifForwarder.fetchNotifs(ServerNotifForwarder.java:258)\n    at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1227)\n    at javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1225)\n    at javax.management.remote.rmi.RMIConnectionImpl.fetchNotifications(RMIConnectionImpl.java:1231)\n    at sun.reflect.GeneratedMethodAccessor706.invoke(Unknown Source)\n    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n    at java.lang.reflect.Method.invoke(Method.java:597)\n    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)\n    at sun.rmi.transport.Transport$1.run(Transport.java:159)\n    at java.security.AccessController.doPrivileged(Native Method)\n    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)\n    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@b38440\n\n\"JMX server connection timeout 2613\" id=2613 in TIMED_WAITING\n    - waiting on <0x302c8e> (a [I)\n    - locked <0x302c8e> (a [I)\n    at java.lang.Object.wait(Native Method)\n    at com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"RMI Scheduler(0)\" id=2547 in TIMED_WAITING\n    - waiting on <0x1efe2bc> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    - locked <0x1efe2bc> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    at sun.misc.Unsafe.park(Native Method)\n    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)\n    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)\n    at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)\n    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:582)\n    at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:575)\n    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:946)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:906)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"RMI TCP Accept-0\" id=2545 in RUNNABLE (running in native)\n    at java.net.PlainSocketImpl.socketAccept(Native Method)\n    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\n    at java.net.ServerSocket.implAccept(ServerSocket.java:453)\n    at java.net.ServerSocket.accept(ServerSocket.java:421)\n    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)\n    at sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Attach Listener\" id=2544 in RUNNABLE\n\n    Locked synchronizers: count = 0\n\n\"GSF Source Worker Thread\" id=137 in TIMED_WAITING\n    - waiting on <0x13a2ace> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    - locked <0x13a2ace> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    at sun.misc.Unsafe.park(Native Method)\n    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)\n    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)\n    at java.util.concurrent.PriorityBlockingQueue.poll(PriorityBlockingQueue.java:245)\n    at org.netbeans.api.retouche.source.Source$CompilationJob.run(Source.java:1126)\n    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)\n    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)\n    at java.util.concurrent.FutureTask.run(FutureTask.java:138)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@d38397\n\n\"org.netbeans.modules.retouche.source.usages.RepositoryUpdater\" id=136 in WAITING\n    - waiting on <0xc1a33> (a java.util.TaskQueue)\n    - locked <0xc1a33> (a java.util.TaskQueue)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.util.TimerThread.mainLoop(Timer.java:483)\n    at java.util.TimerThread.run(Timer.java:462)\n\n    Locked synchronizers: count = 0\n\n\"pool-2-thread-1\" id=134 in WAITING\n    - waiting on <0xbf6480> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    - locked <0xbf6480> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    at sun.misc.Unsafe.park(Native Method)\n    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)\n    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)\n    at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)\n    at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:946)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:906)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Timer-2\" id=89 in WAITING\n    - waiting on <0x1470797> (a java.util.TaskQueue)\n    - locked <0x1470797> (a java.util.TaskQueue)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.util.TimerThread.mainLoop(Timer.java:483)\n    at java.util.TimerThread.run(Timer.java:462)\n\n    Locked synchronizers: count = 0\n\n\"DestroyJavaVM\" id=51 in RUNNABLE\n\n    Locked synchronizers: count = 0\n\n\"Collaboration Notification\" id=46 in WAITING\n    - waiting on <0x198ab83> (a java.lang.Object)\n    - locked <0x198ab83> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at org.netbeans.modules.collab.ui.NotificationThread.run(NotificationThread.java:121)\n\n    Locked synchronizers: count = 0\n\n\"AWT-EventQueue-1\" id=45 in WAITING\n    - waiting on <0x1104843> (a java.awt.EventQueue)\n    - locked <0x1104843> (a java.awt.EventQueue)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.awt.EventQueue.getNextEvent(EventQueue.java:479)\n    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:245)\n    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)\n    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)\n    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)\n    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)\n    at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)\n\n    Locked synchronizers: count = 0\n\n\"Creator Error Handler Listener\" id=44 in RUNNABLE (running in native)\n    at java.net.PlainSocketImpl.socketAccept(Native Method)\n    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\n    at java.net.ServerSocket.implAccept(ServerSocket.java:453)\n    at java.net.ServerSocket.accept(ServerSocket.java:421)\n    at org.netbeans.modules.visualweb.errorhandler.DebugServerThread.run(DebugServerThread.java:115)\n\n    Locked synchronizers: count = 0\n\n\"*** JFluid Separate Command Execution Thread\" id=38 in WAITING\n    - waiting on <0x61cebf> (a java.lang.Object)\n    - locked <0x61cebf> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at org.netbeans.lib.profiler.ProfilerClient$SeparateCmdExecutionThread.run(ProfilerClient.java:104)\n\n    Locked synchronizers: count = 0\n\n\"Repository writer 0\" id=31 in TIMED_WAITING\n    at java.lang.Thread.sleep(Native Method)\n    at org.netbeans.modules.cnd.repository.queue.RepositoryWritingThread.waitReady(RepositoryWritingThread.java:94)\n    at org.netbeans.modules.cnd.repository.queue.RepositoryWritingThread.run(RepositoryWritingThread.java:128)\n    at org.netbeans.modules.cnd.repository.queue.RepositoryThreadManager$Wrapper.run(RepositoryThreadManager.java:84)\n    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)\n\n    Locked synchronizers: count = 0\n\n\"TimerQueue\" id=25 in TIMED_WAITING\n    - waiting on <0x1d6d71c> (a javax.swing.TimerQueue)\n    - locked <0x1d6d71c> (a javax.swing.TimerQueue)\n    at java.lang.Object.wait(Native Method)\n    at javax.swing.TimerQueue.run(TimerQueue.java:236)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Thread-3\" id=24 in WAITING\n    - waiting on <0x65ff23> (a java.util.LinkedList)\n    - locked <0x65ff23> (a java.util.LinkedList)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.util.prefs.AbstractPreferences$EventDispatchThread.run(AbstractPreferences.java:1461)\n\n    Locked synchronizers: count = 0\n\n\"Java Source Worker Thread\" id=23 in TIMED_WAITING\n    - waiting on <0x6b2268> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    - locked <0x6b2268> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n    at sun.misc.Unsafe.park(Native Method)\n    at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)\n    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)\n    at java.util.concurrent.PriorityBlockingQueue.poll(PriorityBlockingQueue.java:245)\n    at org.netbeans.api.java.source.JavaSource$CompilationJob.run(JavaSource.java:1428)\n    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)\n    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)\n    at java.util.concurrent.FutureTask.run(FutureTask.java:138)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 1\n      - java.util.concurrent.locks.ReentrantLock$NonfairSync@ea2050\n\n\"Code Model Parser 0\" id=17 in WAITING\n    - waiting on <0x18bc3e4> (a java.lang.Object)\n    - locked <0x18bc3e4> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserQueue.waitReady(ParserQueue.java:378)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:68)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:82)\n    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)\n\n    Locked synchronizers: count = 0\n\n\"AWT-Shutdown\" id=16 in WAITING\n    - waiting on <0x1d4094b> (a java.lang.Object)\n    - locked <0x1d4094b> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"AWT-XAWT\" id=14 in RUNNABLE\n    at sun.awt.X11.XToolkit.waitForEvents(Native Method)\n    at sun.awt.X11.XToolkit.run(XToolkit.java:544)\n    at sun.awt.X11.XToolkit.run(XToolkit.java:519)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Java2D Disposer\" id=13 in WAITING\n    - waiting on <0x12c336> (a java.lang.ref.ReferenceQueue$Lock)\n    - locked <0x12c336> (a java.lang.ref.ReferenceQueue$Lock)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)\n    at sun.java2d.Disposer.run(Disposer.java:125)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Code Model Parser 1\" id=11 in WAITING\n    - waiting on <0x18bc3e4> (a java.lang.Object)\n    - locked <0x18bc3e4> (a java.lang.Object)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserQueue.waitReady(ParserQueue.java:378)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThread.run(ParserThread.java:68)\n    at org.netbeans.modules.cnd.modelimpl.csm.core.ParserThreadManager$Wrapper.run(ParserThreadManager.java:82)\n    at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:561)\n    at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:986)\n\n    Locked synchronizers: count = 0\n\n\"Timer-0\" id=10 in WAITING\n    - waiting on <0x6a1dfc> (a java.util.TaskQueue)\n    - locked <0x6a1dfc> (a java.util.TaskQueue)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.util.TimerThread.mainLoop(Timer.java:483)\n    at java.util.TimerThread.run(Timer.java:462)\n\n    Locked synchronizers: count = 0\n\n\"CLI Requests Server\" id=9 in RUNNABLE (running in native)\n    at java.net.PlainSocketImpl.socketAccept(Native Method)\n    at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\n    at java.net.ServerSocket.implAccept(ServerSocket.java:453)\n    at java.net.ServerSocket.accept(ServerSocket.java:421)\n    at org.netbeans.CLIHandler$Server.run(CLIHandler.java:1003)\n\n    Locked synchronizers: count = 0\n\n\"Active Reference Queue Daemon\" id=8 in WAITING\n    - waiting on <0x10c0d43> (a java.lang.ref.ReferenceQueue$Lock)\n    - locked <0x10c0d43> (a java.lang.ref.ReferenceQueue$Lock)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\n    at org.openide.util.Utilities$ActiveQueue.run(Utilities.java:3056)\n    at java.lang.Thread.run(Thread.java:619)\n\n    Locked synchronizers: count = 0\n\n\"Signal Dispatcher\" id=4 in RUNNABLE\n\n    Locked synchronizers: count = 0\n\n\"Finalizer\" id=3 in WAITING\n    - waiting on <0xcb9d10> (a java.lang.ref.ReferenceQueue$Lock)\n    - locked <0xcb9d10> (a java.lang.ref.ReferenceQueue$Lock)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\n    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)\n    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)\n\n    Locked synchronizers: count = 0\n\n\"Reference Handler\" id=2 in WAITING\n    - waiting on <0x1dea370> (a java.lang.ref.Reference$Lock)\n    - locked <0x1dea370> (a java.lang.ref.Reference$Lock)\n    at java.lang.Object.wait(Native Method)\n    at java.lang.Object.wait(Object.java:485)\n    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)\n\n    Locked synchronizers: count = 0\n\n\n\n<EndOfDump>\n\n"
  },
  {
    "path": "tda/src/test/resources/test64bit.log",
    "content": "Full thread dump Java HotSpot(TM) 64-Bit Server VM (1.5.0_13-b05 mixed mode):\n\n\"LeaseRenewalManager Task\" daemon prio=1 tid=0x0000002ac6c9b0a0 nid=0x57f8 in Object.wait() [0x0000000051d6d000..0x0000000051d6dd30]\n\tat java.lang.Object.wait(Native Method)\n\tat com.sun.jini.thread.TaskManager$TaskThread.run(TaskManager.java:341)\n\t- locked <0x0000002aa55b63a0> (a com.sun.jini.thread.TaskManager)\n\n\"LookupDiscovery Task\" daemon prio=1 tid=0x0000002ac4f4ce90 nid=0x16b8 in Object.wait() [0x0000000051c6c000..0x0000000051c6cd30]\n\tat java.lang.Object.wait(Native Method)\n\tat com.sun.jini.thread.TaskManager$TaskThread.run(TaskManager.java:341)\n\t- locked <0x0000002aa55b8cb8> (a com.sun.jini.thread.TaskManager)\n\n\"Space LookupDiscovery Task\" daemon prio=1 tid=0x0000002ac7322f00 nid=0x16b7 in Object.wait() [0x000000004abfc000..0x000000004abfceb0]\n\tat java.lang.Object.wait(Native Method)\n\tat com.sun.jini.thread.TaskManager$TaskThread.run(TaskManager.java:341)\n\t- locked <0x0000002aa5920c40> (a com.sun.jini.thread.TaskManager)\n\n\n"
  },
  {
    "path": "tda/src/test/resources/testwithhistogram.log",
    "content": "[2006-05-03:12:00:00.000] dummy log line for timestamp\n\nFull thread dump Java HotSpot(TM) Client VM (1.5.0_06-b05 mixed mode):\n\n\"TimerQueue\" daemon prio=1 tid=0x08256e88 nid=0x2d55 in Object.wait() [0xa967c000..0xa967c1c0]\n        at java.lang.Object.wait(Native Method)\n        - waiting on <0xaab97850> (a javax.swing.TimerQueue)\n        at javax.swing.TimerQueue.run(TimerQueue.java:233)\n        - locked <0xaab97850> (a javax.swing.TimerQueue)\n        at java.lang.Thread.run(Thread.java:595)\n\n\"Timer-0\" daemon prio=1 tid=0x08222940 nid=0x2d53 in Object.wait() [0xa95fa000..0xa95fb0c0]\n        at java.lang.Object.wait(Native Method)\n        - waiting on <0xaab4e650> (a java.util.TaskQueue)\n        at java.util.TimerThread.mainLoop(Timer.java:509)\n        - locked <0xaab4e650> (a java.util.TaskQueue)\n        at java.util.TimerThread.run(Timer.java:462)\n\n\"DestroyJavaVM\" prio=1 tid=0x0805c840 nid=0x2d42 waiting on condition [0x00000000..0xbff16fb0]\n\n\"AWT-EventQueue-0\" prio=1 tid=0x081ead30 nid=0x2d4d in Object.wait() [0xa9a48000..0xa9a491c0]\n        at java.lang.Object.wait(Native Method)\n        - waiting on <0xaab07788> (a java.awt.EventQueue)\n        at java.lang.Object.wait(Object.java:474)\n        at java.awt.EventQueue.getNextEvent(EventQueue.java:345)\n        - locked <0xaab07788> (a java.awt.EventQueue)\n        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:189)\n        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)\n        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)\n        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)\n        at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)\n\n\"AWT-Shutdown\" prio=1 tid=0x081e8438 nid=0x2d4c in Object.wait() [0xa9ac9000..0xa9aca040]\n        at java.lang.Object.wait(Native Method)\n        - waiting on <0xaaad4f10> (a java.lang.Object)\n        at java.lang.Object.wait(Object.java:474)\n        at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)\n        - locked <0xaaad4f10> (a java.lang.Object)\n        at java.lang.Thread.run(Thread.java:595)\n\n\"AWT-XAWT\" daemon prio=1 tid=0x081e7f10 nid=0x2d4b runnable [0xa9b4a000..0xa9b4b0c0]\n        at sun.awt.X11.XToolkit.waitForEvents(Native Method)\n        at sun.awt.X11.XToolkit.run(XToolkit.java:463)\n        at sun.awt.X11.XToolkit.run(XToolkit.java:438)\n        at java.lang.Thread.run(Thread.java:595)\n\n\"Java2D Disposer\" daemon prio=1 tid=0x081d6d38 nid=0x2d4a in Object.wait() [0xa9bd4000..0xa9bd4f40]\n        at java.lang.Object.wait(Native Method)\n        - waiting on <0xaab078f0> (a java.lang.ref.ReferenceQueue$Lock)\n        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\n        - locked <0xaab078f0> (a java.lang.ref.ReferenceQueue$Lock)\n        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)\n        at sun.java2d.Disposer.run(Disposer.java:107)\n        at java.lang.Thread.run(Thread.java:595)\n\n\"Low Memory Detector\" daemon prio=1 tid=0x080c6c28 nid=0x2d48 runnable [0x00000000..0x00000000]\n\n\"CompilerThread0\" daemon prio=1 tid=0x080c56c8 nid=0x2d47 waiting on condition [0x00000000..0xaa3178a8]\n\n\"Signal Dispatcher\" daemon prio=1 tid=0x080c4820 nid=0x2d46 waiting on condition [0x00000000..0x00000000]\n\n\"Finalizer\" daemon prio=1 tid=0x080b95a8 nid=0x2d45 in Object.wait() [0xaa44d000..0xaa44d1c0]\n        at java.lang.Object.wait(Native Method)\n        - waiting on <0xaaad50d8> (a java.lang.ref.ReferenceQueue$Lock)\n        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\n        - locked <0xaaad50d8> (a java.lang.ref.ReferenceQueue$Lock)\n        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)\n        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)\n\n\"Reference Handler\" daemon prio=1 tid=0x080b88d8 nid=0x2d44 in Object.wait() [0xaa4cd000..0xaa4ce040]\n        at java.lang.Object.wait(Native Method)\n        - waiting on <0xaaad4f00> (a java.lang.ref.Reference$Lock)\n        at java.lang.Object.wait(Object.java:474)\n        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)\n        - locked <0xaaad4f00> (a java.lang.ref.Reference$Lock)\n\n\"VM Thread\" prio=1 tid=0x080b5c60 nid=0x2d43 runnable\n\n\"VM Periodic Task Thread\" prio=1 tid=0x080c80b8 nid=0x2d49 waiting on condition\n\n\nnum   #instances    #bytes  class name\n--------------------------------------\n  1:     15660     3695576  [C\n  2:     28591     3246576  <no name>\n  3:     44495     1611808  <symbolKlass>\n  4:     28591     1606712  <methodKlass>\n  5:      2270     1403760  <constantPoolKlass>\n  6:      2270     1048608  <instanceKlassKlass>\n  7:      2171      964096  <constantPoolCacheKlass>\n  8:      2687      496600  [B\n  9:     15594      374256  java.lang.String\n 10:      3622      261488  [S\n 11:      2493      219384  java.lang.Class\n 12:      2307      204568  [I\n 13:      3724      190976  [[I\n 14:      3762       90288  java.util.Hashtable$Entry\n 15:      1250       81768  [Ljava.lang.Object;\n 16:      2486       79552  javax.swing.text.html.parser.ContentModel\n 17:      2994       71856  com.pironet.tda.utils.HistogramTableModel$Entry\n 18:      2681       64344  java.util.HashMap$Entry\n 19:       194       58976  <objArrayKlassKlass>\n 20:       183       44328  [Ljava.util.Hashtable$Entry;\n 21:      1352       32448  javax.swing.tree.DefaultMutableTreeNode\n 22:       206       29544  [Ljava.util.HashMap$Entry;\n 23:       710       23904  [Ljava.lang.String;\n 24:      1321       21136  com.pironet.tda.ThreadInfo\n 25:        24       11136  javax.swing.plaf.metal.MetalScrollButton\n 26:        19       10752  [F\n 27:       659       10544  java.lang.Integer\n 28:       424       10176  java.util.Vector\n 29:       199        9552  sun.java2d.loops.Blit\n 30:       201        8040  java.util.HashMap\n 31:       163        7824  sun.java2d.loops.ScaledBlit\n 32:       176        7040  java.util.WeakHashMap$Entry\n 33:       171        6840  java.util.Hashtable\n 34:       250        6000  java.lang.ref.WeakReference\n 35:       342        5472  javax.swing.event.EventListenerList\n 36:       166        5312  javax.swing.text.html.parser.AttributeList\n 37:        66        5280  java.lang.reflect.Method\n 38:        80        5120  java.lang.reflect.Constructor\n 39:        11        4928  javax.swing.JMenuItem\n 40:       143        4576  java.lang.ref.SoftReference\n 41:        10        4480  [[I\n 42:        12        4224  javax.swing.JScrollPane$ScrollBar\n 43:        88        4224  javax.swing.text.html.parser.Element\n 44:        13        4160  javax.swing.JPanel\n 45:       256        4096  java.lang.Short\n 46:       226        3616  javax.swing.ArrayTable\n 47:       105        3360  java.util.LinkedHashMap$Entry\n 48:        36        3120  [Z\n 49:        47        3008  java.util.logging.Logger\n 50:        27        2984  [J\n 51:        74        2960  javax.swing.plaf.ColorUIResource\n 52:         8        2816  javax.swing.JViewport\n 53:       146        2760  [Ljava.awt.Component;\n 54:        38        2736  java.lang.reflect.Field\n 55:         2        2704  [Lsun.java2d.loops.GraphicsPrimitive;\n 56:         7        2632  javax.swing.JScrollPane\n 57:       107        2568  java.awt.Rectangle\n 58:       106        2544  javax.swing.text.html.CSS$LengthValue\n 59:        53        2544  sun.java2d.loops.MaskBlit\n 60:       104        2496  java.beans.PropertyChangeSupport\n 61:       103        2472  javax.swing.text.html.parser.Entity\n 62:         8        2432  <typeArrayKlassKlass>\n 63:        74        2368  java.lang.ref.Finalizer\n 64:        74        2368  sun.awt.X11.XAtom\n 65:        97        2328  javax.swing.KeyStroke\n 66:        36        2304  java.awt.geom.AffineTransform\n 67:         3        2272  [[Ljava.lang.String;\n 68:         5        2200  javax.swing.JButton\n 69:        91        2184  javax.swing.text.html.StyleSheet$SmallConversionSet\n 70:        44        2112  sun.java2d.loops.MaskFill\n 71:         8        2048  javax.swing.CellRendererPane\n 72:       108        2016  [Ljava.beans.PropertyChangeListener;\n 73:       248        1984  java.lang.Object\n 74:        80        1920  javax.swing.SizeRequirements\n 75:        78        1872  sun.font.TrueTypeFont$DirectoryEntry\n 76:        15        1800  sun.awt.image.ByteInterleavedRaster\n 77:        20        1760  sun.font.CompositeFont\n 78:        73        1752  javax.swing.text.StyleContext$NamedStyle\n 79:       108        1728  sun.awt.EventListenerAggregate\n 80:         9        1696  [Ljava.util.WeakHashMap$Entry;\n 81:        69        1656  javax.swing.text.html.StyleSheet$SelectorMapping\n 82:         5        1640  javax.swing.JPopupMenu$Separator\n 83:        29        1624  java.net.URL\n 84:        29        1592  [D\n 85:        96        1536  java.awt.AWTEventMulticaster\n 86:        12        1536  javax.swing.plaf.metal.MetalScrollBarUI\n 87:        62        1488  java.util.logging.LogManager$LogNode\n 88:        15        1440  sun.awt.image.ImageRepresentation\n 89:        36        1440  javax.swing.plaf.basic.BasicTableUI$Actions\n 90:         4        1440  javax.swing.JPopupMenu\n 91:        30        1440  sun.java2d.loops.DrawGlyphListAA\n 92:        89        1424  java.lang.Long\n 93:        89        1424  javax.swing.ActionMap\n 94:        59        1416  javax.swing.text.html.CSS$Attribute\n 95:         3        1416  javax.swing.JMenu\n 96:        58        1392  sun.java2d.loops.SurfaceType\n 97:        43        1376  javax.swing.DefaultButtonModel\n 98:         4        1344  javax.swing.Box$Filler\n 99:        76        1312  [Ljava.lang.Class;\n100:        27        1296  sun.java2d.loops.BlitBg\n101:        81        1296  javax.swing.text.html.HTML$Attribute\n102:        77        1232  javax.swing.text.html.HTML$Tag\n103:        10        1200  <klassKlass>\n104:        15        1200  java.awt.image.IndexColorModel\n105:        70        1120  javax.swing.InputMap\n106:        69        1104  java.lang.ProcessEnvironment$Variable\n107:        69        1104  java.lang.ProcessEnvironment$Value\n108:         1        1040  [Ljava.lang.Integer;\n109:         1        1040  [Ljava.lang.Short;\n110:        26        1040  java.awt.SystemColor\n111:        32        1024  javax.swing.text.GapContent$MarkData\n112:        42        1008  sun.swing.SwingLazyValue\n113:        18        1008  java.nio.DirectByteBuffer\n114:        21        1008  javax.swing.Timer\n115:        20         960  sun.awt.X11PMBlitLoops\n116:        40         960  java.util.ArrayList\n117:        39         936  java.util.LinkedList$Entry\n118:         2         928  javax.swing.plaf.metal.MetalComboBoxButton\n119:        38         912  sun.reflect.NativeConstructorAccessorImpl\n120:         2         896  javax.swing.plaf.metal.MetalComboBoxEditor$1\n121:        37         888  java.awt.Insets\n122:         2         880  javax.swing.JToggleButton\n123:        22         880  sun.misc.SoftCache$ValueCell\n124:        11         880  javax.swing.text.html.InlineView\n125:         2         864  javax.swing.JEditorPane\n126:        12         864  javax.swing.plaf.FontUIResource\n127:         2         848  javax.swing.plaf.basic.BasicComboPopup\n128:        15         840  sun.java2d.loops.GraphicsPrimitiveProxy\n129:        21         840  java.awt.Color\n130:        35         840  java.io.ExpiringCache$Entry\n131:        17         816  sun.java2d.loops.FillRect\n132:        17         816  sun.java2d.loops.DrawGlyphList\n133:        25         800  java.util.Locale\n134:        11         792  javax.swing.plaf.basic.BasicMenuItemUI\n135:        33         792  javax.swing.plaf.basic.BasicButtonListener\n136:        20         784  [Lsun.font.PhysicalFont;\n137:         2         768  javax.swing.plaf.metal.MetalFileChooserUI$AlignedLabel\n138:         8         768  java.lang.Thread\n139:        16         768  sun.java2d.loops.FillSpans\n140:        16         768  sun.java2d.loops.DrawLine\n141:        16         768  sun.java2d.loops.DrawRect\n142:        16         768  sun.java2d.loops.DrawPolygons\n143:        47         752  javax.swing.UIDefaults$LazyInputMap\n144:         2         752  javax.swing.plaf.basic.BasicComboPopup$1\n145:        47         752  javax.swing.AbstractButton$Handler\n146:        46         736  javax.swing.event.ChangeEvent\n147:        44         728  [Ljavax.swing.text.AttributeSet;\n148:        18         720  javax.swing.text.html.HTMLDocument$RunElement\n149:        15         720  java.awt.image.PixelInterleavedSampleModel\n150:         2         720  javax.swing.JRootPane\n151:        24         720  [Ljavax.swing.text.html.CSS$Attribute;\n152:        29         696  java.lang.ref.PhantomReference\n153:        27         696  [Ljavax.swing.text.AbstractDocument$AbstractElement;\n154:        29         696  sun.java2d.DefaultDisposerRecord\n155:        17         680  javax.swing.text.html.HTMLDocument$BlockElement\n156:         5         680  java.awt.image.DirectColorModel\n157:        42         672  <compiledICHolderKlass>\n158:        12         672  java.util.jar.JarFile\n159:        21         672  java.util.ResourceBundle$LoaderReference\n160:        42         672  java.awt.Dimension\n161:        14         672  javax.swing.ImageIcon\n162:         2         656  javax.swing.JLayeredPane\n163:         9         648  java.awt.Font\n164:        27         648  sun.awt.SunHints$Value\n165:         5         640  javax.swing.text.html.ParagraphView\n166:        20         640  java.io.ObjectStreamField\n167:        16         640  javax.swing.DefaultBoundedRangeModel\n168:        20         640  java.util.TreeMap$Entry\n169:        39         624  sun.reflect.DelegatingConstructorAccessorImpl\n170:         6         624  javax.swing.plaf.basic.BasicTextUI$BasicCaret\n171:        11         616  javax.swing.text.html.StyleSheet$BoxPainter\n172:         2         608  <arrayKlassKlass>\n173:        38         608  java.lang.Float\n174:        15         600  java.awt.image.DataBufferByte\n175:        15         600  java.awt.image.BufferedImage\n176:        15         600  sun.awt.image.ToolkitImage\n177:        25         600  java.lang.ref.ReferenceQueue\n178:        23         592  [Ljavax.swing.text.View;\n179:        12         576  javax.swing.TransferHandler$SwingDropTarget\n180:        36         576  java.util.regex.Pattern$Category\n181:         6         576  [Lsun.java2d.loops.RenderCache$Entry;\n182:        12         576  sun.font.StrikeMetrics\n183:         6         576  sun.font.FileFontStrike\n184:        14         560  sun.awt.image.ByteArrayImageSource\n185:        10         560  java.awt.BorderLayout\n186:        23         552  sun.reflect.NativeMethodAccessorImpl\n187:        23         552  javax.swing.text.html.StyleSheet$ViewAttributeSet\n188:        23         552  com.sun.java.swing.SwingUtilities2$2\n189:        22         528  java.util.ResourceBundle$ResourceCacheKey\n190:         1         528  [Ljava.util.TimerTask;\n191:        22         528  java.security.AccessControlContext\n192:         6         528  javax.swing.text.ParagraphView$Row\n193:         5         520  sun.font.TrueTypeFont\n194:        13         520  sun.misc.Cleaner\n195:        16         512  java.util.concurrent.ConcurrentHashMap$Segment\n196:         9         504  sun.awt.image.BufImgSurfaceData\n197:        21         504  javax.swing.text.html.StyleSheet$ResolvedStyle\n198:         7         504  javax.swing.JMenuItem$AccessibleJMenuItem\n199:         7         504  sun.font.FontDesignMetrics\n200:        12         480  [Ljavax.swing.text.GapContent$MarkData;\n201:        12         480  sun.font.FontStrikeDisposer\n202:        12         480  sun.font.StrikeCache$SoftDisposerRef\n203:        20         480  sun.awt.shell.DefaultShellFolder\n204:        15         480  javax.swing.text.html.CSS$FontSize\n205:        20         480  javax.swing.plaf.InsetsUIResource\n206:        10         480  sun.awt.X11PMBlitLoops$DelegateBlitLoop\n207:        10         480  sun.awt.X11PMBlitBgLoops\n208:         6         480  sun.awt.X11SurfaceData$X11PixmapSurfaceData\n209:        29         464  javax.accessibility.AccessibleState\n210:        28         448  sun.reflect.DelegatingMethodAccessorImpl\n211:         1         448  javax.swing.plaf.metal.MetalFileChooserUI$3\n212:        14         448  javax.swing.plaf.metal.MetalBumps\n213:         1         448  sun.swing.FilePane\n214:        28         448  java.util.regex.Pattern$Ctype\n215:        28         448  java.util.HashSet\n216:         5         440  java.util.prefs.FileSystemPreferences\n217:         1         440  javax.swing.JTextField\n218:         5         440  [Ljavax.swing.Action;\n219:         9         432  sun.awt.motif.X11CachingSurfaceManager\n220:         9         432  java.util.WeakHashMap\n221:        18         432  java.util.LinkedList\n222:         1         424  sun.swing.FilePane$6\n223:        26         416  javax.swing.text.GapContent$StickyPosition\n224:        13         416  java.util.Collections$SynchronizedMap\n225:        13         416  javax.swing.plaf.basic.BasicLookAndFeel$AudioAction\n226:         1         416  javax.swing.tree.DefaultTreeCellRenderer\n227:         1         408  javax.swing.JFileChooser\n228:        17         408  sun.java2d.loops.CompositeType\n229:        25         400  javax.swing.text.html.CSS$Value\n230:        25         400  java.lang.StringBuffer\n231:        25         400  sun.font.Font2DHandle\n232:        25         400  javax.accessibility.AccessibleRelationSet\n233:         1         392  sun.swing.FilePane$DetailsTableCellRenderer\n234:         7         392  javax.swing.plaf.metal.MetalScrollPaneUI\n235:         7         392  javax.swing.ScrollPaneLayout$UIResource\n236:         1         392  javax.swing.JTree\n237:        12         384  javax.swing.plaf.basic.BasicScrollBarUI$TrackListener\n238:         1         384  sun.swing.FilePane$3\n239:        16         384  java.util.concurrent.locks.ReentrantLock$NonfairSync\n240:         1         384  com.pironet.tda.TDA\n241:        24         384  java.security.Provider$EngineDescription\n242:        24         384  java.io.File\n243:         8         384  javax.swing.text.html.HTMLEditorKit$InsertHTMLTextAction\n244:         4         384  java.util.jar.JarFile$JarFileEntry\n245:        12         384  sun.misc.URLClassPath$JarLoader\n246:        12         384  sun.font.FontStrikeDesc\n247:         1         376  javax.swing.plaf.metal.MetalFileChooserUI$FilterComboBoxRenderer\n248:         1         376  javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxRenderer\n249:         1         376  javax.swing.table.JTableHeader$UIResourceTableCellRenderer\n250:         1         376  sun.swing.FilePane$FileRenderer\n251:         5         376  [Lsun.font.TrueTypeFont$DirectoryEntry;\n252:        23         368  java.util.jar.Attributes$Name\n253:         1         368  javax.swing.JComboBox\n254:         1         368  javax.swing.plaf.metal.MetalFileChooserUI$1\n255:         1         368  javax.swing.JLabel\n256:         1         360  javax.swing.JSplitPane\n257:         1         360  javax.swing.JFrame\n258:         1         352  javax.swing.table.JTableHeader\n259:         1         344  javax.swing.plaf.metal.MetalFileChooserUI\n260:         6         336  sun.reflect.DelegatingClassLoader\n261:        14         336  javax.swing.plaf.basic.LazyActionMap\n262:         6         336  javax.swing.tree.VariableHeightLayoutCache$TreeStateNode\n263:        21         336  javax.swing.Timer$DoPostEvent\n264:         1         336  javax.swing.JMenuBar\n265:         1         336  [Ljavax.swing.text.html.HTML$Attribute;\n266:         1         336  javax.swing.JDialog\n267:        20         320  javax.swing.plaf.InputMapUIResource\n268:        20         320  java.awt.font.TextAttribute\n269:        20         320  javax.swing.text.html.CSS$StringValue\n270:         1         320  javax.swing.plaf.metal.MetalSplitPaneDivider\n271:         1         312  [Ljavax.swing.text.html.HTML$Tag;\n272:        12         288  javax.swing.ComponentInputMap\n273:        12         288  java.awt.dnd.DropTargetContext\n274:        12         288  javax.swing.plaf.basic.BasicScrollBarUI$ScrollListener\n275:         9         288  sun.font.FontManager$FontRegistrationInfo\n276:        12         288  java.util.regex.Pattern$Single\n277:         3         288  javax.swing.plaf.basic.BasicListUI\n278:         3         288  javax.swing.plaf.basic.BasicMenuUI\n279:        18         288  java.text.DateFormat$Field\n280:         4         288  javax.swing.text.PlainDocument\n281:        12         288  java.util.Collections$UnmodifiableMap\n282:        18         288  java.util.BitSet\n283:         6         288  sun.font.CompositeStrike\n284:         7         280  java.util.TreeMap\n285:         5         280  javax.swing.DefaultListSelectionModel\n286:         7         280  sun.font.FontFamily\n287:         5         280  com.pironet.tda.utils.HistogramTableModel\n288:         8         272  [Ljavax.swing.SizeRequirements;\n289:         2         272  java.text.DecimalFormat\n290:        17         272  sun.java2d.pipe.PixelToShapeConverter\n291:        11         264  javax.swing.plaf.ComponentInputMapUIResource\n292:        11         264  java.util.regex.Pattern$GroupTail\n293:        16         256  javax.swing.text.html.CSS$FontWeight\n294:        16         256  [Ljava.util.concurrent.ConcurrentHashMap$HashEntry;\n295:         8         256  sun.java2d.loops.RenderCache$Entry\n296:         4         256  javax.swing.text.FieldView\n297:         8         256  sun.awt.X11Renderer\n298:         8         256  javax.swing.text.DefaultEditorKit$NextVisualPositionAction\n299:         1         248  sun.awt.X11.XFramePeer\n300:         6         240  javax.swing.BoxLayout\n301:        15         240  [[B\n302:         6         240  javax.swing.text.AbstractDocument$BidiElement\n303:         5         240  sun.nio.ch.FileChannelImpl\n304:         3         240  [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry;\n305:         3         240  javax.swing.JMenu$AccessibleJMenu\n306:         5         240  java.util.Properties\n307:        10         240  javax.swing.UIDefaults$ProxyLazyValue\n308:         5         240  sun.font.CMap$CMapFormat4\n309:         6         240  javax.swing.text.GapContent\n310:         6         240  javax.swing.text.AbstractDocument$BidiRootElement\n311:         6         224  [Lsun.font.PhysicalStrike;\n312:         7         224  java.lang.ThreadLocal$ThreadLocalMap$Entry\n313:         4         224  javax.swing.UIDefaults\n314:         7         224  java.util.regex.Pattern$Curly\n315:         2         224  javax.swing.plaf.metal.MetalComboBoxUI\n316:        14         224  javax.swing.plaf.IconUIResource\n317:         2         224  javax.swing.text.html.HTMLEditorKit$HTMLFactory$BodyBlockView\n318:         9         216  java.awt.datatransfer.DataFlavor\n319:         9         216  javax.swing.text.StyledEditorKit$FontSizeAction\n320:         9         216  java.awt.datatransfer.MimeType\n321:         9         216  java.util.regex.Pattern$Range\n322:         3         216  javax.swing.JButton$AccessibleJButton\n323:         9         216  [Lsun.awt.SunHints$Value;\n324:         9         216  java.util.Stack\n325:         9         216  java.util.logging.Level\n326:        27         216  java.lang.ref.ReferenceQueue$Lock\n327:        13         208  java.util.zip.ZipFile$ZipCloser\n328:         2         208  javax.swing.text.html.HTMLEditorKit$HTMLFactory$1\n329:         5         200  sun.java2d.loops.RenderLoops\n330:         8         200  [Ljava.lang.Boolean;\n331:         5         200  javax.swing.text.FlowView$LogicalView\n332:         5         200  javax.swing.plaf.basic.DefaultMenuLayout\n333:         1         200  javax.swing.plaf.basic.BasicSplitPaneUI$1\n334:         5         192  [Lsun.font.CharToGlyphMapper;\n335:        12         192  javax.swing.plaf.basic.BasicScrollBarUI$ArrowButtonListener\n336:         3         192  java.util.regex.Pattern\n337:        12         192  javax.swing.plaf.basic.BasicScrollBarUI$ModelListener\n338:        12         192  javax.swing.plaf.metal.MetalScrollBarUI$ScrollBarListener\n339:        12         192  javax.swing.plaf.basic.BasicScrollBarUI$Handler\n340:        12         192  javax.swing.plaf.DimensionUIResource\n341:         2         192  javax.swing.text.html.HTMLDocument\n342:         3         192  javax.swing.text.html.StyleSheet\n343:         8         192  javax.swing.text.StyleContext$FontKey\n344:         8         192  [Ljava.io.ObjectStreamField;\n345:        12         192  java.awt.AlphaComposite\n346:        12         192  javax.swing.JScrollBar$ModelListener\n347:        12         192  [Ljava.security.ProtectionDomain;\n348:         8         192  javax.swing.border.EmptyBorder\n349:         3         192  javax.swing.table.TableColumn\n350:         2         192  javax.swing.text.html.BlockView\n351:         6         192  java.lang.ClassLoader$NativeLibrary\n352:         1         192  javax.swing.ImageIcon$1\n353:         1         184  javax.swing.plaf.metal.MetalTreeUI\n354:        11         176  java.util.regex.Pattern$GroupHead\n355:        11         176  javax.swing.plaf.basic.BasicMenuItemUI$Handler\n356:        11         176  java.io.FileDescriptor\n357:         3         168  javax.swing.text.html.HTMLEditorKit\n358:         7         168  javax.swing.event.SwingPropertyChangeSupport\n359:         7         168  javax.swing.DefaultSingleSelectionModel\n360:         2         168  [Ljava.text.DateFormat$Field;\n361:         5         160  sun.font.CompositeGlyphMapper\n362:        10         160  javax.swing.plaf.BorderUIResource$CompoundBorderUIResource\n363:         5         160  sun.font.FileFont$FileFontDisposer\n364:         2         160  javax.swing.JComboBox$AccessibleJComboBox\n365:        10         160  java.awt.Point\n366:         5         160  sun.font.TrueTypeGlyphMapper\n367:         5         160  sun.misc.SoftCache\n368:         5         160  [Ljava.util.Set;\n369:         5         160  java.awt.Cursor\n370:         5         160  [[S\n371:         5         160  [[Lsun.awt.FontDescriptor;\n372:         4         160  javax.swing.text.AbstractDocument$BranchElement\n373:         9         144  javax.swing.text.html.CSS$FontFamily\n374:         9         144  java.awt.font.FontRenderContext\n375:         3         144  java.nio.HeapByteBuffer\n376:         9         144  javax.swing.text.html.CSS$ColorValue\n377:         6         144  javax.swing.plaf.basic.BasicTextUI$BasicHighlighter\n378:         6         144  java.util.regex.Pattern$BitClass\n379:         6         144  javax.swing.text.DefaultHighlighter$SafeDamager\n380:         3         144  sun.util.calendar.ZoneInfo\n381:         9         144  java.awt.datatransfer.MimeTypeParameterList\n382:         9         144  javax.swing.plaf.ActionMapUIResource\n383:         6         144  javax.swing.plaf.basic.BasicTextUI$RootView\n384:         9         144  javax.swing.text.StyleConstants$ParagraphConstants\n385:         9         144  sun.awt.SunHints$Key\n386:         6         144  javax.swing.plaf.basic.BasicTextUI$UpdateHandler\n387:         6         144  javax.swing.plaf.basic.BasicPopupMenuUI\n388:         6         144  javax.swing.text.JTextComponent$KeymapWrapper\n389:         2         144  javax.swing.JList$AccessibleJList\n390:         6         144  javax.swing.text.JTextComponent$KeymapActionMap\n391:         6         144  javax.swing.plaf.basic.BasicTextUI$FocusAction\n392:         3         144  javax.swing.plaf.basic.BasicListUI$ListDropTargetListener\n393:         9         144  com.sun.org.apache.xerces.internal.util.TypeInfoImpl\n394:         2         144  javax.swing.JToggleButton$AccessibleJToggleButton\n395:         6         144  javax.swing.text.JTextComponent$MutableCaretEvent\n396:         3         144  [Ljava.lang.Thread;\n397:         6         144  javax.swing.text.GapContent$MarkVector\n398:         2         128  sun.nio.cs.ISO_8859_15$Encoder\n399:         2         128  sun.awt.X11.XInputMethod\n400:         8         128  javax.swing.JViewport$ViewListener\n401:         4         128  javax.swing.text.AbstractDocument$LeafElement\n402:         4         128  javax.swing.plaf.metal.MetalTextFieldUI\n403:         8         128  java.lang.Boolean\n404:         2         128  sun.awt.X11SurfaceData$X11WindowSurfaceData\n405:         2         128  sun.awt.im.InputMethodContext\n406:         8         128  javax.swing.text.SimpleAttributeSet\n407:         2         128  sun.awt.X11.XSelection\n408:         4         128  javax.swing.text.DefaultEditorKit$VerticalPageAction\n409:         4         128  javax.swing.plaf.basic.BasicTextUI$TextActionWrapper\n410:         4         128  sun.swing.FilePane$ViewTypeAction\n411:         2         128  javax.swing.JPopupMenu$AccessibleJPopupMenu\n412:         8         128  java.util.Collections$UnmodifiableSet\n413:         2         128  javax.swing.text.DefaultStyledDocument$ElementBuffer\n414:         1         120  sun.awt.X11.XContentWindow\n415:         5         120  java.io.RandomAccessFile\n416:         5         120  javax.swing.text.html.StyleSheet$SearchBuffer\n417:         3         120  javax.swing.plaf.basic.BasicListUI$Handler\n418:         5         120  sun.reflect.UnsafeIntegerFieldAccessorImpl\n419:         1         112  [Ljavax.swing.text.html.CSS$Value;\n420:        14         112  javax.swing.JMenuItem$MenuItemFocusListener\n421:         1         112  javax.swing.plaf.basic.BasicDirectoryModel$LoadFilesThread\n422:         1         112  javax.swing.plaf.metal.MetalSplitPaneUI\n423:         1         112  java.util.GregorianCalendar\n424:         7         112  javax.swing.text.StyleConstants$CharacterConstants\n425:         7         112  javax.swing.plaf.basic.BasicScrollPaneUI$Handler\n426:         7         112  javax.swing.plaf.metal.MetalLookAndFeel$MetalLazyValue\n427:         7         112  javax.swing.plaf.metal.MetalScrollPaneUI$1\n428:         7         112  javax.swing.tree.TreePath\n429:         2         112  javax.swing.JList$AccessibleJList$AccessibleJListChild\n430:         2         112  java.io.ExpiringCache$1\n431:         7         112  java.lang.ThreadLocal\n432:         2         112  sun.nio.cs.StreamEncoder$CharsetSE\n433:         2         112  java.text.DecimalFormatSymbols\n434:         1         104  java.awt.EventDispatchThread\n435:         1         104  java.util.TimerThread\n436:         1         104  sun.util.calendar.Gregorian$Date\n437:         4         104  [Ljava.lang.ref.SoftReference;\n438:         1         104  sun.awt.X11.XDragSourceContextPeer\n439:         1          96  [Lsun.font.FileFont;\n440:         6          96  javax.swing.text.DefaultCaret$Handler\n441:         4          96  java.awt.AWTKeyStroke\n442:         4          96  javax.swing.KeyboardManager$ComponentKeyStrokePair\n443:         1          96  [Lsun.font.CompositeFont;\n444:         3          96  javax.swing.text.html.HTMLEditorKit$LinkController\n445:         1          96  java.util.logging.LogManager$Cleaner\n446:         6          96  javax.swing.text.html.CSS$BorderStyle\n447:         1          96  sun.awt.X11.XIconWindow\n448:         6          96  javax.swing.plaf.basic.BasicPopupMenuUI$Actions\n449:         6          96  sun.java2d.loops.RenderCache\n450:         2          96  sun.swing.PrintColorUIResource\n451:         2          96  java.lang.ThreadGroup\n452:         1          96  javax.swing.ProgressMonitor\n453:         6          96  javax.swing.plaf.metal.MetalLookAndFeel$FontActiveValue\n454:         6          96  sun.java2d.pipe.TextRenderer\n455:         4          96  java.lang.RuntimePermission\n456:         3          96  sun.misc.URLClassPath\n457:         1          96  java.util.prefs.FileSystemPreferences$5$1\n458:         6          96  javax.swing.plaf.basic.BasicPopupMenuUI$BasicPopupMenuListener\n459:         6          96  javax.swing.plaf.basic.BasicPopupMenuUI$BasicMenuKeyListener\n460:         1          96  java.lang.ref.Reference$ReferenceHandler\n461:         1          96  java.lang.ref.Finalizer$FinalizerThread\n462:         6          96  sun.java2d.pipe.DuctusShapeRenderer\n463:         2          96  java.lang.Package\n464:         1          88  sun.awt.X11.XNETProtocol\n465:         1          88  sun.security.provider.Sun\n466:         1          88  javax.swing.ToolTipManager\n467:         1          88  sun.awt.motif.MFontConfiguration\n468:         1          80  [Ljava.util.concurrent.ConcurrentHashMap$Segment;\n469:         5          80  javax.swing.plaf.metal.MetalPopupMenuSeparatorUI\n470:         5          80  sun.font.TrueTypeFont$TTDisposerRecord\n471:         4          80  [Ljava.awt.AWTKeyStroke;\n472:         5          80  sun.nio.ch.NativeThreadSet\n473:         5          80  [Ljavax.swing.text.Position$Bias;\n474:         1          80  [[D\n475:         2          80  java.io.BufferedWriter\n476:         1          80  [Ljava.awt.geom.AffineTransform;\n477:         2          80  javax.swing.plaf.metal.MetalComboBoxButton$1\n478:         2          80  sun.awt.X11.XCreateWindowParams\n479:         5          80  com.pironet.tda.HistogramInfo\n480:         1          80  javax.swing.text.html.parser.DTD\n481:         2          80  java.io.ExpiringCache\n482:         1          80  javax.swing.text.html.BRView\n483:         5          80  java.nio.channels.spi.AbstractInterruptibleChannel$1\n484:         5          80  [Ljava.util.prefs.PreferenceChangeListener;\n485:         1          80  sun.awt.X11.MotifDnDDropTargetProtocol\n486:         5          80  [Ljava.util.prefs.NodeChangeListener;\n487:         2          80  javax.swing.plaf.metal.MetalRootPaneUI\n488:         1          72  sun.font.GlyphList\n489:         1          72  sun.awt.X11.XRootWindow\n490:         3          72  javax.swing.text.StyledEditorKit$FontFamilyAction\n491:         3          72  javax.swing.text.StyledEditorKit$AlignmentAction\n492:         3          72  javax.swing.text.html.CSS$BorderWidthValue\n493:         3          72  javax.swing.TransferHandler$TransferAction\n494:         3          72  javax.swing.text.html.CSS$BackgroundImage\n495:         3          72  javax.swing.text.html.CSS$BackgroundPosition\n496:         1          72  sun.misc.Launcher$ExtClassLoader\n497:         3          72  javax.swing.text.JTextComponent$DefaultKeymap\n498:         3          72  java.lang.ThreadLocal$ThreadLocalMap\n499:         3          72  sun.reflect.UnsafeBooleanFieldAccessorImpl\n500:         3          72  sun.swing.FilePane$1FilePaneAction\n501:         1          72  sun.awt.X11.XDnDDropTargetProtocol\n502:         3          72  javax.swing.text.DefaultEditorKit$BeginWordAction\n503:         3          72  javax.swing.text.html.CSS\n504:         3          72  javax.swing.text.DefaultEditorKit$EndWordAction\n505:         3          72  sun.awt.im.InputMethodLocator\n506:         1          72  sun.net.www.protocol.jar.URLJarFile\n507:         3          72  javax.swing.plaf.BorderUIResource$EmptyBorderUIResource\n508:         3          72  javax.swing.text.StyleContext$SmallAttributeSet\n509:         3          72  javax.swing.text.DefaultEditorKit$BeginLineAction\n510:         3          72  javax.swing.text.DefaultEditorKit$EndLineAction\n511:         3          72  javax.swing.text.DefaultEditorKit$BeginParagraphAction\n512:         3          72  javax.swing.text.DefaultEditorKit$EndParagraphAction\n513:         1          72  sun.misc.Launcher$AppClassLoader\n514:         3          72  java.lang.OutOfMemoryError\n515:         1          72  [Ljava.awt.Cursor;\n516:         1          64  sun.reflect.misc.MethodUtil\n517:         4          64  java.util.regex.Pattern$Branch\n518:         2          64  javax.swing.AbstractActionPropertyChangeListener$OwnedWeakReference\n519:         1          64  java.util.logging.LogManager$RootLogger\n520:         1          64  java.awt.DefaultKeyboardFocusManager\n521:         4          64  javax.swing.text.StyleConstants\n522:         1          64  javax.swing.MultiUIDefaults\n523:         2          64  javax.swing.text.html.HTMLEditorKit$NavigateLinkAction\n524:         4          64  javax.swing.text.StyleConstants$FontConstants\n525:         2          64  java.io.PrintStream\n526:         2          64  java.security.CodeSource\n527:         2          64  javax.swing.LayoutFocusTraversalPolicy\n528:         2          64  java.text.DigitList\n529:         4          64  java.util.TreeSet\n530:         1          64  javax.swing.JFileChooser$AccessibleJFileChooser\n531:         4          64  javax.swing.LayoutComparator\n532:         4          64  java.util.TreeMap$1\n533:         4          64  java.awt.Queue\n534:         2          64  java.awt.FlowLayout\n535:         1          64  sun.awt.X11GraphicsConfig\n536:         2          64  javax.swing.JToggleButton$ToggleButtonModel\n537:         4          64  javax.swing.JTextField$ScrollRepainter\n538:         2          64  javax.swing.plaf.basic.BasicEditorPaneUI\n539:         2          64  javax.swing.JEditorPane$1\n540:         2          64  java.security.ProtectionDomain\n541:         2          64  sun.java2d.pipe.Region\n542:         1          64  sun.awt.motif.X11RemoteOffScreenImage\n543:         1          64  javax.swing.JViewport$AccessibleJViewport\n544:         4          64  [Ljava.lang.annotation.Annotation;\n545:         4          64  java.io.FileInputStream\n546:         1          56  java.awt.EventQueue\n547:         1          56  java.awt.color.ICC_ColorSpace\n548:         1          56  sun.awt.X11.XToolkit\n549:         1          56  javax.swing.tree.VariableHeightLayoutCache\n550:         1          56  sun.awt.X11.MotifDnDDragSourceProtocol\n551:         1          56  javax.swing.tree.DefaultTreeSelectionModel\n552:         1          56  sun.awt.AppContext\n553:         1          56  com.pironet.tda.JDK14Parser\n554:         1          56  sun.awt.motif.X11RemoteOffScreenImage$X11RemoteSurfaceManager\n555:         1          56  sun.awt.image.WritableRasterNative\n556:         1          56  sun.security.provider.NativePRNG$RandomIO\n557:         1          48  sun.awt.X11GraphicsEnvironment\n558:         3          48  javax.swing.text.StyledEditorKit$AttributeTracker\n559:         3          48  sun.misc.Signal\n560:         3          48  javax.swing.JMenu$MenuChangeListener\n561:         3          48  javax.swing.text.StyledEditorKit$1\n562:         2          48  java.io.FileOutputStream\n563:         2          48  sun.nio.cs.Surrogate$Parser\n564:         3          48  java.util.HashMap$KeySet\n565:         3          48  javax.swing.text.html.CSS$CssValue\n566:         2          48  javax.swing.AncestorNotifier\n567:         2          48  javax.swing.plaf.basic.BasicRootPaneUI$RootPaneInputMap\n568:         3          48  javax.swing.UIManager$LookAndFeelInfo\n569:         3          48  java.text.AttributedCharacterIterator$Attribute\n570:         3          48  java.util.Arrays$ArrayList\n571:         3          48  com.sun.org.apache.xerces.internal.impl.dv.dtd.ListDatatypeValidator\n572:         1          48  [Lsun.font.FontStrike;\n573:         2          48  javax.swing.plaf.basic.BasicComboBoxUI$DefaultKeySelectionManager\n574:         2          48  java.util.regex.Pattern$Ques\n575:         3          48  javax.swing.event.DocumentEvent$EventType\n576:         3          48  javax.swing.text.html.CSS$CssValueMapper\n577:         1          48  javax.swing.plaf.basic.BasicTextUI$TextDropTargetListener\n578:         1          48  sun.awt.X11.XDnDDragSourceProtocol\n579:         1          48  java.io.BufferedReader\n580:         2          48  sun.awt.X11.AwtGraphicsConfigData\n581:         1          48  java.awt.image.SinglePixelPackedSampleModel\n582:         2          48  com.sun.java.swing.plaf.motif.MotifBorders$BevelBorder\n583:         2          48  java.io.BufferedOutputStream\n584:         1          48  java.awt.LightweightDispatcher\n585:         1          48  java.text.SimpleDateFormat\n586:         1          48  [[Lsun.awt.SunHints$Value;\n587:         2          48  java.security.Permissions\n588:         2          48  java.io.OutputStreamWriter\n589:         2          48  [Ljava.awt.Rectangle;\n590:         3          48  javax.swing.plaf.basic.BasicMenuUI$Handler\n591:         1          48  sun.awt.motif.X11VolatileSurfaceManager\n592:         1          48  sun.swing.FilePane$7\n593:         2          48  sun.reflect.UnsafeObjectFieldAccessorImpl\n594:         1          48  sun.awt.im.ExecutableInputMethodManager\n595:         3          48  sun.java2d.pipe.SpanClipRenderer\n596:         2          48  javax.swing.text.DefaultEditorKit$PageAction\n597:         2          48  javax.swing.plaf.BorderUIResource$LineBorderUIResource\n598:         1          48  java.util.LinkedHashMap\n599:         2          48  javax.swing.text.DefaultEditorKit$PreviousWordAction\n600:         3          48  java.util.regex.Pattern$Start\n601:         3          48  sun.awt.UNIXToolkit$GTKLoadStatus\n602:         2          48  javax.swing.text.DefaultEditorKit$NextWordAction\n603:         2          48  java.lang.ref.ReferenceQueue$Null\n604:         3          48  javax.swing.JMenu$WinListener\n605:         3          48  javax.swing.JList$ListSelectionHandler\n606:         3          48  java.awt.ComponentOrientation\n607:         3          48  java.nio.charset.CodingErrorAction\n608:         2          48  javax.swing.text.DefaultEditorKit$BeginAction\n609:         1          48  javax.swing.plaf.basic.BasicTableUI$TableDropTargetListener\n610:         2          48  javax.swing.text.DefaultEditorKit$EndAction\n611:         2          48  com.sun.org.apache.xerces.internal.xni.QName\n612:         2          48  javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction\n613:         1          48  javax.swing.text.html.HTMLEditorKit$InsertHRAction\n614:         1          40  java.util.logging.LogManager\n615:         1          40  java.awt.color.ICC_ProfileRGB\n616:         1          40  javax.swing.plaf.basic.BasicPopupMenuUI$MenuKeyboardHelper\n617:         1          40  javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxModel\n618:         1          40  java.text.DateFormatSymbols\n619:         1          40  java.util.zip.Inflater\n620:         1          40  javax.swing.RepaintManager\n621:         1          40  javax.swing.UIManager$LAFState\n622:         1          40  [Ljavax.swing.plaf.FontUIResource;\n623:         1          40  sun.awt.image.SunVolatileImage\n624:         1          40  sun.awt.AWTAutoShutdown$PeerMap\n625:         1          40  java.text.AttributedString$AttributedStringIterator\n626:         1          40  sun.nio.cs.StreamDecoder$CharsetSD\n627:         1          40  sun.nio.cs.StandardCharsets$Aliases\n628:         1          40  javax.swing.table.DefaultTableColumnModel\n629:         1          40  javax.swing.plaf.basic.BasicDirectoryModel\n630:         1          40  sun.java2d.NullSurfaceData\n631:         1          40  java.util.prefs.FileSystemPreferences$4\n632:         1          40  sun.nio.cs.StandardCharsets$Classes\n633:         1          40  sun.nio.cs.StandardCharsets$Cache\n634:         1          40  sun.awt.X11.XGlobalCursorManager\n635:         1          40  javax.swing.plaf.metal.MetalToggleButtonUI\n636:         1          40  javax.swing.plaf.basic.BasicTreeUI$Handler\n637:         1          40  [Lcom.sun.java.swing.SwingUtilities2$LSBCacheEntry;\n638:         1          40  javax.swing.plaf.basic.BasicTableUI\n639:         1          40  java.util.concurrent.ConcurrentHashMap\n640:         1          40  sun.nio.cs.ISO_8859_15$Decoder\n641:         1          40  javax.swing.plaf.basic.BasicTreeUI$TreeDropTargetListener\n642:         1          40  [[C\n643:         1          40  sun.awt.image.DataBufferNative\n644:         5          40  javax.swing.plaf.basic.BasicBorders$MarginBorder\n645:         1          32  javax.swing.text.DefaultEditorKit$SelectParagraphAction\n646:         2          32  javax.swing.plaf.metal.MetalComboBoxUI$MetalComboBoxLayoutManager\n647:         2          32  [Ljavax.swing.MenuElement;\n648:         2          32  javax.swing.JComboBox$1\n649:         2          32  sun.misc.NativeSignalHandler\n650:         2          32  javax.swing.plaf.basic.BasicComboBoxUI$Handler\n651:         1          32  java.awt.BasicStroke\n652:         2          32  javax.swing.plaf.basic.BasicLookAndFeel$1\n653:         1          32  [[Ljava.awt.AWTKeyStroke;\n654:         1          32  java.text.DontCareFieldPosition\n655:         1          32  javax.swing.plaf.basic.BasicTextUI$TextTransferHandler\n656:         1          32  java.io.FilePermission\n657:         1          32  java.io.BufferedInputStream\n658:         2          32  sun.awt.datatransfer.DataTransferer$CharsetComparator\n659:         2          32  sun.java2d.pipe.SpanShapeRenderer$Composite\n660:         2          32  javax.swing.text.Position$Bias\n661:         1          32  [Lsun.java2d.loops.RenderLoops;\n662:         1          32  [Lsun.java2d.loops.SurfaceType;\n663:         1          32  javax.swing.text.StyleContext\n664:         1          32  [Lsun.font.FontDesignMetrics;\n665:         2          32  java.util.HashMap$Values\n666:         2          32  sun.awt.X11.XMWMModality\n667:         1          32  java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl\n668:         2          32  java.util.regex.Pattern$Dummy\n669:         4          32  sun.awt.X11.XBaseWindow$StateLock\n670:         2          32  javax.swing.AbstractButton$ButtonActionPropertyChangeListener\n671:         2          32  java.lang.Shutdown$WrappedHook\n672:         1          32  [Ljava.util.Map;\n673:         1          32  com.sun.java.swing.plaf.motif.MotifBorders$MotifPopupMenuBorder\n674:         1          32  sun.swing.FilePane$DetailsTableModel\n675:         1          32  java.awt.datatransfer.SystemFlavorMap\n676:         1          32  sun.awt.X11GraphicsDevice\n677:         2          32  [Ljava.security.Principal;\n678:         1          32  java.text.AttributedString\n679:         2          32  javax.swing.text.html.HTMLEditorKit$NavigateLinkAction$FocusHighlightPainter\n680:         2          32  javax.swing.text.StyleConstants$ColorConstants\n681:         2          32  javax.swing.plaf.basic.BasicFileChooserUI$Handler\n682:         2          32  [Ljava.security.cert.Certificate;\n683:         2          32  sun.awt.MostRecentKeyValue\n684:         1          32  sun.awt.AWTAutoShutdown\n685:         2          32  java.nio.ByteOrder\n686:         2          32  javax.swing.text.html.StyleSheet$BoxPainter$HorizontalMargin\n687:         1          32  [Ljava.lang.ThreadGroup;\n688:         2          32  sun.awt.X11.XRepaintArea\n689:         1          32  [Ljava.awt.Queue;\n690:         1          32  javax.swing.text.SegmentCache$CachedSegment\n691:         1          32  sun.awt.X11.XWindowAttributesData\n692:         1          32  java.util.Random\n693:         1          32  javax.swing.plaf.metal.MetalButtonUI\n694:         2          32  javax.swing.plaf.metal.MetalComboBoxEditor$UIResource\n695:         1          32  javax.swing.plaf.metal.BumpBuffer\n696:         1          32  java.awt.Toolkit$SelectiveAWTEventListener\n697:         1          32  sun.awt.image.FileImageSource\n698:         2          32  java.awt.ImageCapabilities\n699:         1          32  sun.swing.FilePane$10\n700:         1          32  javax.swing.plaf.basic.BasicSplitPaneUI$BasicHorizontalLayoutManager\n701:         2          32  javax.swing.text.DefaultStyledDocument$StyleContextChangeHandler\n702:         2          32  java.nio.charset.CoderResult\n703:         2          32  javax.swing.text.DefaultStyledDocument$StyleChangeHandler\n704:         2          32  javax.swing.plaf.basic.BasicComboPopup$Handler\n705:         1          32  javax.swing.text.Segment\n706:         2          32  java.util.regex.Pattern$Slice\n707:         2          32  [Ljava.util.logging.Handler;\n708:         1          32  [Ljava.awt.FontMetrics;\n709:         2          32  javax.swing.JRootPane$RootLayout\n710:         2          32  javax.swing.plaf.metal.MetalComboBoxEditor$EditorBorder\n711:         2          32  javax.swing.JComboBox$AccessibleJComboBox$AccessibleJComboBoxListSelectionListener\n712:         2          32  javax.swing.ToolTipManager$Actions\n713:         1          32  [[[S\n714:         2          32  javax.swing.JComboBox$AccessibleJComboBox$AccessibleJComboBoxPopupMenuListener\n715:         1          32  [[[I\n716:         2          32  java.util.Collections$UnmodifiableRandomAccessList\n717:         2          32  java.lang.StringBuilder\n718:         1          32  [[[Lsun.awt.FontDescriptor;\n719:         1          32  javax.swing.text.DefaultEditorKit$SelectWordAction\n720:         2          32  javax.swing.plaf.metal.MetalComboBoxUI$MetalPropertyChangeListener\n721:         1          32  javax.swing.text.DefaultEditorKit$SelectLineAction\n722:         1          24  sun.awt.X11.XSizeHints\n723:         1          24  javax.swing.plaf.basic.BasicTableUI$Handler\n724:         1          24  javax.swing.MenuSelectionManager\n725:         1          24  java.util.Date\n726:         1          24  javax.swing.text.DefaultEditorKit$SelectAllAction\n727:         1          24  javax.swing.text.DefaultEditorKit$UnselectAction\n728:         1          24  sun.nio.cs.ISO_8859_15\n729:         1          24  javax.swing.text.DefaultEditorKit$ToggleComponentOrientationAction\n730:         1          24  javax.swing.text.DefaultEditorKit$DumpModelAction\n731:         1          24  javax.swing.plaf.metal.MetalMenuBarUI\n732:         1          24  sun.nio.cs.ISO_8859_1\n733:         1          24  javax.swing.plaf.metal.MetalFileChooserUI$FilterComboBoxModel\n734:         1          24  sun.reflect.UnsafeStaticObjectFieldAccessorImpl\n735:         1          24  java.util.logging.LoggingPermission\n736:         1          24  [Ljavax.swing.UIManager$LookAndFeelInfo;\n737:         1          24  javax.swing.text.StyledEditorKit$BoldAction\n738:         1          24  com.sun.java.swing.plaf.motif.MotifBorders$ButtonBorder\n739:         1          24  [Ljavax.swing.plaf.metal.MetalFileChooserUI$AlignedLabel;\n740:         1          24  java.lang.NullPointerException\n741:         1          24  javax.swing.plaf.metal.MetalFileChooserUI$IndentIcon\n742:         1          24  javax.swing.text.StyledEditorKit$ItalicAction\n743:         1          24  java.lang.ArithmeticException\n744:         1          24  sun.nio.cs.UTF_8\n745:         1          24  javax.swing.text.StyledEditorKit$StyledInsertBreakAction\n746:         1          24  sun.awt.im.CompositionAreaHandler\n747:         1          24  com.sun.java.swing.plaf.motif.MotifBorders$ToggleButtonBorder\n748:         1          24  javax.swing.text.StyledEditorKit$UnderlineAction\n749:         1          24  [Ljavax.swing.UIDefaults;\n750:         1          24  javax.swing.tree.DefaultTreeModel\n751:         1          24  sun.awt.X11.XAnyEvent\n752:         1          24  java.security.BasicPermissionCollection\n753:         1          24  sun.awt.X11.XWM\n754:         1          24  java.util.Timer\n755:         1          24  javax.swing.plaf.basic.BasicFileChooserUI$ApproveSelectionAction\n756:         1          24  sun.awt.X11.XAWTLookAndFeel\n757:         1          24  sun.nio.cs.StandardCharsets\n758:         1          24  javax.swing.plaf.basic.BasicFileChooserUI$CancelSelectionAction\n759:         1          24  javax.swing.plaf.basic.BasicFileChooserUI$UpdateAction\n760:         1          24  sun.awt.image.FetcherInfo\n761:         1          24  javax.swing.plaf.basic.BasicFileChooserUI$GoHomeAction\n762:         1          24  java.security.Provider$ServiceKey\n763:         1          24  javax.swing.plaf.basic.BasicTableHeaderUI\n764:         1          24  java.io.InputStreamReader\n765:         1          24  javax.swing.plaf.basic.BasicFileChooserUI$ChangeToParentDirectoryAction\n766:         1          24  javax.swing.text.html.HTMLEditorKit$ActivateLinkAction\n767:         1          24  javax.swing.plaf.basic.BasicTableHeaderUI$MouseInputHandler\n768:         1          24  javax.swing.text.DefaultEditorKit$InsertContentAction\n769:         1          24  sun.awt.X11.XWMHints\n770:         1          24  javax.swing.text.DefaultEditorKit$DeletePrevCharAction\n771:         1          24  sun.nio.cs.UTF_16\n772:         1          24  javax.swing.plaf.metal.MetalFileChooserUI$DirectoryComboBoxAction\n773:         1          24  javax.swing.text.DefaultEditorKit$DeleteNextCharAction\n774:         1          24  [Ljavax.swing.text.html.StyleSheet$BoxPainter$HorizontalMargin;\n775:         1          24  javax.swing.text.DefaultEditorKit$ReadOnlyAction\n776:         1          24  javax.swing.text.DefaultEditorKit$WritableAction\n777:         1          24  javax.swing.text.DefaultEditorKit$CutAction\n778:         1          24  javax.swing.text.DefaultEditorKit$CopyAction\n779:         1          24  javax.swing.text.DefaultEditorKit$PasteAction\n780:         1          24  java.io.UnixFileSystem\n781:         1          24  sun.awt.resources.awt\n782:         1          24  [Ljavax.swing.JPanel;\n783:         1          24  javax.swing.plaf.basic.BasicButtonUI\n784:         1          24  java.lang.RuntimeException\n785:         1          24  javax.swing.DefaultCellEditor$1\n786:         1          24  javax.swing.text.DefaultEditorKit$InsertBreakAction\n787:         1          24  javax.swing.text.DefaultEditorKit$BeepAction\n788:         1          24  javax.swing.text.html.CSS$LengthUnit\n789:         1          24  javax.swing.PopupFactory$LightWeightPopup\n790:         1          24  [[Ljava.lang.ref.SoftReference;\n791:         1          24  javax.swing.border.LineBorder\n792:         1          24  sun.awt.X11.WindowDimensions\n793:         1          24  javax.swing.plaf.basic.BasicToggleButtonUI\n794:         1          24  java.lang.ProcessEnvironment$StringEnvironment\n795:         1          24  sun.awt.PostEventQueue\n796:         1          24  sun.awt.resources.awt_de\n797:         1          24  java.util.regex.Pattern$Add\n798:         1          24  sun.awt.datatransfer.DataTransferer$DataFlavorComparator\n799:         1          24  sun.reflect.UnsafeLongFieldAccessorImpl\n800:         1          24  [Lsun.awt.UNIXToolkit$GTKLoadStatus;\n801:         1          24  com.sun.java.swing.plaf.motif.MotifBorders$MenuBarBorder\n802:         1          24  javax.swing.JTextField$NotifyAction\n803:         1          24  sun.misc.JarIndex\n804:         3          24  sun.net.www.protocol.jar.Handler\n805:         1          24  java.lang.reflect.ReflectPermission\n806:         1          24  [Ljava.lang.ThreadLocal;\n807:         1          24  java.awt.GridLayout\n808:         1          24  javax.swing.ProgressMonitorInputStream\n809:         1          24  sun.misc.PerformanceLogger$TimeData\n810:         1          24  javax.swing.plaf.metal.MetalLookAndFeel\n811:         1          24  javax.swing.text.DefaultEditorKit$InsertTabAction\n812:         1          24  sun.awt.color.ProfileDeferralInfo\n813:         1          16  sun.awt.image.PixelConverter$Rgba\n814:         1          16  java.util.TreeMap$2\n815:         1          16  javax.swing.plaf.metal.MetalBorders$TableHeaderBorder\n816:         1          16  sun.awt.image.PixelConverter$RgbaPre\n817:         1          16  java.util.jar.Manifest\n818:         1          16  sun.awt.image.PixelConverter$Ushort565Rgb\n819:         1          16  java.awt.MediaTracker\n820:         1          16  com.sun.org.apache.xerces.internal.impl.Constants$ArrayEnumeration\n821:         1          16  com.sun.java.swing.plaf.motif.MotifBorders$FocusBorder\n822:         1          16  sun.awt.image.PixelConverter$Ushort555Rgb\n823:         1          16  java.awt.color.ICC_Profile$1\n824:         1          16  sun.awt.X11.XDropTargetRegistry\n825:         1          16  sun.net.ProgressMonitor\n826:         1          16  sun.awt.image.PixelConverter$Ushort555Rgbx\n827:         1          16  java.text.MessageFormat$Field\n828:         1          16  sun.awt.image.PixelConverter$Ushort4444Argb\n829:         1          16  sun.awt.X11.XModalStrategy$XApplicationModalityTreeUnsensetive\n830:         1          16  javax.swing.plaf.metal.MetalFileChooserUI$4\n831:         1          16  javax.swing.plaf.metal.MetalUtils$GradientPainter\n832:         1          16  sun.awt.image.PixelConverter$ByteGray\n833:         1          16  javax.swing.JFileChooser$1\n834:         1          16  java.text.DontCareFieldPosition$1\n835:         1          16  sun.awt.image.PixelConverter$UshortGray\n836:         1          16  [Ljavax.swing.filechooser.FileFilter;\n837:         1          16  javax.swing.plaf.basic.BasicPopupMenuUI$MenuKeyboardHelper$1\n838:         1          16  javax.swing.plaf.metal.CachedPainter$Cache\n839:         1          16  sun.awt.image.PixelConverter$Rgbx\n840:         1          16  javax.swing.TransferHandler$DropHandler\n841:         1          16  java.util.regex.Pattern$Node\n842:         1          16  java.util.jar.Attributes\n843:         1          16  sun.awt.image.PixelConverter$Bgrx\n844:         1          16  java.util.regex.Pattern$LastNode\n845:         1          16  javax.swing.plaf.basic.BasicMenuBarUI$Handler\n846:         1          16  sun.awt.image.PixelConverter$ArgbBm\n847:         1          16  sun.awt.X11.XKeyboardFocusManagerPeer\n848:         2          16  javax.swing.plaf.metal.MetalLabelUI\n849:         1          16  javax.swing.plaf.basic.BasicFileChooserUI$FileTransferHandler\n850:         1          16  java.util.Collections$EmptyList\n851:         2          16  javax.swing.plaf.metal.MetalComboBoxIcon\n852:         1          16  java.io.FilePermissionCollection\n853:         1          16  com.pironet.tda.utils.PrefManager\n854:         1          16  javax.swing.plaf.metal.MetalFileChooserUI$ButtonAreaLayout\n855:         2          16  com.sun.org.apache.xerces.internal.impl.dv.dtd.ENTITYDatatypeValidator\n856:         1          16  java.awt.VKCollection\n857:         1          16  javax.swing.plaf.metal.OceanTheme$1\n858:         1          16  java.lang.InheritableThreadLocal\n859:         1          16  javax.swing.plaf.metal.OceanTheme$2\n860:         1          16  sun.misc.Launcher\n861:         1          16  java.util.Collections$EmptyMap\n862:         1          16  javax.swing.text.JTextComponent$InputMethodRequestsHandler\n863:         1          16  javax.swing.plaf.metal.OceanTheme$3\n864:         1          16  javax.swing.plaf.metal.MetalFileChooserUI$5\n865:         1          16  javax.swing.plaf.metal.OceanTheme$4\n866:         1          16  [Ljavax.swing.text.Highlighter$Highlight;\n867:         1          16  javax.swing.plaf.metal.OceanTheme$5\n868:         2          16  java.lang.Shutdown$Lock\n869:         1          16  [Ljava.text.AttributedCharacterIterator$Attribute;\n870:         1          16  javax.swing.text.GlyphPainter1\n871:         1          16  [Ljava.util.prefs.AbstractPreferences;\n872:         1          16  javax.swing.text.DefaultHighlighter$DefaultHighlightPainter\n873:         1          16  javax.swing.plaf.metal.OceanTheme\n874:         1          16  [Ljava.awt.GraphicsDevice;\n875:         1          16  javax.swing.plaf.basic.BasicTreeUI$NodeDimensionsHandler\n876:         1          16  sun.swing.FilePane$4\n877:         1          16  javax.swing.JTree$TreeModelHandler\n878:         1          16  javax.swing.plaf.basic.BasicBorders$SplitPaneBorder\n879:         1          16  java.util.TaskQueue\n880:         1          16  javax.swing.PopupFactory\n881:         2          16  javax.swing.plaf.metal.MetalBorders$ScrollPaneBorder\n882:         1          16  javax.swing.plaf.metal.DefaultMetalTheme$FontDelegate\n883:         2          16  javax.swing.plaf.metal.MetalBorders$MenuItemBorder\n884:         1          16  sun.awt.GlobalCursorManager$NativeUpdater\n885:         1          16  java.util.regex.Pattern$All\n886:         1          16  javax.swing.plaf.basic.BasicListUI$ListDragGestureRecognizer\n887:         1          16  javax.swing.plaf.basic.BasicFileChooserUI$AcceptAllFileFilter\n888:         1          16  sun.swing.FilePane$Handler\n889:         1          16  java.util.Timer$1\n890:         1          16  [Ljava.text.FieldPosition;\n891:         1          16  javax.swing.plaf.basic.BasicListUI$ListTransferHandler\n892:         1          16  javax.swing.plaf.basic.BasicTreeUI$Actions\n893:         1          16  sun.awt.X11.XAWTLookAndFeel$1\n894:         1          16  sun.swing.FilePane$5\n895:         1          16  javax.swing.plaf.basic.BasicFileChooserUI$BasicFileView\n896:         1          16  sun.awt.X11.XAWTLookAndFeel$2\n897:         1          16  java.util.regex.Pattern$JavaLowerCase\n898:         1          16  javax.swing.plaf.basic.BasicSplitPaneDivider$DividerLayout\n899:         1          16  java.awt.DefaultFocusTraversalPolicy\n900:         1          16  javax.swing.plaf.basic.BasicTreeUI$TreeDragGestureRecognizer\n901:         1          16  java.util.regex.Pattern$JavaUpperCase\n902:         1          16  javax.swing.SwingContainerOrderFocusTraversalPolicy\n903:         1          16  javax.swing.JTree$TreeSelectionRedirector\n904:         1          16  java.util.regex.Pattern$JavaTitleCase\n905:         1          16  sun.awt.X11.XAWTLookAndFeel$3\n906:         1          16  java.awt.font.TransformAttribute\n907:         1          16  javax.swing.plaf.basic.BasicTextUI$DragListener\n908:         1          16  javax.swing.SwingDefaultFocusTraversalPolicy\n909:         1          16  javax.swing.plaf.basic.BasicMenuItemUI$Actions\n910:         1          16  java.util.regex.Pattern$JavaDigit\n911:         1          16  sun.awt.X11.XAWTLookAndFeel$4\n912:         1          16  javax.swing.plaf.basic.BasicTreeUI$TreeTransferHandler\n913:         1          16  com.pironet.tda.TDA$PopupListener\n914:         1          16  java.util.regex.Pattern$JavaDefined\n915:         1          16  javax.swing.plaf.basic.BasicSplitPaneDivider$MouseHandler\n916:         1          16  sun.awt.X11.XAWTLookAndFeel$5\n917:         1          16  [Ljava.lang.StackTraceElement;\n918:         1          16  java.util.regex.Pattern$JavaLetter\n919:         1          16  javax.swing.plaf.metal.MetalTreeUI$LineListener\n920:         1          16  java.util.regex.Pattern$JavaLetterOrDigit\n921:         1          16  com.pironet.tda.DumpParserFactory\n922:         1          16  javax.swing.plaf.basic.BasicBorders$SplitPaneDividerBorder\n923:         1          16  [Ljava.io.File;\n924:         1          16  java.util.regex.Pattern$JavaJavaIdentifierStart\n925:         1          16  [Ljavax.swing.tree.TreePath;\n926:         1          16  java.util.regex.Pattern$JavaJavaIdentifierPart\n927:         1          16  sun.util.calendar.Gregorian\n928:         1          16  javax.swing.plaf.metal.MetalFileChooserUI$MetalFileChooserUIAccessor\n929:         1          16  sun.misc.FloatingDecimal$1\n930:         1          16  java.util.regex.Pattern$JavaUnicodeIdentifierStart\n931:         1          16  javax.swing.ButtonGroup\n932:         1          16  java.util.regex.Pattern$JavaUnicodeIdentifierPart\n933:         1          16  [Lsun.awt.X11.XAtom;\n934:         1          16  java.util.regex.Pattern$JavaIdentifierIgnorable\n935:         1          16  javax.swing.text.SegmentCache\n936:         1          16  javax.swing.plaf.basic.BasicLookAndFeel$PopupInvocationHelper\n937:         1          16  javax.swing.SystemEventQueueUtilities$ComponentWorkRequest\n938:         1          16  javax.swing.plaf.metal.OceanTheme$COIcon\n939:         1          16  java.util.regex.Pattern$JavaSpaceChar\n940:         1          16  sun.swing.FilePane$1\n941:         1          16  sun.reflect.BootstrapConstructorAccessorImpl\n942:         1          16  java.util.regex.Pattern$JavaWhitespace\n943:         1          16  java.util.regex.Pattern$JavaISOControl\n944:         1          16  java.util.regex.Pattern$JavaMirrored\n945:         1          16  sun.java2d.opengl.GLXGraphicsConfig$2\n946:         1          16  javax.swing.text.html.StyleSheet$LargeConversionSet\n947:         1          16  java.awt.EventDispatchThread$1\n948:         1          16  sun.awt.X11.XAWTLookAndFeel$6\n949:         1          16  sun.awt.X11.XAWTLookAndFeel$7\n950:         1          16  java.awt.MutableBoolean\n951:         1          16  java.nio.charset.CoderResult$1\n952:         1          16  javax.swing.ToolTipManager$insideTimerAction\n953:         1          16  sun.awt.X11.XDropTargetEventProcessor\n954:         1          16  sun.awt.X11.XAWTLookAndFeel$8\n955:         1          16  javax.swing.TimerQueue\n956:         1          16  java.nio.charset.CoderResult$2\n957:         1          16  sun.awt.X11.XAWTLookAndFeel$9\n958:         1          16  javax.swing.ToolTipManager$outsideTimerAction\n959:         1          16  java.util.Collections$SynchronizedSet\n960:         1          16  sun.awt.X11.XAWTLookAndFeel$10\n961:         1          16  javax.swing.ToolTipManager$stillInsideTimerAction\n962:         1          16  sun.awt.X11.XAWTLookAndFeel$11\n963:         1          16  java.util.concurrent.atomic.AtomicLong\n964:         1          16  javax.swing.plaf.basic.BasicSplitPaneUI$Handler\n965:         1          16  sun.awt.X11.XAWTLookAndFeel$12\n966:         1          16  javax.swing.plaf.basic.BasicTableUI$TableDragGestureRecognizer\n967:         1          16  java.awt.KeyboardFocusManager$HeavyweightFocusRequest\n968:         1          16  sun.font.CMap$NullCMapClass\n969:         1          16  javax.swing.plaf.basic.BasicTableUI$TableTransferHandler\n970:         1          16  sun.awt.shell.ShellFolderManager\n971:         1          16  sun.awt.image.PixelConverter\n972:         1          16  sun.awt.shell.ShellFolderManager$1\n973:         1          16  javax.swing.ToolTipManager$MoveBeforeEnterListener\n974:         1          16  sun.swing.FilePane$9\n975:         1          16  java.util.regex.Pattern$Dot\n976:         1          16  javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber\n977:         1          16  sun.awt.image.PixelConverter$Xrgb\n978:         1          16  javax.swing.filechooser.FileSystemView$FileSystemRoot\n979:         1          16  sun.awt.image.PixelConverter$Argb\n980:         1          16  java.util.Currency\n981:         1          16  sun.awt.image.PixelConverter$ArgbPre\n982:         1          16  javax.swing.KeyboardManager\n983:         1          16  sun.awt.image.PixelConverter$Xbgr\n984:         1          16  java.security.AllPermissionCollection\n985:         1          16  javax.swing.plaf.metal.MetalFileChooserUI$2\n986:         1           8  java.util.Hashtable$EmptyIterator\n987:         1           8  javax.swing.plaf.basic.BasicPanelUI\n988:         1           8  sun.nio.ch.FileDispatcher\n989:         1           8  com.sun.org.apache.xerces.internal.impl.dv.SecuritySupport12\n990:         1           8  sun.misc.Unsafe\n991:         1           8  sun.java2d.pipe.AlphaPaintPipe\n992:         1           8  sun.java2d.SunGraphicsEnvironment$TTFilter\n993:         1           8  java.lang.System$2\n994:         1           8  sun.net.DefaultProgressMeteringPolicy\n995:         1           8  com.pironet.tda.TDA$3\n996:         1           8  sun.java2d.SunGraphicsEnvironment$T1Filter\n997:         1           8  javax.swing.text.StyledEditorKit$StyledViewFactory\n998:         1           8  javax.swing.plaf.metal.MetalBorders$MenuBarBorder\n999:         1           8  com.sun.org.apache.xerces.internal.impl.dv.dtd.StringDatatypeValidator\n1000:         1           8  sun.awt.X11.XProtocol$1\n1001:         1           8  sun.reflect.GeneratedMethodAccessor4\n1002:         1           8  sun.java2d.pipe.ValidatePipe\n1003:         1           8  com.sun.org.apache.xerces.internal.impl.dv.dtd.IDDatatypeValidator\n1004:         1           8  sun.java2d.Disposer\n1005:         1           8  java.util.Collections$EmptySet\n1006:         1           8  sun.awt.X11.XToolkit$1\n1007:         1           8  javax.swing.plaf.basic.BasicLabelUI\n1008:         1           8  com.sun.org.apache.xerces.internal.impl.dv.dtd.IDREFDatatypeValidator\n1009:         1           8  javax.swing.tree.DefaultMutableTreeNode$1\n1010:         1           8  sun.awt.X11.XToolkit$5\n1011:         1           8  sun.java2d.pipe.GeneralCompositePipe\n1012:         1           8  sun.awt.X11.XKeyboardFocusManagerPeer$1\n1013:         1           8  sun.reflect.GeneratedMethodAccessor3\n1014:         1           8  com.sun.org.apache.xerces.internal.impl.dv.dtd.NOTATIONDatatypeValidator\n1015:         1           8  java.lang.reflect.ReflectAccess\n1016:         1           8  com.sun.org.apache.xerces.internal.impl.dv.dtd.NMTOKENDatatypeValidator\n1017:         1           8  sun.awt.X11.XDropTargetContextPeer$XDropTargetProtocolListenerImpl\n1018:         1           8  java.util.Collections$ReverseComparator\n1019:         1           8  sun.reflect.GeneratedMethodAccessor5\n1020:         1           8  javax.swing.text.FlowView$FlowStrategy\n1021:         1           8  javax.swing.ViewportLayout\n1022:         1           8  sun.misc.Launcher$Factory\n1023:         1           8  java.lang.Runtime\n1024:         1           8  javax.xml.parsers.SecuritySupport\n1025:         1           8  java.util.jar.JavaUtilJarAccessImpl\n1026:         1           8  javax.swing.plaf.basic.BasicViewportUI\n1027:         1           8  sun.java2d.pipe.NullPipe\n1028:         1           8  javax.swing.UIManager$2\n1029:         1           8  javax.swing.text.html.HTMLEditorKit$HTMLFactory\n1030:         1           8  javax.swing.text.html.parser.ParserDelegator\n1031:         1           8  sun.awt.image.ImageWatched$Link\n1032:         1           8  javax.swing.filechooser.FileSystemView$1\n1033:         1           8  sun.java2d.pipe.DrawImage\n1034:         1           8  sun.java2d.loops.GraphicsPrimitiveMgr$1\n1035:         1           8  sun.java2d.loops.GraphicsPrimitiveMgr$2\n1036:         1           8  javax.swing.plaf.basic.BasicComboPopup$EmptyListModelClass\n1037:         1           8  javax.swing.filechooser.UnixFileSystemView\n1038:         1           8  sun.java2d.pipe.LoopPipe\n1039:         1           8  java.awt.Component$AWTTreeLock\n1040:         1           8  javax.swing.SystemEventQueueUtilities$RunnableCanvasGraphics\n1041:         1           8  sun.awt.X11SurfaceData$LazyPipe\n1042:         1           8  sun.java2d.pipe.OutlineTextRenderer\n1043:         1           8  javax.swing.text.DefaultEditorKit\n1044:         1           8  sun.misc.ASCIICaseInsensitiveComparator\n1045:         1           8  sun.font.X11TextRenderer\n1046:         1           8  javax.swing.plaf.metal.MetalIconFactory$MenuArrowIcon\n1047:         1           8  sun.java2d.pipe.SolidTextRenderer\n1048:         1           8  java.lang.String$CaseInsensitiveComparator\n1049:         1           8  sun.java2d.pipe.AATextRenderer\n1050:         1           8  sun.reflect.GeneratedMethodAccessor2\n1051:         1           8  sun.net.www.protocol.file.Handler\n1052:         1           8  sun.java2d.pipe.AlphaColorPipe\n1053:         1           8  sun.swing.FilePane$2\n1054:         1           8  sun.net.www.protocol.jar.JarFileFactory\n1055:         1           8  javax.swing.plaf.metal.MetalBorders$TextFieldBorder\n1056:         1           8  javax.swing.text.SimpleAttributeSet$EmptyAttributeSet\n1057:         1           8  sun.awt.X11.XSelection$IncrementalTransferHandler\n1058:         1           8  sun.awt.X11.XSelection$SelectionEventHandler\n1059:         1           8  sun.reflect.GeneratedConstructorAccessor1\n1060:         1           8  java.awt.Container$MouseEventTargetFilter\n1061:         1           8  sun.awt.X11.XWM$1\n1062:         1           8  sun.awt.X11.XWM$2\n1063:         1           8  sun.reflect.ReflectionFactory\n1064:         1           8  sun.reflect.GeneratedMethodAccessor1\n1065:         1           8  javax.swing.text.SimpleAttributeSet$1\n1066:         1           8  sun.awt.X11.XInputMethodDescriptor\n1067:         1           8  java.util.prefs.FileSystemPreferencesFactory\n1068:         1           8  java.util.prefs.FileSystemPreferences$5\n1069:         1           8  javax.swing.plaf.metal.MetalBorders$PopupMenuBorder\n1070:         1           8  javax.swing.plaf.metal.MetalIconFactory$MenuItemArrowIcon\n1071:         1           8  javax.swing.plaf.metal.MetalBorders$ToggleButtonBorder\n1072:         1           8  javax.swing.plaf.metal.MetalBorders$ButtonBorder\n1073:         1           8  sun.awt.DebugHelperStub\n1074:         1           8  sun.awt.NullComponentPeer\n1075:         1           8  javax.swing.plaf.metal.MetalIconFactory$FileChooserDetailViewIcon\n1076:         1           8  java.lang.ref.Reference$Lock\n1077:         1           8  javax.swing.plaf.metal.MetalIconFactory$FileChooserListViewIcon\n1078:         1           8  javax.swing.plaf.basic.BasicRootPaneUI\n1079:         1           8  java.net.UnknownContentHandler\n1080:         1           8  javax.swing.Autoscroller\n1081:         1           8  sun.awt.X11.XDataTransferer\n1082:         1           8  java.lang.Terminator$1\n1083:         1           8  java.awt.GraphicsCallback$PaintCallback\n1084:         1           8  java.util.Hashtable$EmptyEnumerator\nTotal   183155    16330872\n"
  },
  {
    "path": "tda/src/test/resources/urlthread.log",
    "content": "2008-03-24 23:12:13\nFull thread dump Java HotSpot(TM) Server VM (1.6.0_03-b05 mixed mode):\n\n\"RMI TCP Connection(69241)-207.241.232.195\" daemon prio=10 tid=0x08657000 nid=0x39bb in Object.wait() [0xccdad000..0xccdadfb0]\n   java.lang.Thread.State: TIMED_WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\tat com.sun.jmx.remote.internal.ArrayNotificationBuffer.fetchNotifications(ArrayNotificationBuffer.java:341)\n\t- locked <0xd5004b78> (a com.sun.jmx.remote.internal.ArrayNotificationBuffer)\n\tat com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.fetchNotifications(ArrayNotificationBuffer.java:123)\n\tat com.sun.jmx.remote.internal.ServerNotifForwarder.fetchNotifs(ServerNotifForwarder.java:258)\n\tat javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1227)\n\tat javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1225)\n\tat java.security.AccessController.doPrivileged(Native Method)\n\tat javax.management.remote.rmi.RMIConnectionImpl.fetchNotifications(RMIConnectionImpl.java:1233)\n\tat sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\n\tat java.lang.reflect.Method.invoke(Method.java:597)\n\tat sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)\n\tat sun.rmi.transport.Transport$1.run(Transport.java:159)\n\tat java.security.AccessController.doPrivileged(Native Method)\n\tat sun.rmi.transport.Transport.serviceCall(Transport.java:155)\n\tat sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)\n\tat sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\n\tat sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\n\tat java.lang.Thread.run(Thread.java:619)\n\n\"RMI TCP Connection(idle)\" daemon prio=10 tid=0x083f6800 nid=0x53d9 waiting on condition [0xce963000..0xce964130]\n   java.lang.Thread.State: TIMED_WAITING (parking)\n\tat sun.misc.Unsafe.park(Native Method)\n\t- parking to wait for  <0xd4cec668> (a java.util.concurrent.SynchronousQueue$TransferStack)\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)\n\tat java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:424)\n\tat java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:323)\n\tat java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:874)\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:944)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:906)\n\tat java.lang.Thread.run(Thread.java:619)\n\n\"JMX server connection timeout 9791\" daemon prio=10 tid=0x0851bc00 nid=0x53d5 in Object.wait() [0xcd9ff000..0xcd9ff1b0]\n   java.lang.Thread.State: TIMED_WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\tat com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)\n\t- locked <0xd78f93e0> (a [I)\n\tat java.lang.Thread.run(Thread.java:619)\n\n\"StatLogger\" daemon prio=10 tid=0x0817e000 nid=0x4f57 waiting on condition [0xcfedb000..0xcfedbeb0]\n   java.lang.Thread.State: TIMED_WAITING (sleeping)\n\tat java.lang.Thread.sleep(Native Method)\n\tat org.archive.crawler.framework.AbstractTracker.run(AbstractTracker.java:134)\n\tat java.lang.Thread.run(Thread.java:619)\n\n\"ToeThread #73: http://www.underarmour.com/shop/boys/sports/football/pid1099022-UA-Demolish-Mid/11.5&uaEvent=logout&&cleanIdentity=true\" daemon prio=10 tid=0x08233c00 nid=0x4f53 waiting for monitor entry [0xce21c000..0xce21d030]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #71: http://shopping.zappos.com/robots.txt\" daemon prio=10 tid=0x08ad6800 nid=0x4f51 waiting for monitor entry [0xcec3c000..0xcec3cf30]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #70: https://www.amazon.com/gp/cobrandcard/marketing.html/ref=cobrand_ch_b1/104-5672093-5381562?ad=0001&pr=bus&inc=def&place=marketing&plattr=none&imp=8797748861&type=B&refplace=marketing_con\" daemon prio=10 tid=0x0822bc00 nid=0x4f50 waiting for monitor entry [0xce4f5000..0xce4f5fb0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #69: https://www.bestbuy.com/robots.txt\" daemon prio=10 tid=0x0822ac00 nid=0x4f4f waiting for monitor entry [0xce087000..0xce087e30]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #67: http://www.fandango.com/imnotscared_83953/writeuserreviews\" daemon prio=10 tid=0x085ec800 nid=0x4f4c waiting for monitor entry [0xcd9a5000..0xcd9a6130]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat com.sleepycat.je.evictor.Evictor.doEvict(Evictor.java:235)\n\t- waiting to lock <0xd5bb9a68> (a com.sleepycat.je.evictor.Evictor)\n\tat com.sleepycat.je.evictor.Evictor.doCriticalEviction(Evictor.java:274)\n\tat com.sleepycat.je.dbi.CursorImpl.close(CursorImpl.java:684)\n\tat com.sleepycat.je.dbi.CursorImpl.close(CursorImpl.java:654)\n\tat com.sleepycat.je.Cursor.endRead(Cursor.java:1820)\n\tat com.sleepycat.je.Cursor.retrieveNextAllowPhantoms(Cursor.java:1616)\n\tat com.sleepycat.je.Cursor.retrieveNext(Cursor.java:1397)\n\tat com.sleepycat.je.Cursor.getNext(Cursor.java:456)\n\tat com.sleepycat.util.keyrange.RangeCursor.doGetNext(RangeCursor.java:898)\n\tat com.sleepycat.util.keyrange.RangeCursor.getNext(RangeCursor.java:450)\n\tat com.sleepycat.collections.DataCursor.getNext(DataCursor.java:445)\n\tat com.sleepycat.collections.BlockIterator.hasNext(BlockIterator.java:361)\n\tat org.apache.commons.httpclient.cookie.CookieSpecBase.match(CookieSpecBase.java:607)\n\tat org.apache.commons.httpclient.HttpMethodBase.addCookieRequestHeader(HttpMethodBase.java:1193)\n\t- locked <0xd5c7d3c0> (a org.apache.commons.httpclient.HttpState)\n\tat org.apache.commons.httpclient.HttpMethodBase.addRequestHeaders(HttpMethodBase.java:1327)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequestHeaders(HttpMethodBase.java:2056)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1939)\n\tat org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1000)\n\tat org.archive.httpclient.HttpRecorderGetMethod.execute(HttpRecorderGetMethod.java:116)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)\n\tat org.archive.crawler.fetcher.FetchHTTP.innerProcess(FetchHTTP.java:500)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #63: http://www.dpreview.com/reviews/canonsd850is/\" daemon prio=10 tid=0x0818fc00 nid=0x4f48 waiting for monitor entry [0xcf476000..0xcf476f30]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #62: http://myfilestash.com/robots.txt\" daemon prio=10 tid=0x0814a400 nid=0x4f47 waiting for monitor entry [0xcebeb000..0xcebebfb0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #61: http://www.bestbuy.com/site/olspage.jsp?id=pcat17080&type=page&qp=crootcategoryid%23%23-1%23%23-1~~q70726f63657373696e6774696d653a3e313930302d30312d3031~~cabcat0700000%23%230%23%2319r~~cabcat0712000%23%230%23%239t~~f410%7C%7C243235202d202434392e3939~~nf428%7C%7C453d45766572796f6e65&list=y&nrp=15&sc=gameToySP&ks=960&usc=abcat0700000&sp=-bestsellingsort+skuid&list=y&iht=n&st=processingtime%3A%3E1900-01-01\" daemon prio=10 tid=0x08149800 nid=0x4f46 waiting for monitor entry [0xce402000..0xce402e30]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #60: http://dcresource.com/robots.txt\" daemon prio=10 tid=0x0846f000 nid=0x4f45 waiting for monitor entry [0xceec4000..0xceec4eb0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #58: http://www.target.com/gp/search/ref=ref_disc_asin/601-3851373-9413728?ie=UTF8&index=target&field-keywords=streetflyers%20street%20flyers%20sport%20equipment%20sporting%20goods%20bike%20bicycle%20spiderman%20kid%27s%20bmx%20training%20wheels&discontinuedRedirect=B000A0IBW4&url=index-target\" daemon prio=10 tid=0x0884ec00 nid=0x4f43 waiting for monitor entry [0xcf425000..0xcf4261b0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #57: http://www.alloy.com/mostrecent/7/61/x/2/ref/7/60/6233/1/\" daemon prio=10 tid=0x08441800 nid=0x4f42 waiting for monitor entry [0xce360000..0xce361030]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #56: https://www.stubhub.com/?gSec=login&goto=%2F%3FgSec%3Dsell%26gAct%3Dsell%26event%5Fid%3D583770%26&cb=16226\" daemon prio=10 tid=0x08440c00 nid=0x4f41 waiting for monitor entry [0xcec8d000..0xcec8e0b0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #55: http://img.foodnetwork.com/FOOD/2003/10/20/tm1b13_spicy_salad1_e.jpg\" daemon prio=10 tid=0x091f8800 nid=0x4f40 waiting for monitor entry [0xce1cb000..0xce1cbf30]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #54: http://www.soccer.com/ViewProductImages.process?Product_Id=239607&Image=94420.DGB\" daemon prio=10 tid=0x084da800 nid=0x4f3f waiting for monitor entry [0xced2f000..0xced2ffb0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #53: http://g-ecx.images-amazon.com/images/G/01/ciu/cb/86/3bd8e893e7a0948cad6e4110._AA280_.L.jpg\" daemon prio=10 tid=0x084d9800 nid=0x4f3e waiting for monitor entry [0xce3b1000..0xce3b1e30]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.apache.commons.httpclient.HttpMethodBase.addCookieRequestHeader(HttpMethodBase.java:1190)\n\t- waiting to lock <0xd5c7d3c0> (a org.apache.commons.httpclient.HttpState)\n\tat org.apache.commons.httpclient.HttpMethodBase.addRequestHeaders(HttpMethodBase.java:1327)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequestHeaders(HttpMethodBase.java:2056)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1939)\n\tat org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1000)\n\tat org.archive.httpclient.HttpRecorderGetMethod.execute(HttpRecorderGetMethod.java:116)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)\n\tat org.archive.crawler.fetcher.FetchHTTP.innerProcess(FetchHTTP.java:500)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #51: http://www.amazon.com/gp/vote/ref=cm_cr_dp_voteyn?ie=UTF8&2115%7CR2HFIXPJBHA8OM.contentAssoc.2.id=B000Q30420&type=if&uid=2115R2HFIXPJBHA8OMHelpfulReviews1&uri=%2Fgp%2Fproduct%2FB000Q30420&2115%7CR2HFIXPJBHA8OM.contentAssoc.2=1&2115%7CR2HFIXPJBHA8OM.contentAssoc.1=1&2115%7CR2HFIXPJBHA8OM.contentAssoc.1.type=AmazonCustomer&qv=pd%5Fts%5Fc%5Fth%5F3%5Fi&contentId=2115%7CR2HFIXPJBHA8OM&label=Helpful&qk=ref%5F&2115%7CR2HFIXPJBHA8OM.contentAssoc.2.type=ProductSet&ifRes=showYesNoCommunityResponse&2115%7CR2HFIXPJBHA8OM.contentAssoc.1.id=A2DM89IUYMFETB&context=Reviews&needsSignIn=1\" daemon prio=10 tid=0x086e2000 nid=0x4f3c waiting for monitor entry [0xcf6ad000..0xcf6ae130]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #49: https://www.juicycouture.com/store/catalog/prod.jhtml?itemId=prod3010001&parentId=cat1201&masterId=cat121&cmCat=cat000000cat103cat121cat1201&index=11&tid=P6\" daemon prio=10 tid=0x0873b400 nid=0x4f3a waiting for monitor entry [0xcfaba000..0xcfabb030]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #44: https://shopping.zappos.com/robots.txt\" daemon prio=10 tid=0x08a58c00 nid=0x4f35 waiting for monitor entry [0xcdbfe000..0xcdbfeeb0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #43: \" daemon prio=10 tid=0x083fb000 nid=0x4f34 waiting for monitor entry [0xcf2e1000..0xcf2e2130]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat com.sleepycat.je.evictor.Evictor.doEvict(Evictor.java:235)\n\t- waiting to lock <0xd5bb9a68> (a com.sleepycat.je.evictor.Evictor)\n\tat com.sleepycat.je.evictor.Evictor.doCriticalEviction(Evictor.java:274)\n\tat com.sleepycat.je.dbi.CursorImpl.cloneCursor(CursorImpl.java:330)\n\tat com.sleepycat.je.dbi.CursorImpl.cloneCursor(CursorImpl.java:288)\n\tat com.sleepycat.je.Cursor.beginRead(Cursor.java:1800)\n\tat com.sleepycat.je.Cursor.retrieveNextAllowPhantoms(Cursor.java:1583)\n\tat com.sleepycat.je.Cursor.retrieveNext(Cursor.java:1397)\n\tat com.sleepycat.je.Cursor.getNext(Cursor.java:456)\n\tat org.archive.crawler.frontier.BdbMultipleWorkQueues.getNextNearestItem(BdbMultipleWorkQueues.java:294)\n\tat org.archive.crawler.frontier.BdbMultipleWorkQueues.get(BdbMultipleWorkQueues.java:255)\n\tat org.archive.crawler.frontier.BdbWorkQueue.peekItem(BdbWorkQueue.java:107)\n\tat org.archive.crawler.frontier.WorkQueue.peek(WorkQueue.java:140)\n\tat org.archive.crawler.frontier.WorkQueueFrontier.next(WorkQueueFrontier.java:656)\n\t- locked <0xd5d81878> (a org.archive.crawler.frontier.BdbWorkQueue)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:144)\n\n\"ToeThread #42: http://web.foodnetwork.com/food/web/cachedRecipesLikeThis/0,,Vegetables_19376_00,00.html\" daemon prio=10 tid=0x08938c00 nid=0x4f33 waiting for monitor entry [0xcdd5c000..0xcdd5d1b0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #41: http://www.freepeople.com/index.cfm/fuseaction/products.detail/productID/d37b3413-eacb-474e-b116-f809f45cc1ef\" daemon prio=10 tid=0x08938000 nid=0x4f32 waiting for monitor entry [0xcdf94000..0xcdf95030]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #40: https://images-na.ssl-images-amazon.com/images/I/01PH5-tUHPL.swf?value1=102-1542659-3058741:1206048336\" daemon prio=10 tid=0x08555800 nid=0x4f31 waiting for monitor entry [0xcf0aa000..0xcf0ab0b0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.apache.commons.httpclient.HttpMethodBase.addCookieRequestHeader(HttpMethodBase.java:1190)\n\t- waiting to lock <0xd5c7d3c0> (a org.apache.commons.httpclient.HttpState)\n\tat org.apache.commons.httpclient.HttpMethodBase.addRequestHeaders(HttpMethodBase.java:1327)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequestHeaders(HttpMethodBase.java:2056)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1939)\n\tat org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1000)\n\tat org.archive.httpclient.HttpRecorderGetMethod.execute(HttpRecorderGetMethod.java:116)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)\n\tat org.archive.crawler.fetcher.FetchHTTP.innerProcess(FetchHTTP.java:500)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #38: http://www.eastbay.com/catalog/XYPromotion/model_nbr--73144/sku--1088404/xyMessage--none/www.eastbay.com\" daemon prio=10 tid=0x08841c00 nid=0x4f2f waiting for monitor entry [0xcf332000..0xcf332fb0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #36: http://www.foodnetwork.com/cr/cda/email/recipe/1,1249,FOOD_9936_19376,00.html\" daemon prio=10 tid=0x08148000 nid=0x4f2d waiting for monitor entry [0xcfb0b000..0xcfb0beb0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #35: http://www.stubhub.com/?gSec=login&goto=%2F%3FgSec%3Dsell%26gAct%3Dsell%26event%5Fid%3D583810%26\" daemon prio=10 tid=0x0851d400 nid=0x4f2c waiting for monitor entry [0xcf008000..0xcf009130]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.apache.commons.httpclient.HttpMethodBase.addCookieRequestHeader(HttpMethodBase.java:1190)\n\t- waiting to lock <0xd5c7d3c0> (a org.apache.commons.httpclient.HttpState)\n\tat org.apache.commons.httpclient.HttpMethodBase.addRequestHeaders(HttpMethodBase.java:1327)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequestHeaders(HttpMethodBase.java:2056)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1939)\n\tat org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1000)\n\tat org.archive.httpclient.HttpRecorderGetMethod.execute(HttpRecorderGetMethod.java:116)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)\n\tat org.archive.crawler.fetcher.FetchHTTP.innerProcess(FetchHTTP.java:500)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #33: dns:imhhdfghfdages.apple.com\" daemon prio=10 tid=0x08553800 nid=0x4f2a waiting for monitor entry [0xcf5ba000..0xcf5bb030]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #32: http://www.jcrew.com/catalog/multiProduct.jhtml?ids=prod86009231*1,prod86162231*0,prod86034231*1,prod86013231,prod89483231&ids=prod86009231*1,prod86162231,prod86034231*1,prod86013231,prod89483231&loc=MISP\" daemon prio=10 tid=0x085a5c00 nid=0x4f29 waiting for monitor entry [0xce72c000..0xce72d0b0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.apache.commons.httpclient.HttpMethodBase.addCookieRequestHeader(HttpMethodBase.java:1190)\n\t- waiting to lock <0xd5c7d3c0> (a org.apache.commons.httpclient.HttpState)\n\tat org.apache.commons.httpclient.HttpMethodBase.addRequestHeaders(HttpMethodBase.java:1327)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequestHeaders(HttpMethodBase.java:2056)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1939)\n\tat org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1000)\n\tat org.archive.httpclient.HttpRecorderGetMethod.execute(HttpRecorderGetMethod.java:116)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)\n\tat org.archive.crawler.fetcher.FetchHTTP.innerProcess(FetchHTTP.java:500)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #26: dns:cards.pokecharms.com\" daemon prio=10 tid=0x087d3c00 nid=0x4f23 waiting for monitor entry [0xce0d8000..0xce0d91b0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #25: http://www.zappos.com/bin/notifyme?p=7422949&size_id=&width_id=&color_id=3\" daemon prio=10 tid=0x08923400 nid=0x4f22 waiting for monitor entry [0xcddad000..0xcddae030]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #23: http://www.imaging-resource.com/PRODS/SD850IS/images/sd8-back.jpg\" daemon prio=10 tid=0x08656400 nid=0x4f20 waiting for monitor entry [0xce8c1000..0xce8c1f30]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #21: http://images.apple.com/euro/finalcutstudio/0407/finalcutpro/images/livetype_customeffect20070414.png\" daemon prio=10 tid=0x084e0800 nid=0x4f1e waiting for monitor entry [0xcf1ee000..0xcf1eee30]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.apache.commons.httpclient.HttpMethodBase.addCookieRequestHeader(HttpMethodBase.java:1190)\n\t- waiting to lock <0xd5c7d3c0> (a org.apache.commons.httpclient.HttpState)\n\tat org.apache.commons.httpclient.HttpMethodBase.addRequestHeaders(HttpMethodBase.java:1327)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequestHeaders(HttpMethodBase.java:2056)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1939)\n\tat org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1000)\n\tat org.archive.httpclient.HttpRecorderGetMethod.execute(HttpRecorderGetMethod.java:116)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)\n\tat org.archive.crawler.fetcher.FetchHTTP.innerProcess(FetchHTTP.java:500)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #20: http://www.juicycouture.com/store/catalog/catalogPage.jhtml?itemId=cat9601&parentId=cat103&masterId=cat000000&cmCat=cat000000cat123cat6504&size=&sort=&tid=P9\" daemon prio=10 tid=0x08226c00 nid=0x4f1d waiting for monitor entry [0xcf290000..0xcf290eb0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #18: http://www.urbanoutfitters.com/urban/catalog/category.jsp?popId=WOMENS&navAction=poppushpush&isSortBy=true&navCount=15477&pushId=WOMENS_APPAREL&id=W_APP_SWIMWEAR\" daemon prio=10 tid=0x08597000 nid=0x4f1b runnable [0xcf0fb000..0xcf0fc1b0]\n   java.lang.Thread.State: RUNNABLE\n\tat java.io.RandomAccessFile.seek(Native Method)\n\tat com.sleepycat.je.log.FileManager.readFromFile(FileManager.java:1108)\n\t- locked <0xe726e780> (a java.io.RandomAccessFile)\n\tat com.sleepycat.je.log.FileSource.getBytes(FileSource.java:51)\n\tat com.sleepycat.je.log.LogManager.getLogEntryFromLogSource(LogManager.java:626)\n\tat com.sleepycat.je.log.LogManager.getLogEntry(LogManager.java:597)\n\tat com.sleepycat.je.log.LogManager.get(LogManager.java:735)\n\tat com.sleepycat.je.tree.IN.fetchTarget(IN.java:955)\n\tat com.sleepycat.je.tree.IN.findParent(IN.java:2214)\n\tat com.sleepycat.je.tree.Tree.getParentINForChildIN(Tree.java:945)\n\tat com.sleepycat.je.tree.Tree.getParentINForChildIN(Tree.java:872)\n\tat com.sleepycat.je.tree.Tree.getParentINForChildIN(Tree.java:822)\n\tat com.sleepycat.je.evictor.Evictor.evict(Evictor.java:782)\n\tat com.sleepycat.je.evictor.Evictor.evictBatch(Evictor.java:364)\n\tat com.sleepycat.je.evictor.Evictor.doEvict(Evictor.java:249)\n\t- locked <0xd5bb9a68> (a com.sleepycat.je.evictor.Evictor)\n\tat com.sleepycat.je.evictor.Evictor.doCriticalEviction(Evictor.java:274)\n\tat com.sleepycat.je.dbi.CursorImpl.close(CursorImpl.java:684)\n\tat com.sleepycat.je.Cursor.close(Cursor.java:262)\n\t- locked <0xe726fe90> (a com.sleepycat.je.Cursor)\n\tat com.sleepycat.je.Cursor.close(Cursor.java:250)\n\tat com.sleepycat.je.Database.putInternal(Database.java:667)\n\tat com.sleepycat.je.Database.putNoOverwrite(Database.java:625)\n\tat org.archive.crawler.util.BdbUriUniqFilter.setAdd(BdbUriUniqFilter.java:257)\n\tat org.archive.crawler.util.SetBasedUriUniqFilter.add(SetBasedUriUniqFilter.java:89)\n\tat org.archive.crawler.frontier.WorkQueueFrontier.schedule(WorkQueueFrontier.java:432)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.schedule(FrontierScheduler.java:92)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:78)\n\t- locked <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #15: http://media.threadless.com/subs/small/50x35/108680t.jpg\" daemon prio=10 tid=0x091fa400 nid=0x4f18 waiting for monitor entry [0xce77d000..0xce77df30]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.apache.commons.httpclient.HttpMethodBase.addCookieRequestHeader(HttpMethodBase.java:1190)\n\t- waiting to lock <0xd5c7d3c0> (a org.apache.commons.httpclient.HttpState)\n\tat org.apache.commons.httpclient.HttpMethodBase.addRequestHeaders(HttpMethodBase.java:1327)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequestHeaders(HttpMethodBase.java:2056)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1939)\n\tat org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1000)\n\tat org.archive.httpclient.HttpRecorderGetMethod.execute(HttpRecorderGetMethod.java:116)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)\n\tat org.archive.crawler.fetcher.FetchHTTP.innerProcess(FetchHTTP.java:500)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #14: http://threadless.com/profile/512773/text/javascript\" daemon prio=10 tid=0x082a6c00 nid=0x4f17 waiting for monitor entry [0xce597000..0xce597fb0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #13: https://www.soccer.com/IWCatProductPage.process?Merchant_Id=1&Section_Id=1894&pcount=&Product_Id=299922\" daemon prio=10 tid=0x08502400 nid=0x4f16 waiting for monitor entry [0xceaf8000..0xceaf8e30]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #12: \" daemon prio=10 tid=0x0881a000 nid=0x4f15 waiting for monitor entry [0xcdfe5000..0xcdfe5eb0]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat com.sleepycat.je.evictor.Evictor.doEvict(Evictor.java:235)\n\t- waiting to lock <0xd5bb9a68> (a com.sleepycat.je.evictor.Evictor)\n\tat com.sleepycat.je.evictor.Evictor.doCriticalEviction(Evictor.java:274)\n\tat com.sleepycat.je.dbi.CursorImpl.cloneCursor(CursorImpl.java:330)\n\tat com.sleepycat.je.dbi.CursorImpl.cloneCursor(CursorImpl.java:288)\n\tat com.sleepycat.je.Cursor.beginRead(Cursor.java:1800)\n\tat com.sleepycat.je.Cursor.retrieveNextAllowPhantoms(Cursor.java:1583)\n\tat com.sleepycat.je.Cursor.retrieveNext(Cursor.java:1397)\n\tat com.sleepycat.je.Cursor.getNext(Cursor.java:456)\n\tat org.archive.crawler.frontier.BdbMultipleWorkQueues.getNextNearestItem(BdbMultipleWorkQueues.java:294)\n\tat org.archive.crawler.frontier.BdbMultipleWorkQueues.get(BdbMultipleWorkQueues.java:255)\n\tat org.archive.crawler.frontier.BdbWorkQueue.peekItem(BdbWorkQueue.java:107)\n\tat org.archive.crawler.frontier.WorkQueue.peek(WorkQueue.java:140)\n\tat org.archive.crawler.frontier.WorkQueueFrontier.next(WorkQueueFrontier.java:656)\n\t- locked <0xd5ba8278> (a org.archive.crawler.frontier.BdbWorkQueue)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:144)\n\n\"ToeThread #11: \" daemon prio=10 tid=0x0892f000 nid=0x4f14 waiting for monitor entry [0xce26d000..0xce26e130]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat com.sleepycat.je.evictor.Evictor.doEvict(Evictor.java:235)\n\t- waiting to lock <0xd5bb9a68> (a com.sleepycat.je.evictor.Evictor)\n\tat com.sleepycat.je.evictor.Evictor.doCriticalEviction(Evictor.java:274)\n\tat com.sleepycat.je.dbi.CursorImpl.cloneCursor(CursorImpl.java:330)\n\tat com.sleepycat.je.dbi.CursorImpl.cloneCursor(CursorImpl.java:288)\n\tat com.sleepycat.je.Cursor.beginRead(Cursor.java:1800)\n\tat com.sleepycat.je.Cursor.retrieveNextAllowPhantoms(Cursor.java:1583)\n\tat com.sleepycat.je.Cursor.retrieveNext(Cursor.java:1397)\n\tat com.sleepycat.je.Cursor.getNext(Cursor.java:456)\n\tat org.archive.crawler.frontier.BdbMultipleWorkQueues.getNextNearestItem(BdbMultipleWorkQueues.java:294)\n\tat org.archive.crawler.frontier.BdbMultipleWorkQueues.get(BdbMultipleWorkQueues.java:255)\n\tat org.archive.crawler.frontier.BdbWorkQueue.peekItem(BdbWorkQueue.java:107)\n\tat org.archive.crawler.frontier.WorkQueue.peek(WorkQueue.java:140)\n\tat org.archive.crawler.frontier.WorkQueueFrontier.next(WorkQueueFrontier.java:656)\n\t- locked <0xdb662420> (a org.archive.crawler.frontier.BdbWorkQueue)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:144)\n\n\"ToeThread #9: http://www.dcviews.com/press/Canon-S5-IS.htm\" daemon prio=10 tid=0x08552c00 nid=0x4f12 waiting for monitor entry [0xcd954000..0xcd955030]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.apache.commons.httpclient.HttpMethodBase.addCookieRequestHeader(HttpMethodBase.java:1190)\n\t- waiting to lock <0xd5c7d3c0> (a org.apache.commons.httpclient.HttpState)\n\tat org.apache.commons.httpclient.HttpMethodBase.addRequestHeaders(HttpMethodBase.java:1327)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequestHeaders(HttpMethodBase.java:2056)\n\tat org.apache.commons.httpclient.HttpMethodBase.writeRequest(HttpMethodBase.java:1939)\n\tat org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:1000)\n\tat org.archive.httpclient.HttpRecorderGetMethod.execute(HttpRecorderGetMethod.java:116)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)\n\tat org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)\n\tat org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:346)\n\tat org.archive.crawler.fetcher.FetchHTTP.innerProcess(FetchHTTP.java:500)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #7: http://www.steves-digicams.com/2007_reviews/canon_sd850.html\" daemon prio=10 tid=0x0841bc00 nid=0x4f10 waiting for monitor entry [0xcf19d000..0xcf19df30]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #5: http://a712.g.akamai.net/7/712/225/v20061013eb/www.eastbay.com/images/products/zoom/1088404_z.jpg\" daemon prio=10 tid=0x085c6800 nid=0x4f0e waiting for monitor entry [0xcef15000..0xcef15e30]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"ToeThread #1: http://www.anthropologie.com/anthro/catalog/category.jsp?_DARGS=/anthro/common/dropdownHomeBody.jsp.4_A&_DAV=HOME_HOME_PAGE&_dynSessConf=5661551036306455957&navAction=jump&navCount=1045&id=BATHING\" daemon prio=10 tid=0x083f1000 nid=0x4f0a waiting for monitor entry [0xcea56000..0xcea57030]\n   java.lang.Thread.State: BLOCKED (on object monitor)\n\tat org.archive.crawler.postprocessor.FrontierScheduler.innerProcess(FrontierScheduler.java:76)\n\t- waiting to lock <0xd5bada80> (a org.archive.crawler.postprocessor.FrontierScheduler)\n\tat org.archive.crawler.framework.Processor.process(Processor.java:112)\n\tat org.archive.crawler.framework.ToeThread.processCrawlUri(ToeThread.java:302)\n\tat org.archive.crawler.framework.ToeThread.run(ToeThread.java:151)\n\n\"waker for org.archive.crawler.admin.CrawlJob$MBeanCrawlController@1dc596e\" daemon prio=10 tid=0x084dc400 nid=0x4f08 in Object.wait() [0xcf14c000..0xcf14d0b0]\n   java.lang.Thread.State: WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\tat java.lang.Object.wait(Object.java:485)\n\tat java.util.TimerThread.mainLoop(Timer.java:483)\n\t- locked <0xd5bdd8d8> (a java.util.TaskQueue)\n\tat java.util.TimerThread.run(Timer.java:462)\n\n\"Checkpointer\" daemon prio=10 tid=0x08423800 nid=0x4f01 in Object.wait() [0xcee73000..0xcee73f30]\n   java.lang.Thread.State: WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\tat java.lang.Object.wait(Object.java:485)\n\tat com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:163)\n\t- locked <0xd5bba2c8> (a java.lang.Object)\n\tat java.lang.Thread.run(Thread.java:619)\n\n\"Cleaner-1\" daemon prio=10 tid=0x085c5800 nid=0x4f00 in Object.wait() [0xcfe8a000..0xcfe8afb0]\n   java.lang.Thread.State: WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\tat java.lang.Object.wait(Object.java:485)\n\tat com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:163)\n\t- locked <0xd5bb8c28> (a java.lang.Object)\n\tat java.lang.Thread.run(Thread.java:619)\n\n\"INCompressor\" daemon prio=10 tid=0x0893c400 nid=0x4eff in Object.wait() [0xcee22000..0xcee22e30]\n   java.lang.Thread.State: TIMED_WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\tat com.sleepycat.je.utilint.DaemonThread.run(DaemonThread.java:165)\n\t- locked <0xd5bb9f98> (a java.lang.Object)\n\tat java.lang.Thread.run(Thread.java:619)\n\n\"Timer-0\" daemon prio=10 tid=0xcf7fc800 nid=0x6fba in Object.wait() [0xcddfe000..0xcddfee30]\n   java.lang.Thread.State: WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\t- waiting on <0xd50a0878> (a java.util.TaskQueue)\n\tat java.lang.Object.wait(Object.java:485)\n\tat java.util.TimerThread.mainLoop(Timer.java:483)\n\t- locked <0xd50a0878> (a java.util.TaskQueue)\n\tat java.util.TimerThread.run(Timer.java:462)\n\n\"DestroyJavaVM\" prio=10 tid=0xcfc98400 nid=0x5ba0 waiting on condition [0x00000000..0xf7e65100]\n   java.lang.Thread.State: RUNNABLE\n\n\"PoolThread-1\" prio=10 tid=0xd00ff800 nid=0x5bb6 in Object.wait() [0xcfb5c000..0xcfb5cf30]\n   java.lang.Thread.State: TIMED_WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\tat org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:497)\n\t- locked <0xd4df8df0> (a org.mortbay.util.ThreadPool$PoolThread)\n\n\"PoolThread-0\" prio=10 tid=0xd009c400 nid=0x5bb5 in Object.wait() [0xcfbad000..0xcfbadfb0]\n   java.lang.Thread.State: TIMED_WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\tat org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:497)\n\t- locked <0xd4df8fa0> (a org.mortbay.util.ThreadPool$PoolThread)\n\n\"Acceptor ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=8094]\" prio=10 tid=0xd0086800 nid=0x5bb4 runnable [0xcfbfe000..0xcfbfee30]\n   java.lang.Thread.State: RUNNABLE\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\n\t- locked <0xd4df8d38> (a java.net.SocksSocketImpl)\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\n\tat java.net.ServerSocket.accept(ServerSocket.java:421)\n\tat org.mortbay.util.ThreadedServer.acceptSocket(ThreadedServer.java:358)\n\tat org.mortbay.util.ThreadedServer$Acceptor.run(ThreadedServer.java:552)\n\n\"SessionScavenger\" daemon prio=10 tid=0xd00af000 nid=0x5bb3 waiting on condition [0xcfd97000..0xcfd97eb0]\n   java.lang.Thread.State: TIMED_WAITING (sleeping)\n\tat java.lang.Thread.sleep(Native Method)\n\tat org.mortbay.jetty.servlet.AbstractSessionManager$SessionScavenger.run(AbstractSessionManager.java:481)\n\n\"Rollover\" daemon prio=10 tid=0xd0085800 nid=0x5bb2 waiting on condition [0xcfde9000..0xcfde9130]\n   java.lang.Thread.State: TIMED_WAITING (sleeping)\n\tat java.lang.Thread.sleep(Native Method)\n\tat org.mortbay.util.RolloverFileOutputStream$Rollover.run(RolloverFileOutputStream.java:288)\n\n\"RMI Scheduler(0)\" daemon prio=10 tid=0x081cd400 nid=0x5bb1 waiting on condition [0xcfe39000..0xcfe3a1b0]\n   java.lang.Thread.State: TIMED_WAITING (parking)\n\tat sun.misc.Unsafe.park(Native Method)\n\t- parking to wait for  <0xd4cb6118> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:164)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:582)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:575)\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:946)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:906)\n\tat java.lang.Thread.run(Thread.java:619)\n\n\"RMI TCP Accept-9094\" daemon prio=10 tid=0xd007a000 nid=0x5bac runnable [0xcffad000..0xcffadfb0]\n   java.lang.Thread.State: RUNNABLE\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\n\t- locked <0xd4cc1b28> (a java.net.SocksSocketImpl)\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\n\tat java.net.ServerSocket.accept(ServerSocket.java:421)\n\tat sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)\n\tat sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)\n\tat java.lang.Thread.run(Thread.java:619)\n\n\"RMI TCP Accept-0\" daemon prio=10 tid=0xd006fc00 nid=0x5bab runnable [0xcfffe000..0xcfffee30]\n   java.lang.Thread.State: RUNNABLE\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\n\t- locked <0xd4cb63c8> (a java.net.SocksSocketImpl)\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\n\tat java.net.ServerSocket.accept(ServerSocket.java:421)\n\tat sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)\n\tat sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)\n\tat java.lang.Thread.run(Thread.java:619)\n\n\"Low Memory Detector\" daemon prio=10 tid=0x08136000 nid=0x5baa runnable [0x00000000..0x00000000]\n   java.lang.Thread.State: RUNNABLE\n\n\"CompilerThread1\" daemon prio=10 tid=0x08134400 nid=0x5ba9 waiting on condition [0x00000000..0xd0493788]\n   java.lang.Thread.State: RUNNABLE\n\n\"CompilerThread0\" daemon prio=10 tid=0x08132c00 nid=0x5ba8 waiting on condition [0x00000000..0xd0514808]\n   java.lang.Thread.State: RUNNABLE\n\n\"Signal Dispatcher\" daemon prio=10 tid=0x08131c00 nid=0x5ba7 waiting on condition [0x00000000..0x00000000]\n   java.lang.Thread.State: RUNNABLE\n\n\"Finalizer\" daemon prio=10 tid=0x0811f000 nid=0x5ba6 in Object.wait() [0xd0709000..0xd070a0b0]\n   java.lang.Thread.State: WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\n\t- locked <0xd4cfe828> (a java.lang.ref.ReferenceQueue$Lock)\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)\n\tat java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)\n\n\"Reference Handler\" daemon prio=10 tid=0x0811e400 nid=0x5ba5 in Object.wait() [0xd075a000..0xd075af30]\n   java.lang.Thread.State: WAITING (on object monitor)\n\tat java.lang.Object.wait(Native Method)\n\tat java.lang.Object.wait(Object.java:485)\n\tat java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)\n\t- locked <0xd4cfe6c8> (a java.lang.ref.Reference$Lock)\n\n\"VM Thread\" prio=10 tid=0x0811bc00 nid=0x5ba4 runnable \n\n\"GC task thread#0 (ParallelGC)\" prio=10 tid=0x08060c00 nid=0x5ba2 runnable \n\n\"GC task thread#1 (ParallelGC)\" prio=10 tid=0x08061c00 nid=0x5ba3 runnable \n\n\"VM Periodic Task Thread\" prio=10 tid=0xd007c800 nid=0x5bad waiting on condition \n\nJNI global references: 873\n\nHeap\n PSYoungGen      total 58176K, used 9357K [0xf13d0000, 0xf4cb0000, 0xf4cb0000)\n  eden space 58112K, 16% used [0xf13d0000,0xf1cef708,0xf4c90000)\n  from space 64K, 25% used [0xf4ca0000,0xf4ca4000,0xf4cb0000)\n  to   space 64K, 0% used [0xf4c90000,0xf4c90000,0xf4ca0000)\n PSOldGen        total 466048K, used 425073K [0xd4cb0000, 0xf13d0000, 0xf13d0000)\n  object space 466048K, 91% used [0xd4cb0000,0xeebcc690,0xf13d0000)\n PSPermGen       total 22144K, used 21756K [0xd0cb0000, 0xd2250000, 0xd4cb0000)\n  object space 22144K, 98% used [0xd0cb0000,0xd21ef2c8,0xd2250000)\n\n"
  },
  {
    "path": "tda/src/test/resources/visualvmremote.log",
    "content": "\r\n2008-11-20 09:28:02\r\nFull thread dump Java HotSpot(TM) 64-Bit Server VM (11.0-b15 mixed mode):\r\n\r\n\"Timer-180\" - Thread t@332\r\n   java.lang.Thread.State: TIMED_WAITING on java.util.TaskQueue@7311acb7\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:509)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"RMI TCP Connection(24)-192.18.126.254\" - Thread t@254\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:129)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:237)\r\n\t- locked java.io.BufferedInputStream@5284339c\r\n\tat java.io.FilterInputStream.read(FilterInputStream.java:66)\r\n\tat sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:517)\r\n\tat sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\r\n\tat sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- locked java.util.concurrent.locks.ReentrantLock$NonfairSync@7a29682f\r\n\r\n\"JMX server connection timeout 239\" - Thread t@239\r\n   java.lang.Thread.State: TIMED_WAITING on [I@13e977d\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"RMI TCP Connection(17)-192.18.126.254\" - Thread t@201\r\n   java.lang.Thread.State: TIMED_WAITING on com.sun.jmx.remote.internal.ArrayNotificationBuffer@7aca9651\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat com.sun.jmx.remote.internal.ArrayNotificationBuffer.fetchNotifications(ArrayNotificationBuffer.java:417)\r\n\tat com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.fetchNotifications(ArrayNotificationBuffer.java:209)\r\n\tat com.sun.jmx.remote.internal.ServerNotifForwarder.fetchNotifs(ServerNotifForwarder.java:258)\r\n\tat javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1227)\r\n\tat javax.management.remote.rmi.RMIConnectionImpl$2.run(RMIConnectionImpl.java:1225)\r\n\tat javax.management.remote.rmi.RMIConnectionImpl.fetchNotifications(RMIConnectionImpl.java:1231)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\r\n\tat java.lang.reflect.Method.invoke(Method.java:597)\r\n\tat sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)\r\n\tat sun.rmi.transport.Transport$1.run(Transport.java:159)\r\n\tat java.security.AccessController.doPrivileged(Native Method)\r\n\tat sun.rmi.transport.Transport.serviceCall(Transport.java:155)\r\n\tat sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)\r\n\tat sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\r\n\tat sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- locked java.util.concurrent.locks.ReentrantLock$NonfairSync@3364387c\r\n\r\n\"RMI TCP Connection(20)-192.18.126.254\" - Thread t@200\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat sun.management.ThreadImpl.dumpThreads0(Native Method)\r\n\tat sun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:374)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n\tat sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\r\n\tat java.lang.reflect.Method.invoke(Method.java:597)\r\n\tat com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn(ConvertingMethod.java:167)\r\n\tat com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:96)\r\n\tat com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2(MXBeanIntrospector.java:33)\r\n\tat com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)\r\n\tat com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)\r\n\tat com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)\r\n\tat javax.management.StandardMBean.invoke(StandardMBean.java:391)\r\n\tat com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)\r\n\tat com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)\r\n\tat com.sun.enterprise.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:178)\r\n\tat javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1426)\r\n\tat javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)\r\n\tat javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1264)\r\n\tat javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1359)\r\n\tat javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)\r\n\tat sun.reflect.GeneratedMethodAccessor113.invoke(Unknown Source)\r\n\tat sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)\r\n\tat java.lang.reflect.Method.invoke(Method.java:597)\r\n\tat sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)\r\n\tat sun.rmi.transport.Transport$1.run(Transport.java:159)\r\n\tat java.security.AccessController.doPrivileged(Native Method)\r\n\tat sun.rmi.transport.Transport.serviceCall(Transport.java:155)\r\n\tat sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)\r\n\tat sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)\r\n\tat sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- locked java.util.concurrent.locks.ReentrantLock$NonfairSync@78b86f3f\r\n\r\n\"Timer-13\" - Thread t@155\r\n   java.lang.Thread.State: TIMED_WAITING on java.util.TaskQueue@55ab9655\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:509)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"DestroyJavaVM\" - Thread t@154\r\n   java.lang.Thread.State: RUNNABLE\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Timer-12\" - Thread t@153\r\n   java.lang.Thread.State: TIMED_WAITING on java.util.TaskQueue@741ad263\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:509)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"ContainerBackgroundProcessor[StandardEngine[com.sun.appserv]]\" - Thread t@150\r\n   java.lang.Thread.State: TIMED_WAITING\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1800)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"CometSelector\" - Thread t@149\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll(DevPollArrayWrapper.java:164)\r\n\tat sun.nio.ch.DevPollSelectorImpl.doSelect(DevPollSelectorImpl.java:68)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked sun.nio.ch.Util$1@6c8e65c4\r\n\t- locked java.util.Collections$UnmodifiableSet@97ff3f2\r\n\t- locked sun.nio.ch.DevPollSelectorImpl@48bd8916\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat com.sun.enterprise.web.connector.grizzly.comet.CometSelector$1.run(CometSelector.java:124)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Thread-33\" - Thread t@147\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll(DevPollArrayWrapper.java:164)\r\n\tat sun.nio.ch.DevPollSelectorImpl.doSelect(DevPollSelectorImpl.java:68)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked sun.nio.ch.Util$1@69413063\r\n\t- locked java.util.Collections$UnmodifiableSet@53b7dad5\r\n\t- locked sun.nio.ch.DevPollSelectorImpl@40ba5dce\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:84)\r\n\tat org.netbeans.lib.collab.util.SelectWorker.run(SelectWorker.java:299)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"SelectWorker 0\" - Thread t@146\r\n   java.lang.Thread.State: WAITING on org.netbeans.lib.collab.util.Worker@4c9692d7\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat org.netbeans.lib.collab.util.Worker.run(Worker.java:217)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Thread-31\" - Thread t@144\r\n   java.lang.Thread.State: TIMED_WAITING\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.sun.im.gateway.http.HTTPBindSessionManager$SessionManagerCacheCleaner.run(HTTPBindSessionManager.java:972)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"RMI RenewClean-[10.5.185.104:50005]\" - Thread t@143\r\n   java.lang.Thread.State: TIMED_WAITING on java.lang.ref.ReferenceQueue$Lock@70d1f3c3\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\r\n\tat sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:516)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"RMI TCP Accept-50005\" - Thread t@142\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked java.net.SocksSocketImpl@b64a095\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:421)\r\n\tat sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)\r\n\tat sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"LDAPConnThread-0 ldap://r54s05-zone-01.red.iplanet.com:389\" - Thread t@138\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.net.SocketInputStream.socketRead0(Native Method)\r\n\tat java.net.SocketInputStream.read(SocketInputStream.java:129)\r\n\tat java.io.BufferedInputStream.fill(BufferedInputStream.java:218)\r\n\tat java.io.BufferedInputStream.read(BufferedInputStream.java:237)\r\n\t- locked java.io.BufferedInputStream@669c0a95\r\n\tat netscape.ldap.ber.stream.BERElement.getElement(BERElement.java:101)\r\n\tat netscape.ldap.LDAPConnThread.run(LDAPConnThread.java:539)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"ContainerBackgroundProcessor[StandardEngine[com.sun.appserv].StandardHost[server].StandardContext[/__wstx-services]]\" - Thread t@136\r\n   java.lang.Thread.State: TIMED_WAITING\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1800)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"ContainerBackgroundProcessor[StandardEngine[com.sun.appserv].StandardHost[__asadmin].StandardContext[]]\" - Thread t@135\r\n   java.lang.Thread.State: TIMED_WAITING\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1800)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"ContainerBackgroundProcessor[StandardEngine[com.sun.appserv].StandardHost[server].StandardContext[/iwc]]\" - Thread t@134\r\n   java.lang.Thread.State: TIMED_WAITING\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1800)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"ContainerBackgroundProcessor[StandardEngine[com.sun.appserv].StandardHost[__asadmin].StandardContext[/web1]]\" - Thread t@133\r\n   java.lang.Thread.State: TIMED_WAITING\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1800)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"ContainerBackgroundProcessor[StandardEngine[com.sun.appserv].StandardHost[server].StandardContext[]]\" - Thread t@132\r\n   java.lang.Thread.State: TIMED_WAITING\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1800)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"ContainerBackgroundProcessor[StandardEngine[com.sun.appserv].StandardHost[server].StandardContext[/__JWSappclients]]\" - Thread t@131\r\n   java.lang.Thread.State: TIMED_WAITING\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1800)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-19\" - Thread t@129\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-18\" - Thread t@128\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-17\" - Thread t@127\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-16\" - Thread t@126\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-15\" - Thread t@125\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-14\" - Thread t@124\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-13\" - Thread t@123\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-12\" - Thread t@122\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-11\" - Thread t@121\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-10\" - Thread t@120\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-9\" - Thread t@119\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-8\" - Thread t@118\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-7\" - Thread t@117\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-6\" - Thread t@116\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-5\" - Thread t@115\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-4\" - Thread t@114\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-3\" - Thread t@113\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-2\" - Thread t@112\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-1\" - Thread t@111\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpWorkerThread-4848-0\" - Thread t@110\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.LinkedListPipeline@104c89a4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:114)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-19\" - Thread t@108\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-18\" - Thread t@107\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-17\" - Thread t@106\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-16\" - Thread t@105\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-15\" - Thread t@104\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-14\" - Thread t@103\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-13\" - Thread t@102\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-12\" - Thread t@101\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-11\" - Thread t@100\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-10\" - Thread t@99\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-9\" - Thread t@98\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-8\" - Thread t@97\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-7\" - Thread t@96\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-6\" - Thread t@95\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-5\" - Thread t@94\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-4\" - Thread t@93\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-3\" - Thread t@92\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-2\" - Thread t@91\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-1\" - Thread t@90\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8181-0\" - Thread t@89\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline@391b1fc4\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"SelectorThread-4848\" - Thread t@109\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll(DevPollArrayWrapper.java:164)\r\n\tat sun.nio.ch.DevPollSelectorImpl.doSelect(DevPollSelectorImpl.java:68)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked sun.nio.ch.Util$1@2a382216\r\n\t- locked java.util.Collections$UnmodifiableSet@4b45e801\r\n\t- locked sun.nio.ch.DevPollSelectorImpl@6a3e770\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.doSelect(SelectorThread.java:1337)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.startListener(SelectorThread.java:1284)\r\n\t- locked [Ljava.lang.Object;@72af6d77\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.startEndpoint(SelectorThread.java:1247)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.run(SelectorThread.java:1223)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-19\" - Thread t@85\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-18\" - Thread t@84\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-17\" - Thread t@83\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-16\" - Thread t@82\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-15\" - Thread t@81\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-14\" - Thread t@80\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-13\" - Thread t@79\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-12\" - Thread t@78\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-11\" - Thread t@77\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-10\" - Thread t@76\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-9\" - Thread t@75\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-8\" - Thread t@74\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-7\" - Thread t@73\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-6\" - Thread t@72\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-5\" - Thread t@71\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-4\" - Thread t@70\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-3\" - Thread t@69\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-2\" - Thread t@68\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-1\" - Thread t@67\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"httpSSLWorkerThread-8080-0\" - Thread t@66\r\n   java.lang.Thread.State: WAITING on com.sun.enterprise.web.portunif.PortUnificationPipeline@2cef15fd\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:291)\r\n\tat com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:104)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"SelectorThread-8181\" - Thread t@88\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll(DevPollArrayWrapper.java:164)\r\n\tat sun.nio.ch.DevPollSelectorImpl.doSelect(DevPollSelectorImpl.java:68)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked sun.nio.ch.Util$1@19a63e17\r\n\t- locked java.util.Collections$UnmodifiableSet@71366528\r\n\t- locked sun.nio.ch.DevPollSelectorImpl@68df4013\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.doSelect(SelectorThread.java:1337)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.startListener(SelectorThread.java:1284)\r\n\t- locked [Ljava.lang.Object;@18e7d52f\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.startEndpoint(SelectorThread.java:1247)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.run(SelectorThread.java:1223)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"SelectorThread-8080\" - Thread t@65\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll(DevPollArrayWrapper.java:164)\r\n\tat sun.nio.ch.DevPollSelectorImpl.doSelect(DevPollSelectorImpl.java:68)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked sun.nio.ch.Util$1@5fae7480\r\n\t- locked java.util.Collections$UnmodifiableSet@3662b093\r\n\t- locked sun.nio.ch.DevPollSelectorImpl@4b5880d9\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.doSelect(SelectorThread.java:1337)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.startListener(SelectorThread.java:1284)\r\n\t- locked [Ljava.lang.Object;@1f734d34\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.startEndpoint(SelectorThread.java:1247)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.run(SelectorThread.java:1223)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"SelectorReaderThread-8080\" - Thread t@87\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll(DevPollArrayWrapper.java:164)\r\n\tat sun.nio.ch.DevPollSelectorImpl.doSelect(DevPollSelectorImpl.java:68)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked sun.nio.ch.Util$1@c72d8a6\r\n\t- locked java.util.Collections$UnmodifiableSet@44d467bd\r\n\t- locked sun.nio.ch.DevPollSelectorImpl@9e87ae9\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.doSelect(SelectorThread.java:1337)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorReadThread.startEndpoint(SelectorReadThread.java:122)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.run(SelectorThread.java:1223)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"SelectorReaderThread-8080\" - Thread t@86\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll(DevPollArrayWrapper.java:164)\r\n\tat sun.nio.ch.DevPollSelectorImpl.doSelect(DevPollSelectorImpl.java:68)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked sun.nio.ch.Util$1@3b2f719a\r\n\t- locked java.util.Collections$UnmodifiableSet@3e4ef791\r\n\t- locked sun.nio.ch.DevPollSelectorImpl@6ca8538d\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.doSelect(SelectorThread.java:1337)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorReadThread.startEndpoint(SelectorReadThread.java:122)\r\n\tat com.sun.enterprise.web.connector.grizzly.SelectorThread.run(SelectorThread.java:1223)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"ClusterServiceListener\" - Thread t@61\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked java.net.SocksSocketImpl@1f0585b6\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:421)\r\n\tat com.sun.messaging.jmq.jmsserver.multibroker.fullyconnected.ClusterServiceListener.run(ClusterImpl.java:1786)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"MessageBusCallbackDispatcher\" - Thread t@60\r\n   java.lang.Thread.State: WAITING on java.util.LinkedList@3e6ea3fe\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.messaging.jmq.jmsserver.multibroker.CallbackDispatcher.run(CallbackDispatcher.java:330)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"jms_ACCEPT\" - Thread t@59\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked java.net.SocksSocketImpl@238d7fa3\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:421)\r\n\tat com.sun.messaging.jmq.jmsserver.net.tcp.TcpProtocol.accept(TcpProtocol.java:281)\r\n\tat com.sun.messaging.jmq.jmsserver.service.imq.IMQIPService.run(IMQIPService.java:574)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"admin_ACCEPT\" - Thread t@58\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked java.net.SocksSocketImpl@1eb6b891\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:421)\r\n\tat com.sun.messaging.jmq.jmsserver.net.tcp.TcpProtocol.accept(TcpProtocol.java:281)\r\n\tat com.sun.messaging.jmq.jmsserver.service.imq.IMQIPService.run(IMQIPService.java:574)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"RMI RenewClean-[10.5.185.104:46090]\" - Thread t@56\r\n   java.lang.Thread.State: TIMED_WAITING on java.lang.ref.ReferenceQueue$Lock@51d098b7\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\r\n\tat sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:516)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"RMI TCP Accept-0\" - Thread t@55\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked java.net.SocksSocketImpl@6e0f4757\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:421)\r\n\tat sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)\r\n\tat sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"ClusterDiscoveryService\" - Thread t@54\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked java.net.SocksSocketImpl@1ed760aa\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:421)\r\n\tat com.sun.messaging.jmq.jmsserver.service.ClusterDiscoveryService.run(ClusterDiscoveryService.java:318)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Broker Monitor\" - Thread t@53\r\n   java.lang.Thread.State: WAITING on java.util.Collections$SynchronizedSet@6bb63bc9\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.messaging.jmq.jmsserver.core.cluster.BrokerConsumers.run(MultibrokerRouter.java:1342)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"JMQPortMapper\" - Thread t@52\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked java.net.SocksSocketImpl@4e0b48b7\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:421)\r\n\tat com.sun.messaging.jmq.jmsserver.service.PortMapper.run(PortMapper.java:485)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"MQTimer-Thread\" - Thread t@51\r\n   java.lang.Thread.State: TIMED_WAITING on java.util.TaskQueue@484adff7\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:509)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"RMI RenewClean-[10.5.185.104:46084]\" - Thread t@46\r\n   java.lang.Thread.State: TIMED_WAITING on java.lang.ref.ReferenceQueue$Lock@373727fe\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\r\n\tat sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:516)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"RMI TCP Accept-0\" - Thread t@44\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked java.net.SocksSocketImpl@46d30e68\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:421)\r\n\tat sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)\r\n\tat sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"RMI TCP Accept-8686\" - Thread t@43\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked java.net.SocksSocketImpl@4a56f22b\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:421)\r\n\tat sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)\r\n\tat sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Thread-12\" - Thread t@40\r\n   java.lang.Thread.State: WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@4f9380c1\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)\r\n\tat java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:317)\r\n\tat com.sun.enterprise.management.support.LoaderRegThread.process(LoaderRegThread.java:243)\r\n\tat com.sun.enterprise.management.support.LoaderRegThread.run(LoaderRegThread.java:154)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Thread-11\" - Thread t@39\r\n   java.lang.Thread.State: TIMED_WAITING\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.sun.enterprise.management.support.LoaderBase.mySleep(LoaderBase.java:241)\r\n\tat com.sun.enterprise.management.support.Loader$DeferredRegistrationThread.run(Loader.java:389)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Thread-9\" - Thread t@37\r\n   java.lang.Thread.State: WAITING on com.sun.corba.ee.impl.javax.rmi.CORBA.KeepAlive@34a1a081\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat com.sun.corba.ee.impl.javax.rmi.CORBA.KeepAlive.run(Util.java:857)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"p: thread-pool-1; w: 2\" - Thread t@36\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked java.net.SocksSocketImpl@12350b2e\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\r\n\tat com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:259)\r\n\tat com.sun.corba.ee.impl.transport.SocketOrChannelAcceptorImpl.accept(SocketOrChannelAcceptorImpl.java:250)\r\n\tat com.sun.corba.ee.impl.transport.ListenerThreadImpl.doWork(ListenerThreadImpl.java:107)\r\n\tat com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"p: thread-pool-1; w: 1\" - Thread t@35\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked java.net.SocksSocketImpl@58710258\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\r\n\tat com.sun.net.ssl.internal.ssl.SSLServerSocketImpl.accept(SSLServerSocketImpl.java:259)\r\n\tat com.sun.corba.ee.impl.transport.SocketOrChannelAcceptorImpl.accept(SocketOrChannelAcceptorImpl.java:250)\r\n\tat com.sun.corba.ee.impl.transport.ListenerThreadImpl.doWork(ListenerThreadImpl.java:107)\r\n\tat com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:555)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"SelectorThread\" - Thread t@34\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll0(Native Method)\r\n\tat sun.nio.ch.DevPollArrayWrapper.poll(DevPollArrayWrapper.java:164)\r\n\tat sun.nio.ch.DevPollSelectorImpl.doSelect(DevPollSelectorImpl.java:68)\r\n\tat sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)\r\n\t- locked sun.nio.ch.Util$1@f6ecfb5\r\n\t- locked java.util.Collections$UnmodifiableSet@1df799f9\r\n\t- locked sun.nio.ch.DevPollSelectorImpl@636d5cfd\r\n\tat sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)\r\n\tat com.sun.corba.ee.impl.transport.SelectorImpl.run(SelectorImpl.java:283)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Timer-3\" - Thread t@33\r\n   java.lang.Thread.State: WAITING on java.util.TaskQueue@3630f72\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:483)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Timer-2\" - Thread t@32\r\n   java.lang.Thread.State: TIMED_WAITING on java.util.TaskQueue@5c8b071a\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:509)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Timer-1\" - Thread t@31\r\n   java.lang.Thread.State: TIMED_WAITING on java.util.TaskQueue@3a65d76a\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:509)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Thread-4\" - Thread t@30\r\n   java.lang.Thread.State: TIMED_WAITING\r\n\tat java.lang.Thread.sleep(Native Method)\r\n\tat com.sun.enterprise.admin.server.core.channel.RMIClient.run(RMIClient.java:151)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"RMI RenewClean-[10.5.185.104:46078,com.sun.enterprise.admin.server.core.channel.LocalRMIClientSocketFactory@3600e312]\" - Thread t@28\r\n   java.lang.Thread.State: TIMED_WAITING on java.lang.ref.ReferenceQueue$Lock@46f846df\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\r\n\tat sun.rmi.transport.DGCClient$EndpointEntry$RenewCleanThread.run(DGCClient.java:516)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Timer-0\" - Thread t@27\r\n   java.lang.Thread.State: WAITING on java.util.TaskQueue@47890e8f\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat java.util.TimerThread.mainLoop(Timer.java:483)\r\n\tat java.util.TimerThread.run(Timer.java:462)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"RMI Scheduler(0)\" - Thread t@26\r\n   java.lang.Thread.State: TIMED_WAITING on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@a45f686\r\n\tat sun.misc.Unsafe.park(Native Method)\r\n\tat java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198)\r\n\tat java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:1963)\r\n\tat java.util.concurrent.DelayQueue.take(DelayQueue.java:164)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:583)\r\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:576)\r\n\tat java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)\r\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"GC Daemon\" - Thread t@24\r\n   java.lang.Thread.State: TIMED_WAITING on sun.misc.GC$LatencyLock@7b1560a9\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat sun.misc.GC$Daemon.run(GC.java:100)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"RMI Reaper\" - Thread t@23\r\n   java.lang.Thread.State: WAITING on java.lang.ref.ReferenceQueue$Lock@7e02286\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)\r\n\tat sun.rmi.transport.ObjectTable$Reaper.run(ObjectTable.java:333)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"RMI TCP Accept-0\" - Thread t@22\r\n   java.lang.Thread.State: RUNNABLE\r\n\tat java.net.PlainSocketImpl.socketAccept(Native Method)\r\n\tat java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)\r\n\t- locked java.net.SocksSocketImpl@20f4190a\r\n\tat java.net.ServerSocket.implAccept(ServerSocket.java:453)\r\n\tat java.net.ServerSocket.accept(ServerSocket.java:421)\r\n\tat sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:369)\r\n\tat sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:341)\r\n\tat java.lang.Thread.run(Thread.java:619)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Signal Dispatcher\" - Thread t@4\r\n   java.lang.Thread.State: RUNNABLE\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Finalizer\" - Thread t@3\r\n   java.lang.Thread.State: WAITING on java.lang.ref.ReferenceQueue$Lock@14bea551\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)\r\n\tat java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)\r\n\tat java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n\"Reference Handler\" - Thread t@2\r\n   java.lang.Thread.State: WAITING on java.lang.ref.Reference$Lock@1ccfa5c1\r\n\tat java.lang.Object.wait(Native Method)\r\n\tat java.lang.Object.wait(Object.java:485)\r\n\tat java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)\r\n\r\n   Locked ownable synchronizers:\r\n\t- None\r\n\r\n"
  },
  {
    "path": "tda-macos-binary/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n\n    <parent>\n        <groupId>de.grimmfrost.tda</groupId>\n        <artifactId>tda-parent</artifactId>\n        <version>3.0</version>\n    </parent>\n\n    <artifactId>tda-macos-binary</artifactId>\n    <name>TDA macOS Binary</name>\n\n    <dependencies>\n        <dependency>\n            <groupId>de.grimmfrost.tda</groupId>\n            <artifactId>tda</artifactId>\n            <version>${project.version}</version>\n        </dependency>\n    </dependencies>\n\n    <build>\n        <plugins>\n            <plugin>\n                <groupId>org.apache.maven.plugins</groupId>\n                <artifactId>maven-dependency-plugin</artifactId>\n                <version>3.10.0</version>\n                <executions>\n                    <execution>\n                        <id>copy-tda-jar</id>\n                        <phase>prepare-package</phase>\n                        <goals>\n                            <goal>copy</goal>\n                        </goals>\n                        <configuration>\n                            <artifactItems>\n                                <artifactItem>\n                                    <groupId>de.grimmfrost.tda</groupId>\n                                    <artifactId>tda</artifactId>\n                                    <version>${project.version}</version>\n                                    <type>jar</type>\n                                    <overWrite>true</overWrite>\n                                    <outputDirectory>${project.build.directory}/input</outputDirectory>\n                                    <destFileName>tda.jar</destFileName>\n                                </artifactItem>\n                            </artifactItems>\n                        </configuration>\n                    </execution>\n                </executions>\n            </plugin>\n            <plugin>\n                <groupId>org.panteleyev</groupId>\n                <artifactId>jpackage-maven-plugin</artifactId>\n                <version>1.7.4</version>\n                <executions>\n                    <execution>\n                        <id>jpackage</id>\n                        <phase>package</phase>\n                        <goals>\n                            <goal>jpackage</goal>\n                        </goals>\n                        <configuration>\n                            <name>TDA</name>\n                            <appVersion>${project.version}</appVersion>\n                            <vendor>Ingo Rockel</vendor>\n                            <destination>${project.build.directory}/dist</destination>\n                            <input>${project.build.directory}/input</input>\n                            <mainJar>tda.jar</mainJar>\n                            <mainClass>de.grimmfrost.tda.TDA</mainClass>\n                            <type>DMG</type>\n                            <javaOptions>\n                                <option>-Xmx1024m</option>\n                            </javaOptions>\n                            <macPackageIdentifier>de.grimmfrost.tda</macPackageIdentifier>\n                            <macPackageName>TDA</macPackageName>\n                            <icon>src/main/resources/TDA.icns</icon>\n                        </configuration>\n                    </execution>\n                </executions>\n            </plugin>\n        </plugins>\n    </build>\n</project>\n"
  },
  {
    "path": "visualvm-lib-component/manifest.mf",
    "content": "OpenIDE-Module-Public-Packages: de.grimmfrost.tda.*, de.grimmfrost.tda.filter.*, de.grimmfrost.tda.jconsole.*, de.grimmfrost.tda.mcp.*, de.grimmfrost.tda.utils.*, de.grimmfrost.tda.utils.jedit.*, org.jdesktop.swingx.*, com.google.gson.*, com.jhlabs.*\nOpenIDE-Module-Module-Dependencies: org.graalvm.visualvm.application/2 > 2.0, org.graalvm.visualvm.application.views/2 > 2.0, org.graalvm.visualvm.core/2 > 2.2, org.graalvm.visualvm.threaddump/2 > 2.0, org.graalvm.visualvm.tools/2 > 2.0\nOpenIDE-Module-Java-Dependencies: Java > 1.8\nOpenIDE-Module: net.java.dev.tda/2\nOpenIDE-Module-Localizing-Bundle: net/java/dev/tda/Bundle.properties\nOpenIDE-Module-Specification-Version: 2.6\nOpenIDE-Module-Requires: org.openide.modules.ModuleFormat1\nClass-Path: ext/tda.jar ext/swingx.jar ext/gson.jar ext/filters.jar\n\n"
  },
  {
    "path": "visualvm-lib-component/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n\n    <parent>\n        <groupId>de.grimmfrost.tda</groupId>\n        <artifactId>tda-parent</artifactId>\n        <version>3.0</version>\n    </parent>\n\n    <artifactId>visualvm-lib-component</artifactId>\n    <packaging>nbm</packaging>\n\n    <name>VisualVM TDA Lib Component</name>\n\n    <dependencies>\n        <dependency>\n            <groupId>de.grimmfrost.tda</groupId>\n            <artifactId>tda</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>com.formdev</groupId>\n            <artifactId>flatlaf</artifactId>\n            <version>3.7.1</version>\n        </dependency>\n        <dependency>\n            <groupId>com.formdev</groupId>\n            <artifactId>flatlaf-extras</artifactId>\n            <version>3.7.1</version>\n        </dependency>\n        <dependency>\n            <groupId>org.swinglabs</groupId>\n            <artifactId>swingx</artifactId>\n            <version>1.6.1</version>\n        </dependency>\n        <dependency>\n            <groupId>com.google.code.gson</groupId>\n            <artifactId>gson</artifactId>\n            <version>2.13.2</version>\n        </dependency>\n        <dependency>\n            <groupId>com.jhlabs</groupId>\n            <artifactId>filters</artifactId>\n            <version>2.0.235-1</version>\n        </dependency>\n        <dependency>\n            <groupId>org.graalvm.visualvm.api</groupId>\n            <artifactId>org-graalvm-visualvm-application</artifactId>\n            <version>${visualvm.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.graalvm.visualvm.api</groupId>\n            <artifactId>org-graalvm-visualvm-application-views</artifactId>\n            <version>${visualvm.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.graalvm.visualvm.api</groupId>\n            <artifactId>org-graalvm-visualvm-core</artifactId>\n            <version>${visualvm.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.graalvm.visualvm.api</groupId>\n            <artifactId>org-graalvm-visualvm-threaddump</artifactId>\n            <version>${visualvm.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.graalvm.visualvm.api</groupId>\n            <artifactId>org-graalvm-visualvm-tools</artifactId>\n            <version>${visualvm.version}</version>\n        </dependency>\n    </dependencies>\n\n    <build>\n        <plugins>\n            <plugin>\n                <groupId>org.apache.maven.plugins</groupId>\n                <artifactId>maven-jar-plugin</artifactId>\n                <configuration>\n                    <archive>\n                        <manifestFile>manifest.mf</manifestFile>\n                    </archive>\n                </configuration>\n            </plugin>\n            <plugin>\n                <groupId>org.apache.netbeans.utilities</groupId>\n                <artifactId>nbm-maven-plugin</artifactId>\n                <extensions>true</extensions>\n                <configuration>\n                    <codeNameBase>net.java.dev.tda/2</codeNameBase>\n                    <verifyRuntime>false</verifyRuntime>\n                    <useOSGiDependencies>false</useOSGiDependencies>\n                    <moduleType>autoload</moduleType>\n                    <publicPackages>\n                        <publicPackage>de.grimmfrost.tda.*</publicPackage>\n                        <publicPackage>de.grimmfrost.tda.filter.*</publicPackage>\n                        <publicPackage>de.grimmfrost.tda.jconsole.*</publicPackage>\n                        <publicPackage>de.grimmfrost.tda.mcp.*</publicPackage>\n                        <publicPackage>de.grimmfrost.tda.utils.*</publicPackage>\n                        <publicPackage>de.grimmfrost.tda.utils.jedit.*</publicPackage>\n                        <publicPackage>com.formdev.flatlaf.*</publicPackage>\n                        <publicPackage>org.jdesktop.swingx.*</publicPackage>\n                        <publicPackage>com.google.gson.*</publicPackage>\n                        <publicPackage>com.jhlabs.*</publicPackage>\n                    </publicPackages>\n                </configuration>\n            </plugin>\n            <plugin>\n                <groupId>org.apache.maven.plugins</groupId>\n                <artifactId>maven-dependency-plugin</artifactId>\n                <executions>\n                    <execution>\n                        <id>copy-dependencies</id>\n                        <phase>prepare-package</phase>\n                        <goals>\n                            <goal>copy-dependencies</goal>\n                        </goals>\n                        <configuration>\n                            <outputDirectory>${project.build.directory}/nbm/clusters/extra/modules/ext</outputDirectory>\n                            <includeScope>runtime</includeScope>\n                            <includeGroupIds>de.grimmfrost.tda,org.swinglabs,com.jhlabs,com.google.code.gson,com.formdev</includeGroupIds>\n                            <stripVersion>true</stripVersion>\n                        </configuration>\n                    </execution>\n                </executions>\n            </plugin>\n        </plugins>\n    </build>\n</project>\n"
  },
  {
    "path": "visualvm-lib-component/src/main/resources/net/java/dev/tda/Bundle.properties",
    "content": "OpenIDE-Module-Name=VisualVM-TDA-Library-Component\nOpenIDE-Module-Display-Category=Tools\nOpenIDE-Module-Long-Description=\\\n     VisualVM TDA Library Component, needed by TDA Module\nOpenIDE-Module-Short-Description=TDALibraryComponent\n"
  },
  {
    "path": "visualvm-logfile-component/manifest.mf",
    "content": "OpenIDE-Module-Public-Packages: net.java.dev.tda.visualvm.logfile.*\nOpenIDE-Module-Module-Dependencies: net.java.dev.tda/2 > 2.0,\n  org.graalvm.visualvm.core/2 > 2.2,\n  org.openide.modules > 7.3.1,\n  org.openide.util > 7.10.1.1,\n  org.openide.util.ui > 9.15\nOpenIDE-Module-Java-Dependencies: Java > 1.8\nAutoUpdate-Show-In-Client: false\nOpenIDE-Module: net.java.dev.tda.visualvm.logfile/2\nOpenIDE-Module-Localizing-Bundle: net/java/dev/tda/visualvm/logfile/Bundle.properties\nOpenIDE-Module-Specification-Version: 2.6\nOpenIDE-Module-Install: net/java/dev/tda/visualvm/logfile/Install.class\nOpenIDE-Module-Layer: net/java/dev/tda/visualvm/logfile/layer.xml\nOpenIDE-Module-Requires: org.openide.modules.ModuleFormat1\n\n"
  },
  {
    "path": "visualvm-logfile-component/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n\n    <parent>\n        <groupId>de.grimmfrost.tda</groupId>\n        <artifactId>tda-parent</artifactId>\n        <version>3.0</version>\n    </parent>\n\n    <artifactId>visualvm-logfile-component</artifactId>\n    <packaging>nbm</packaging>\n\n    <name>VisualVM TDA Logfile Component</name>\n\n    <dependencies>\n        <dependency>\n            <groupId>de.grimmfrost.tda</groupId>\n            <artifactId>visualvm-lib-component</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.graalvm.visualvm.api</groupId>\n            <artifactId>org-graalvm-visualvm-core</artifactId>\n            <version>${visualvm.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.netbeans.api</groupId>\n            <artifactId>org-openide-modules</artifactId>\n            <version>${netbeans.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.netbeans.api</groupId>\n            <artifactId>org-openide-util</artifactId>\n            <version>${netbeans.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.netbeans.api</groupId>\n            <artifactId>org-openide-util-ui</artifactId>\n            <version>${netbeans.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.netbeans.api</groupId>\n            <artifactId>org-openide-util-lookup</artifactId>\n            <version>${netbeans.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.netbeans.api</groupId>\n            <artifactId>org-openide-loaders</artifactId>\n            <version>${netbeans.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.netbeans.api</groupId>\n            <artifactId>org-openide-nodes</artifactId>\n            <version>${netbeans.version}</version>\n        </dependency>\n    </dependencies>\n\n    <build>\n        <plugins>\n            <plugin>\n                <groupId>org.apache.maven.plugins</groupId>\n                <artifactId>maven-jar-plugin</artifactId>\n                <configuration>\n                    <archive>\n                        <manifestFile>manifest.mf</manifestFile>\n                    </archive>\n                </configuration>\n            </plugin>\n            <plugin>\n                <groupId>org.apache.netbeans.utilities</groupId>\n                <artifactId>nbm-maven-plugin</artifactId>\n                <configuration>\n                    <codeNameBase>net.java.dev.tda.visualvm.logfile/2</codeNameBase>\n                    <verifyRuntime>false</verifyRuntime>\n                </configuration>\n            </plugin>\n        </plugins>\n    </build>\n</project>\n"
  },
  {
    "path": "visualvm-logfile-component/src/main/java/net/java/dev/tda/visualvm/logfile/AddLogfileAction.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: AddLogfileAction.java,v 1.1 2008-09-30 19:21:59 irockel Exp $\n */\npackage net.java.dev.tda.visualvm.logfile;\n\nimport de.grimmfrost.tda.utils.PrefManager;\nimport java.awt.Image;\nimport java.awt.event.ActionEvent;\nimport java.io.File;\nimport javax.swing.ImageIcon;\nimport javax.swing.JFileChooser;\nimport org.graalvm.visualvm.core.ui.actions.SingleDataSourceAction;\nimport org.openide.util.NbBundle;\nimport org.openide.util.Utilities;\n\n/**\n * popup menu action for adding log files.\n * @author irockel\n */\npublic class AddLogfileAction extends SingleDataSourceAction<LogfileDataSource> {\n    \n    private static final String ICON_PATH = \"net/java/dev/tda/visualvm/logfile/resources/logfileadd.png\";    // NOI18N\n    private static final Image ICON =  Utilities.loadImage(ICON_PATH);\n    private static JFileChooser fc = null;\n    \n    private boolean tracksSelection = false;\n    \n    private static AddLogfileAction alwaysEnabled;\n    private static AddLogfileAction selectionAware;\n        \n    private AddLogfileAction() {\n        super(LogfileDataSource.class);\n        putValue(NAME, NbBundle.getMessage(LogfileDumpView.class, \"LBL_Add_Logfile\"));  // NOI18N\n        putValue(SHORT_DESCRIPTION, NbBundle.getMessage(LogfileDumpView.class, \"ToolTip_Add_Logfile\")); // NOI18N\n    }\n    \n    public static synchronized AddLogfileAction alwaysEnabled() {\n        if (alwaysEnabled == null) {\n            alwaysEnabled = new AddLogfileAction();\n            alwaysEnabled.putValue(SMALL_ICON, new ImageIcon(ICON));\n            alwaysEnabled.putValue(\"iconBase\", ICON_PATH);  // NOI18N\n        }\n        return alwaysEnabled;\n    }\n    \n    public static synchronized AddLogfileAction selectionAware() {\n        if (selectionAware == null) {\n            selectionAware = new AddLogfileAction();\n            selectionAware.tracksSelection = true;\n        }\n        return selectionAware;\n    }\n    \n    public void actionPerformed(LogfileDataSource container, ActionEvent e) {\n        if(fc == null) {\n            fc = new JFileChooser();\n            fc.setMultiSelectionEnabled(true);\n            fc.setCurrentDirectory(PrefManager.get().getSelectedPath());\n        }\n        if(fc.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {\n            File[] files = fc.getSelectedFiles();\n            for(int i = 0; i < files.length; i++) {\n                LogfileProvider.createLogfile(files[i]);\n            }\n            PrefManager.get().setSelectedPath(fc.getCurrentDirectory());\n        }\n    }\n    \n    \n    protected boolean isEnabled(LogfileDataSource container) {\n        return true;\n    }\n    \n    @Override\n    protected void initialize() {\n        if (tracksSelection) {\n            super.initialize();\n        }\n    }\n}\n\n"
  },
  {
    "path": "visualvm-logfile-component/src/main/java/net/java/dev/tda/visualvm/logfile/Install.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: Install.java,v 1.1 2008-09-30 19:21:59 irockel Exp $\n */\npackage net.java.dev.tda.visualvm.logfile;\n\nimport org.openide.modules.ModuleInstall;\n\n/**\n *\n * @author irockel\n */\npublic class Install extends ModuleInstall {\n    \n    @Override\n    public void restored() {\n        try {\n            LogfileProvider.initialize();\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n}\n"
  },
  {
    "path": "visualvm-logfile-component/src/main/java/net/java/dev/tda/visualvm/logfile/LogPanel.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: LogPanel.java,v 1.1 2008-09-30 19:21:59 irockel Exp $\n */\npackage net.java.dev.tda.visualvm.logfile;\n\nimport de.grimmfrost.tda.TDA;\nimport de.grimmfrost.tda.utils.jedit.JEditTextArea;\nimport de.grimmfrost.tda.utils.jedit.PopupMenu;\nimport java.awt.BorderLayout;\nimport java.awt.Color;\nimport java.awt.event.ActionListener;\nimport java.awt.event.KeyEvent;\nimport javax.swing.BorderFactory;\nimport javax.swing.JPanel;\nimport javax.swing.KeyStroke;\n\n/**\n *\n * @author irockel\n */\npublic class LogPanel extends JPanel {\n    JEditTextArea editComp = new JEditTextArea();\n    \n    public LogPanel(TDA ref) {\n        super(new BorderLayout());\n        setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY));\n                \n        editComp.setEditable(false);\n        editComp.setBackground(Color.WHITE);\n        setOpaque(true);\n        setBackground(Color.WHITE);\n        \n        editComp.setCaretVisible(false);\n        editComp.setCaretBlinkEnabled(false);\n        editComp.setRightClickPopup(new PopupMenu(editComp, ref, true));\n        editComp.getInputHandler().addKeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_F3, 0), (ActionListener) editComp.getRightClickPopup());\n        editComp.getInputHandler().addKeyBinding(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK), (ActionListener) editComp.getRightClickPopup());\n        \n        add(editComp, BorderLayout.CENTER);\n    }\n\n    public void setCaretPosition(int i) {\n        editComp.setCaretPosition(i);\n    }\n\n    public void setText(String content) {\n        editComp.setText(content);\n    }    \n}\n"
  },
  {
    "path": "visualvm-logfile-component/src/main/java/net/java/dev/tda/visualvm/logfile/Logfile.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: Logfile.java,v 1.1 2008-09-30 19:21:59 irockel Exp $\n */\npackage net.java.dev.tda.visualvm.logfile;\n\nimport java.io.File;\nimport java.io.IOException;\nimport org.graalvm.visualvm.core.datasource.DataSource;\nimport org.graalvm.visualvm.core.snapshot.Snapshot;\n\n/**\n *\n * @author irockel\n */\npublic class Logfile extends Snapshot {\n    \n    public Logfile(File file) throws IOException {\n        this(file, null);\n    }\n    \n    public Logfile(File file, DataSource master) throws IOException {\n        super(file, LogfileSupport.getCategory(), master);\n        \n        if (!file.exists() || !file.isFile())\n            throw new IOException(\"File \" + file.getAbsolutePath() + \" does not exist\");    // NOI18N        \n    }\n        \n    @Override\n    public boolean supportsSaveAs() {\n        return false;\n    }\n}\n\n"
  },
  {
    "path": "visualvm-logfile-component/src/main/java/net/java/dev/tda/visualvm/logfile/LogfileCategory.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: LogfileCategory.java,v 1.1 2008-09-30 19:21:59 irockel Exp $\n */\npackage net.java.dev.tda.visualvm.logfile;\n\nimport org.graalvm.visualvm.core.snapshot.SnapshotCategory;\nimport org.openide.util.NbBundle;\n\n/**\n *\n * @author irockel\n */\npublic class LogfileCategory extends SnapshotCategory<Logfile> {\n    \n    private static final String NAME = NbBundle.getMessage(LogfileDumpView.class, \"LBL_Logfile\");   // NOI18N\n    private static final String PREFIX = NbBundle.getMessage(LogfileDumpView.class, \"LBL_Prefix\");\n    private static final String SUFFIX = null;\n    \n    public LogfileCategory() {\n        super(NAME, Logfile.class, PREFIX, SUFFIX, POSITION_NONE);\n    }\n\n}\n"
  },
  {
    "path": "visualvm-logfile-component/src/main/java/net/java/dev/tda/visualvm/logfile/LogfileDataSource.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: LogfileDataSource.java,v 1.1 2008-09-30 19:21:59 irockel Exp $\n */\npackage net.java.dev.tda.visualvm.logfile;\n\nimport java.awt.Image;\nimport org.graalvm.visualvm.core.datasource.DataSource;\nimport org.graalvm.visualvm.core.datasource.descriptor.DataSourceDescriptor;\nimport org.graalvm.visualvm.core.datasource.descriptor.DataSourceDescriptorFactory;\nimport org.graalvm.visualvm.core.model.AbstractModelProvider;\nimport org.openide.util.NbBundle;\nimport org.openide.util.Utilities;\n\n/**\n * Logfile node in explorer view.\n * \n * @author irockel\n */\npublic class LogfileDataSource extends DataSource {\n    private static LogfileDataSource sharedInstance;\n    \n    \n    public static synchronized LogfileDataSource sharedInstance() {\n        if (sharedInstance == null) {\n            sharedInstance = new LogfileDataSource();\n        }\n        \n        return sharedInstance;\n    }\n    \n    \n    private LogfileDataSource() {\n        DataSourceDescriptorFactory.getDefault().registerProvider(new LogfileDataSourceDescriptorProvider());\n        DataSource.ROOT.getRepository().addDataSource(this);\n    }\n    \n    \n    private static class LogfileDataSourceDescriptor extends DataSourceDescriptor {\n        private static final Image NODE_ICON = Utilities.loadImage(\"net/java/dev/tda/visualvm/logfile/resources/logfiles.png\", true);    // NOI18N\n\n        LogfileDataSourceDescriptor() {\n            super(LogfileDataSource.sharedInstance(), NbBundle.getMessage(LogfileDumpView.class, \"ExplorerNode_Name_Logfiles\"), null, NODE_ICON, 20, EXPAND_ON_EACH_NEW_CHILD);   // NOI18N\n        }\n\n    }\n    \n    private static class LogfileDataSourceDescriptorProvider extends AbstractModelProvider<DataSourceDescriptor,DataSource> {\n    \n        public DataSourceDescriptor createModelFor(DataSource ds) {\n            if (LogfileDataSource.sharedInstance().equals(ds)) {\n                return new LogfileDataSourceDescriptor();\n            }\n            return null;\n        }\n    }\n\n\n}\n"
  },
  {
    "path": "visualvm-logfile-component/src/main/java/net/java/dev/tda/visualvm/logfile/LogfileDescriptor.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: LogfileDescriptor.java,v 1.1 2008-09-30 19:21:59 irockel Exp $\n */\npackage net.java.dev.tda.visualvm.logfile;\n\nimport java.awt.Image;\nimport org.graalvm.visualvm.core.snapshot.SnapshotDescriptor;\nimport org.openide.util.*;\n\n/**\n * logfile descriptor for specified logfile\n * @author irockel\n */\npublic class LogfileDescriptor extends SnapshotDescriptor<Logfile> {\n\n    private static final Image ICON = Utilities.loadImage(\"net/java/dev/tda/visualvm/logfile/resources/logfile.png\", true);  // NOI18N\n\n    public LogfileDescriptor(Logfile logFile) {\n        super(logFile, ICON);\n    }\n}\n"
  },
  {
    "path": "visualvm-logfile-component/src/main/java/net/java/dev/tda/visualvm/logfile/LogfileDescriptorProvider.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: LogfileDescriptorProvider.java,v 1.1 2008-09-30 19:21:59 irockel Exp $\n */\npackage net.java.dev.tda.visualvm.logfile;\n\nimport org.graalvm.visualvm.core.datasource.DataSource;\nimport org.graalvm.visualvm.core.datasource.descriptor.DataSourceDescriptor;\nimport org.graalvm.visualvm.core.model.AbstractModelProvider;\n\n/**\n * provider for logfile descriptors\n * \n * @author irockel\n */\npublic class LogfileDescriptorProvider extends AbstractModelProvider<DataSourceDescriptor,DataSource> {\n    \n    public DataSourceDescriptor createModelFor(DataSource ds) {\n        if (ds instanceof Logfile) {\n            return new LogfileDescriptor((Logfile) ds);\n        }\n        return null;\n    }\n}\n"
  },
  {
    "path": "visualvm-logfile-component/src/main/java/net/java/dev/tda/visualvm/logfile/LogfileDumpView.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: LogfileDumpView.java,v 1.1 2008-09-30 19:21:59 irockel Exp $\n */\npackage net.java.dev.tda.visualvm.logfile;\n\nimport de.grimmfrost.tda.TDA;\nimport java.io.BufferedReader;\nimport java.io.FileReader;\nimport java.io.IOException;\nimport javax.swing.ImageIcon;\nimport org.graalvm.visualvm.core.ui.DataSourceView;\nimport org.graalvm.visualvm.core.ui.components.DataViewComponent;\nimport org.openide.util.Exceptions;\nimport org.openide.util.NbBundle;\nimport org.openide.util.Utilities;\n\n/**\n *\n * @author irockel\n */\npublic class LogfileDumpView extends DataSourceView {\n    private static final String IMAGE_PATH = \"net/java/dev/tda/visualvm/logfile/resources/logfile.png\";  // NOI18N\n    private Logfile logfile;\n    private TDA tdaPanel;\n    private LogPanel logPanel = null;\n    \n    public LogfileDumpView(Logfile logfile) {\n        super(logfile, NbBundle.getMessage(LogfileDumpView.class, \"LBL_DumpView\"), new ImageIcon(Utilities.loadImage(IMAGE_PATH, true)).getImage(), 0, false);    // NOI18N\n        this.logfile = logfile;\n    }\n\n    @Override\n    protected DataViewComponent createComponent() {\n        tdaPanel = new TDA(false, logfile.getFile().getAbsolutePath());\n        \n        // init panel and set border\n        tdaPanel.init(false, true);\n        \n        // display the logfile\n        tdaPanel.initDumpDisplay(null);\n        \n        logPanel = new LogPanel(tdaPanel);\n        logPanel.setText(readText());\n        \n        DataViewComponent dvc = new DataViewComponent(new DataViewComponent.MasterView(NbBundle.getMessage(LogfileDumpView.class, \n                \"MSG_DumpView\"), null, logPanel), \n                new DataViewComponent.MasterViewConfiguration(true));\n        logPanel.revalidate();\n        return(dvc);\n    }\n\n    /**\n     * read log file\n     * \n     * @return\n     */\n    private String readText() {\n        BufferedReader br = null;\n        try {\n            StringBuffer text = new StringBuffer();\n            br = new BufferedReader(new FileReader(logfile.getFile()));\n            while(br.ready()) {\n                text.append(br.readLine());\n                text.append(\"\\n\");\n            }\n            return(text.toString());\n        } catch (IOException ex) {\n            Exceptions.printStackTrace(ex);\n        } finally {\n            try {\n                if(br != null) {\n                    br.close();\n                }\n            } catch (IOException ex) {\n                Exceptions.printStackTrace(ex);\n            }\n        }\n        return(\"\");\n    }\n}\n"
  },
  {
    "path": "visualvm-logfile-component/src/main/java/net/java/dev/tda/visualvm/logfile/LogfileDumpViewProvider.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: LogfileDumpViewProvider.java,v 1.1 2008-09-30 19:21:59 irockel Exp $\n */\npackage net.java.dev.tda.visualvm.logfile;\n\nimport java.util.Set;\nimport org.graalvm.visualvm.core.ui.DataSourceView;\nimport org.graalvm.visualvm.core.ui.PluggableDataSourceViewProvider;\n\n/**\n * datasource view provider for logfile view.\n * \n * @author irockel\n */\npublic class LogfileDumpViewProvider extends PluggableDataSourceViewProvider<Logfile>{\n    \n    protected boolean supportsViewFor(Logfile coreDump) {\n        return true;\n    }\n\n    protected DataSourceView createView(Logfile logfile) {\n        return new LogfileDumpView(logfile);\n    }\n    \n    public Set<Integer> getPluggableLocations(DataSourceView view) {\n        return ALL_LOCATIONS;\n    }\n\n}\n\n"
  },
  {
    "path": "visualvm-logfile-component/src/main/java/net/java/dev/tda/visualvm/logfile/LogfileProvider.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: LogfileProvider.java,v 1.1 2008-09-30 19:21:59 irockel Exp $\n */\n\npackage net.java.dev.tda.visualvm.logfile;\n\nimport java.io.File;\nimport java.io.IOException;\nimport java.util.logging.Level;\nimport java.util.logging.Logger;\nimport org.graalvm.visualvm.core.datasource.descriptor.DataSourceDescriptorFactory;\nimport org.graalvm.visualvm.core.snapshot.RegisteredSnapshotCategories;\nimport org.graalvm.visualvm.core.ui.DataSourceViewsManager;\n\n/**\n * provides logfile support.\n * \n * @author irockel\n */\npublic class LogfileProvider {\n    private static final Logger LOGGER = Logger.getLogger(LogfileProvider.class.getName());\n    \n    public static void createLogfile(File logfile) {\n        try {\n            Logfile newLogfile = new Logfile(logfile);\n            \n            // add data source.\n            LogfileDataSource.sharedInstance().getRepository().addDataSource(newLogfile);\n        } catch (IOException ex) {\n            LOGGER.log(Level.SEVERE, \"Error loading logfile\", ex);\n        }\n    }\n    \n    public static void initialize() {\n        DataSourceDescriptorFactory.getDefault().registerProvider(new LogfileDescriptorProvider());\n        LogfileDataSource.sharedInstance();\n        //CoreDumpProvider.register(); registers persisted core dumps\n        RegisteredSnapshotCategories.sharedInstance().registerCategory(LogfileSupport.getCategory());\n        DataSourceViewsManager.sharedInstance().addViewProvider(LogfileSupport.getOverviewView(), Logfile.class);\n    }\n}\n"
  },
  {
    "path": "visualvm-logfile-component/src/main/java/net/java/dev/tda/visualvm/logfile/LogfileSupport.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n *\n * $Id: LogfileSupport.java,v 1.1 2008-09-30 19:21:59 irockel Exp $\n */\npackage net.java.dev.tda.visualvm.logfile;\n\nimport org.graalvm.visualvm.core.ui.PluggableDataSourceViewProvider;\n\n\n/**\n *\n * @author irockel\n */\npublic class LogfileSupport {\n    private static LogfileCategory category;\n    private static PluggableDataSourceViewProvider<Logfile> viewProvider;\n    \n    public static LogfileCategory getCategory() {\n        if(category == null) {\n            category = new LogfileCategory();\n        }\n        \n        return(category);\n    }\n    \n    public static PluggableDataSourceViewProvider<Logfile> getOverviewView() {\n        if(viewProvider == null) {\n            viewProvider = new LogfileDumpViewProvider();\n        }\n        return viewProvider;\n    }\n\n\n}\n"
  },
  {
    "path": "visualvm-logfile-component/src/main/resources/net/java/dev/tda/visualvm/logfile/Bundle.properties",
    "content": "OpenIDE-Module-Display-Category=Tools\nOpenIDE-Module-Long-Description=\\\n    Logfile Plugin for VisualVM, needed by TDA Plugin\nOpenIDE-Module-Name=VisualVM-Logfile-Module\n\nExplorerNode_Name_Logfiles=Logfiles\nOpenIDE-Module-Short-Description=LogfilePlugin\nToolTip_Add_Logfile=Add Logfile\nLBL_Add_Logfile=Add Logfile...\nLBL_Logfile=Logfile\nLBL_Prefix=Logfile\nMSG_Logfile=Logfile\n\nLBL_RequestDump=Request Dump\nLBL_Dump_results=Thread Dump Results\nLBL_Filters=Filters\nLBL_Categories=Categories\nLBL_CollapseTree=Collapse Tree\nLBL_ExpandTree=Expand Tree\nMSG_Dump=Thread Dumps\nMSG_Dump_results=Thread Dump Results\n\nLBL_DumpView=Logfile\nMSG_DumpView=Logfile\n\n"
  },
  {
    "path": "visualvm-logfile-component/src/main/resources/net/java/dev/tda/visualvm/logfile/layer.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE filesystem PUBLIC \"-//NetBeans//DTD Filesystem 1.1//EN\" \"http://www.netbeans.org/dtds/filesystem-1_1.dtd\">\n<filesystem>\n    <folder name=\"Actions\">\n        <folder name=\"Other\">\n            <file name=\"net-java-dev-tda-visualvm-logfile-AddLogfileAction-alwaysEnabled.instance\">\n                <attr name=\"instanceCreate\" methodvalue=\"net.java.dev.tda.visualvm.logfile.AddLogfileAction.alwaysEnabled\"/>\n            </file>\n        </folder>        \n    </folder>\n    <folder name=\"Menu\">\n        <folder name=\"File\">\n            <file name=\"net-java-dev-tda-visualvm-logfile-AddLogfileAction-alwaysEnabled.shadow\">\n                <attr name=\"originalFile\" stringvalue=\"Actions/Other/net-java-dev-tda-visualvm-logfile-AddLogfileAction-alwaysEnabled.instance\"/>\n                <attr name=\"position\" intvalue=\"1450\"/>\n            </file>\n        </folder>        \n    </folder>\n    <folder name=\"Toolbars\">\n        <folder name=\"File\">\n            <file name=\"net-java-dev-tda-visualvm-logfile-AddLogfileAction-alwaysEnabled.shadow\">\n                <attr name=\"originalFile\" stringvalue=\"Actions/Other/net-java-dev-tda-visualvm-logfile-AddLogfileAction-alwaysEnabled.instance\"/>\n                <attr name=\"position\" intvalue=\"1450\"/>\n            </file>\n        </folder>\n    </folder>    \n    <folder name=\"VisualVM\">\n        <folder name=\"ExplorerPopupSelection\">\n            <file name=\"net-java-dev-tda-visualvm-logfile-AddLogfileAction-selectionAware.instance\">\n                <attr name=\"instanceCreate\" methodvalue=\"net.java.dev.tda.visualvm.logfile.AddLogfileAction.selectionAware\"/>\n                <attr name=\"position\" intvalue=\"0\"/>\n                <attr name=\"default\" boolvalue=\"true\"/>\n            </file>\n        </folder>\n        <folder name=\"ExplorerPopupNoSelection\">\n            <file name=\"net-java-dev-tda-visualvm-logfile-AddLogfileAction-alwaysEnabled.shadow\">\n                <attr name=\"originalFile\" stringvalue=\"Actions/Other/net-java-dev-tda-visualvm-logfile-AddLogfileAction-alwaysEnabled.instance\"/>\n                <attr name=\"position\" intvalue=\"1000\"/>\n            </file>\n        </folder>\n    </folder>\n</filesystem>"
  },
  {
    "path": "visualvm-module/manifest.mf",
    "content": "OpenIDE-Module-Public-Packages: -\nOpenIDE-Module-Module-Dependencies: net.java.dev.tda/2 > 2.0,\n  net.java.dev.tda.visualvm.logfile/2 > 2.4,\n  org.graalvm.visualvm.application/2 > 2.0,\n  org.graalvm.visualvm.application.views/2 > 2.0,\n  org.graalvm.visualvm.core/2 > 2.2,\n  org.graalvm.visualvm.threaddump/2 > 2.0,\n  org.graalvm.visualvm.tools/2 > 2.0,\n  org.netbeans.modules.options.api/1 > 1.25.1,\n  org.openide.awt > 7.33.1,\n  org.openide.modules > 7.3.1,\n  org.openide.util > 7.10.1.1,\n  org.openide.util.lookup > 8.0,\n  org.openide.util.ui > 9.15,\n  org.openide.windows > 6.42.1\nOpenIDE-Module-Java-Dependencies: Java > 1.8\nAutoUpdate-Show-In-Client: true\nOpenIDE-Module: net.java.dev.tda.visualvm/2\nOpenIDE-Module-Localizing-Bundle: net/java/dev/tda/visualvm/Bundle.properties\nOpenIDE-Module-Specification-Version: 2.6\nOpenIDE-Module-Install: net/java/dev/tda/visualvm/Install.class\nOpenIDE-Module-Layer: net/java/dev/tda/visualvm/layer.xml\nOpenIDE-Module-Requires: org.openide.modules.ModuleFormat1\n\n"
  },
  {
    "path": "visualvm-module/pom.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd\">\n    <modelVersion>4.0.0</modelVersion>\n\n    <parent>\n        <groupId>de.grimmfrost.tda</groupId>\n        <artifactId>tda-parent</artifactId>\n        <version>3.0</version>\n    </parent>\n\n    <artifactId>visualvm-module</artifactId>\n    <packaging>nbm</packaging>\n\n    <name>VisualVM TDA Module</name>\n\n    <dependencies>\n        <dependency>\n            <groupId>de.grimmfrost.tda</groupId>\n            <artifactId>visualvm-lib-component</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>de.grimmfrost.tda</groupId>\n            <artifactId>visualvm-logfile-component</artifactId>\n        </dependency>\n        <dependency>\n            <groupId>org.graalvm.visualvm.api</groupId>\n            <artifactId>org-graalvm-visualvm-application</artifactId>\n            <version>${visualvm.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.graalvm.visualvm.api</groupId>\n            <artifactId>org-graalvm-visualvm-application-views</artifactId>\n            <version>${visualvm.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.graalvm.visualvm.api</groupId>\n            <artifactId>org-graalvm-visualvm-core</artifactId>\n            <version>${visualvm.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.graalvm.visualvm.api</groupId>\n            <artifactId>org-graalvm-visualvm-threaddump</artifactId>\n            <version>${visualvm.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.graalvm.visualvm.api</groupId>\n            <artifactId>org-graalvm-visualvm-tools</artifactId>\n            <version>${visualvm.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.netbeans.api</groupId>\n            <artifactId>org-netbeans-modules-options-api</artifactId>\n            <version>${netbeans.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.netbeans.api</groupId>\n            <artifactId>org-openide-awt</artifactId>\n            <version>${netbeans.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.netbeans.api</groupId>\n            <artifactId>org-openide-modules</artifactId>\n            <version>${netbeans.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.netbeans.api</groupId>\n            <artifactId>org-openide-util</artifactId>\n            <version>${netbeans.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.netbeans.api</groupId>\n            <artifactId>org-openide-util-lookup</artifactId>\n            <version>${netbeans.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.netbeans.api</groupId>\n            <artifactId>org-openide-util-ui</artifactId>\n            <version>${netbeans.version}</version>\n        </dependency>\n        <dependency>\n            <groupId>org.netbeans.api</groupId>\n            <artifactId>org-openide-windows</artifactId>\n            <version>${netbeans.version}</version>\n        </dependency>\n    </dependencies>\n\n    <build>\n        <plugins>\n            <plugin>\n                <groupId>org.apache.maven.plugins</groupId>\n                <artifactId>maven-jar-plugin</artifactId>\n                <configuration>\n                    <archive>\n                        <manifestFile>manifest.mf</manifestFile>\n                    </archive>\n                </configuration>\n            </plugin>\n            <plugin>\n                <groupId>org.apache.netbeans.utilities</groupId>\n                <artifactId>nbm-maven-plugin</artifactId>\n                <configuration>\n                    <codeNameBase>net.java.dev.tda.visualvm/2</codeNameBase>\n                    <verifyRuntime>false</verifyRuntime>\n                </configuration>\n            </plugin>\n        </plugins>\n    </build>\n</project>\n"
  },
  {
    "path": "visualvm-module/src/main/java/net/java/dev/tda/visualvm/Install.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n */\npackage net.java.dev.tda.visualvm;\n\nimport org.openide.modules.ModuleInstall;\n\n/**\n *\n * @author irockel\n */\npublic class Install extends ModuleInstall {\n    \n    @Override\n    public void restored() {\n        try {\n            TDAViewProvider.initialize();\n        } catch (Exception e) {\n            e.printStackTrace();\n        }\n    }\n}\n"
  },
  {
    "path": "visualvm-module/src/main/java/net/java/dev/tda/visualvm/TDAView.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n */\n\npackage net.java.dev.tda.visualvm;\n\nimport de.grimmfrost.tda.TDA;\nimport java.awt.Color;\nimport java.awt.FlowLayout;\nimport java.awt.event.ActionEvent;\nimport javax.swing.BorderFactory;\nimport javax.swing.ImageIcon;\nimport javax.swing.JButton;\nimport javax.swing.JLabel;\nimport javax.swing.JPanel;\nimport org.graalvm.visualvm.core.datasource.DataSource;\nimport org.graalvm.visualvm.core.snapshot.Snapshot;\nimport org.graalvm.visualvm.core.ui.DataSourceView;\nimport org.graalvm.visualvm.core.ui.components.DataViewComponent;\nimport org.openide.util.*;\n\n/**\n * tda main display view for visualvm.\n * \n * @author Ingo Rockel <mailto:irockel@dev.java.net>\n */\npublic class TDAView extends DataSourceView {\n    private static final String IMAGE_PATH = \"net/java/dev/tda/visualvm/resources/tda.png\"; // NOI18N\n    private Snapshot logContent;\n    \n    private JButton collapseAllButton = null;\n    private JButton expandAllButton = null;\n    private TDA tdaPanel = null;\n    \n    public TDAView(DataSource logContent) {\n        super(logContent, \"Thread Dump Analyzer\", new ImageIcon(Utilities.loadImage(IMAGE_PATH, true)).getImage(), 60, false);\n\n        this.logContent = (Snapshot) logContent;\n    }\n\n    @Override\n    protected DataViewComponent createComponent() {\n        tdaPanel = new TDA(false, logContent.getFile().getAbsolutePath());\n        tdaPanel.init(true, true);\n        tdaPanel.initDumpDisplay(null);\n            \n        tdaPanel.setBorder(BorderFactory.createLineBorder(Color.LIGHT_GRAY));\n        \n        JPanel viewPanel = createView();\n        \n        DataViewComponent dvc = new DataViewComponent(new DataViewComponent.MasterView(NbBundle.getMessage(TDAView.class, \n                \"MSG_Dump\"), null, viewPanel), \n                new DataViewComponent.MasterViewConfiguration(false));\n        \n        dvc.configureDetailsArea(new DataViewComponent.DetailsAreaConfiguration(NbBundle.getMessage(TDAView.class, \n                \"LBL_Dump_results\"), false), DataViewComponent.TOP_LEFT);   // NOI18N\n        \n        dvc.addDetailsView(new DataViewComponent.DetailsView(NbBundle.getMessage(TDAView.class, \n                \"MSG_Dump_results\"), null, 10, tdaPanel, null), DataViewComponent.TOP_LEFT);\n        return(dvc);\n    }\n    \n    /**\n     * add given file to existing tda panel.\n     * @param file the file string path to add.\n     */\n    public void addToTDA(String file) {\n        tdaPanel.addDumpFile(file);\n    }\n    \n    private JPanel createView() {\n        JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));\n        buttonPanel.setOpaque(false);\n        buttonPanel.setBackground(Color.WHITE);\n        buttonPanel.setBorder(BorderFactory.createEmptyBorder(6, 0, 3, 0));\n        \n        collapseAllButton = new JButton(NbBundle.getMessage(TDAView.class, \"LBL_CollapseTree\"), TDA.createImageIcon(\"Collapsed.gif\"));\n        collapseAllButton.addActionListener((ActionEvent e) -> {\n            tdaPanel.expandAllDumpNodes(false);\n        });\n\n        expandAllButton = new JButton(NbBundle.getMessage(TDAView.class, \"LBL_ExpandTree\"), TDA.createImageIcon(\"Expanded.gif\"));\n        expandAllButton.addActionListener((ActionEvent e) -> {\n            tdaPanel.expandAllDumpNodes(true);\n        });\n        \n        buttonPanel.add(new JLabel(\"<html><body><b>Dump Actions:\"));\n        buttonPanel.add(collapseAllButton);\n        buttonPanel.add(expandAllButton);\n                \n        return(buttonPanel);\n    }\n    \n}\n"
  },
  {
    "path": "visualvm-module/src/main/java/net/java/dev/tda/visualvm/TDAViewProvider.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n */\npackage net.java.dev.tda.visualvm;\n\nimport java.util.HashMap;\nimport java.util.Map;\nimport net.java.dev.tda.visualvm.logfile.Logfile;\nimport org.graalvm.visualvm.core.datasource.DataSource;\nimport org.graalvm.visualvm.core.snapshot.Snapshot;\nimport org.graalvm.visualvm.core.ui.DataSourceView;\nimport org.graalvm.visualvm.core.ui.DataSourceViewProvider;\nimport org.graalvm.visualvm.core.ui.DataSourceViewsManager;\nimport org.graalvm.visualvm.threaddump.ThreadDump;\n\n/**\n * provides a tda view.\n * \n * @author irockel\n */\npublic class TDAViewProvider extends DataSourceViewProvider<DataSource> {\n    /*\n     * FIXME: this is just a hack to add newly added thread dumps to an existing thread dump view.\n     */\n    private final Map<DataSource, TDAView> views = new HashMap<>();\n    \n    static void initialize() {\n        DataSourceViewsManager.sharedInstance().addViewProvider(new TDAViewProvider(), DataSource.class);\n    }\n\n    @Override\n    protected boolean supportsViewFor(DataSource logContent) {\n        return ((logContent instanceof ThreadDump) || (logContent instanceof Logfile));\n    }\n\n    @Override\n    protected DataSourceView createView(DataSource logContent) {\n        TDAView tdaView;\n        if(views.containsKey(logContent.getMaster())) {\n            tdaView = views.get(logContent.getMaster());\n            tdaView.addToTDA(((Snapshot) logContent).getFile().getAbsolutePath());\n            return(tdaView);\n        } else {\n            tdaView = new TDAView(logContent);\n            views.put(logContent.getMaster(), tdaView);\n        }\n        return(tdaView);\n    }\n}\n"
  },
  {
    "path": "visualvm-module/src/main/java/net/java/dev/tda/visualvm/VisualvmOptionsCategory.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n */\npackage net.java.dev.tda.visualvm;\n\nimport javax.swing.Icon;\nimport javax.swing.ImageIcon;\nimport org.netbeans.spi.options.OptionsCategory;\nimport org.netbeans.spi.options.OptionsPanelController;\nimport org.openide.util.NbBundle;\nimport org.openide.util.Utilities;\n\npublic final class VisualvmOptionsCategory extends OptionsCategory {\n\n    @Override\n    public Icon getIcon() {\n        return new ImageIcon(Utilities.loadImage(\"net/java/dev/tda/visualvm/resources/options.png\"));\n    }\n\n    @Override\n    public String getCategoryName() {\n        return NbBundle.getMessage(VisualvmOptionsCategory.class, \"OptionsCategory_Name_Visualvm\");\n    }\n\n    @Override\n    public String getTitle() {\n        return NbBundle.getMessage(VisualvmOptionsCategory.class, \"OptionsCategory_Title_Visualvm\");\n    }\n\n    @Override\n    public OptionsPanelController create() {\n        return new VisualvmOptionsPanelController();\n    }\n}\n"
  },
  {
    "path": "visualvm-module/src/main/java/net/java/dev/tda/visualvm/VisualvmOptionsPanelController.java",
    "content": "/*\n * This file is part of TDA - Thread Dump Analysis Tool.\n *\n * TDA is free software; you can redistribute it and/or modify\n * it under the terms of the Lesser GNU General Public License as published by\n * the Free Software Foundation; either version 2.1 of the License, or\n * (at your option) any later version.\n *\n * TDA is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * Lesser GNU General Public License for more details.\n *\n * You should have received a copy of the Lesser GNU General Public License\n * along with TDA; if not, write to the Free Software\n * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA\n */\npackage net.java.dev.tda.visualvm;\n\nimport de.grimmfrost.tda.CustomCategoriesDialog;\nimport de.grimmfrost.tda.CustomCategoriesDialog.CategoriesPanel;\nimport de.grimmfrost.tda.FilterDialog;\nimport de.grimmfrost.tda.FilterDialog.FilterPanel;\nimport de.grimmfrost.tda.PreferencesDialog;\nimport java.beans.PropertyChangeListener;\nimport java.beans.PropertyChangeSupport;\nimport javax.swing.JComponent;\nimport javax.swing.JTabbedPane;\nimport org.netbeans.spi.options.OptionsPanelController;\nimport org.openide.util.HelpCtx;\nimport org.openide.util.Lookup;\nimport org.openide.util.NbBundle;\nimport org.openide.windows.WindowManager;\n\nfinal class VisualvmOptionsPanelController extends OptionsPanelController {\n\n    private JTabbedPane panel;\n    private PreferencesDialog prefDialog;\n    private final PropertyChangeSupport pcs = new PropertyChangeSupport(this);\n    private boolean changed;\n    private FilterPanel filterPanel;\n    private CategoriesPanel catPanel;\n\n    @Override\n    public void update() {\n        prefDialog.loadSettings();\n        changed = false;\n    }\n\n    @Override\n    public void applyChanges() {\n        prefDialog.saveSettings();\n        filterPanel.saveSettings();\n        catPanel.saveSettings();\n        changed = false;\n    }\n\n    @Override\n    public void cancel() {\n        // need not do anything special, if no changes have been persisted yet\n    }\n\n    @Override\n    public boolean isValid() {\n        return true;\n    }\n\n    @Override\n    public boolean isChanged() {\n        return changed;\n    }\n\n    @Override\n    public HelpCtx getHelpCtx() {\n        return null; // new HelpCtx(\"...ID\") if you have a help set\n\n    }\n\n    @Override\n    public JComponent getComponent(Lookup masterLookup) {\n        return getPanel();\n    }\n\n    @Override\n    public void addPropertyChangeListener(PropertyChangeListener l) {\n        pcs.addPropertyChangeListener(l);\n    }\n\n    @Override\n    public void removePropertyChangeListener(PropertyChangeListener l) {\n        pcs.removePropertyChangeListener(l);\n    }\n\n    private JTabbedPane getPanel() {\n        WindowManager wm = WindowManager.getDefault();\n        if (panel == null) {\n            prefDialog = new PreferencesDialog(wm.getMainWindow());\n            filterPanel = new FilterDialog.FilterPanel(wm.getMainWindow());\n            catPanel = new CustomCategoriesDialog.CategoriesPanel(wm.getMainWindow());\n            \n            panel = prefDialog.getPane();\n            panel.addTab(NbBundle.getMessage(TDAView.class, \"LBL_Filters\"), filterPanel);\n            panel.addTab(NbBundle.getMessage(TDAView.class, \"LBL_Categories\"), catPanel);\n        }\n        return panel;\n    }\n\n    void changed() {\n        if (!changed) {\n            changed = true;\n            pcs.firePropertyChange(OptionsPanelController.PROP_CHANGED, false, true);\n        }\n        pcs.firePropertyChange(OptionsPanelController.PROP_VALID, null, null);\n    }\n}\n"
  },
  {
    "path": "visualvm-module/src/main/resources/net/java/dev/tda/visualvm/Bundle.properties",
    "content": "# Module configuration\nOpenIDE-Module-Display-Category=Tools\nOpenIDE-Module-Long-Description=\\\n    VisualVM Module of TDA - Thread Dump Analyzer\nOpenIDE-Module-Name=VisualVM-TDA-Module\nOpenIDE-Module-Short-Description=TDAModule\n\n# specific translations\nAdvancedOption_DisplayName_Visualvm=TDA\nAdvancedOption_Tooltip_Visualvm=Settings for Thread Dump Parsing\nOptionsCategory_Name_Visualvm=TDA\nOptionsCategory_Title_Visualvm=TDA\nCTL_HelpOverviewAction=TDA\nLBL_RequestDump=Request Dump\nLBL_Dump_results=Thread Dump Results\nLBL_Filters=Filters\nLBL_Categories=Categories\nLBL_CollapseTree=Collapse Tree\nLBL_ExpandTree=Expand Tree\nMSG_Dump=Thread Dumps\nMSG_Dump_results=Thread Dump Results\n\n\n"
  },
  {
    "path": "visualvm-module/src/main/resources/net/java/dev/tda/visualvm/layer.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE filesystem PUBLIC \"-//NetBeans//DTD Filesystem 1.1//EN\" \"http://www.netbeans.org/dtds/filesystem-1_1.dtd\">\n<filesystem>\n    <folder name=\"OptionsDialog\">\n        <file name=\"net-java-dev-tda-visualvm-VisualvmOptionsCategory.instance\">\n            <attr name=\"position\" intvalue=\"2000\"/>\n        </file>\n    </folder>\n</filesystem>\n"
  }
]