[JBoss Tools Development] - How to Build JBoss Tools with Maven3
by Max Andersen
Max Andersen [http://community.jboss.org/people/max.andersen%40jboss.com] modified the document:
"How to Build JBoss Tools with Maven3"
To view the document, visit: http://community.jboss.org/docs/DOC-15513
--------------------------------------------------------------
Current trunk version of JBoss Tools can be built with maven 3 and make it faster and easier for everyone.
+*If you're trying to compile JBoss Tools within Eclipse for plugin development, https://community.jboss.org/wiki/JBossToolsTargetPlatformProvisioningorho... read this to get all the dependencies installed.*+
h2. Prerequisites
1. Java 1.6 SDK
2. Maven 3.beta1
3. About 6 GB of free disk space if you want to run all integration tests for (JBoss AS, Seam and Web Services Tools)
4. subversion client 1.6.X (should work with lower version as well)
h2. Environment Setup
h3. Maven and Java
Make sure your maven 3 is available by default and Java 1.6 is used.
mvn -version
should print out something like
Apache Maven 3.0-beta-2 (r983206; 2010-08-07 07:00:51-0400)
Java version: 1.6.0_18
Java home: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "2.6.32.14-127.fc12.i686" arch: "i386" Family: "unix"
h3. Sources
Checkout sources from anonymous SVN like
svn co http://anonsvn.jboss.org/repos/jbosstools/trunk jbosstools-trunk
This will take some time dependent on your bandwidth
h2. Build Strategies
Instructions below assume that commands are executed in jbosstools-src folder, in which all sources were previously checked out, as noted above.
There are several strategies to chose from: building everything, building individual component, building a set of components, building individual plugins or features. Depending on where you run Maven, you will aggregate/cascade down into more or less child builds.
But before you can do anything more complicated, you must first build the Target Platform and Parent Pom using this step:
mvn clean install -f build/parent/pom.xml
h3. Build/Test Everything
First, build the Target Platform and Parent Pom as noted above. Then, from the root of the checked out projects (eg., ~/jbosstools-src folder), you can build everything in one step, including running all tests, like this:
mvn clean install -f build/parent/pom.xml
Or, if you want to just compile the modules (plugins, features, tests, update sites) without *running* tests, add the system property *-Dmaven.test.skip=true*.
mvn clean install -Dmaven.test.skip=true -f build/parent/pom.xml
h3.
h3. Build/Test A Particular Component and its Dependencies
For convenience there are bootstrap profiles projects defined for each component. This provides a simple way to build & test components along with all their dependencies.
mvn clean install -f build/pom.xml -P${component.name}-bootstrap
where ${component.name} is component you want to build/test. Check in build/pom.xml for the available components you can build this way.
Once bootstrapped, you can then rebuild just the component you care about using this:
mvn clean install -f build/pom.xml -P${component.name}
If you prefer to do things iteratively (one component at a time) you can check the order to build in http://anonsvn.jboss.org/repos/jbosstools/trunk/pom.xml http://anonsvn.jboss.org/repos/jbosstools/trunk/pom.xml or http://anonsvn.jboss.org/repos/jbosstools/trunk/build/pom.xml http://anonsvn.jboss.org/repos/jbosstools/trunk/build/pom.xml
h3. Build/Test Single Component or Module
If you have already bootstrapped a build by compiling all its dependencies (as in the previous section), you can now (re)build a whole component, or individual plugins/tests/features, using this:
mvn clean install -f build/pom.xml -P${component.name}
where ${component.name} is component's root folder name. For instance to build jmx component:
mvn clean install -f build/pom.xml -Pjmx
Or to build but skip *running* tests:
mvn clean install -f build/pom.xml -Pjmx -Dmaven.test.skip=true
You can also build individual plugins or collections of plugins by simply running maven in that artifact's folder:
cd ~/jbosstools-src/common/plugins; mvn clean install
cd ~/jbosstools-src/common/tests/org.jboss.tools.common.model.ui.test; mvn clean install
Putting it all together, here's how you could build & test the JMX Core plugin:
mvn clean install -f build/parent/pom.xml # parent pom
mvn clean install -f build/pom.xml -Pjmx-bootstrap -Dmaven.test.skip # bootstrap deps
mvn clean install -f jmx/plugins/org.jboss.tools.jmx.core/pom.xml # rebuild plugin
mvn clean install -f jmx/tests/org.jboss.tools.jmx.core.test/pom.xml # rebuild & run test
----
h3. Running and Debugging Tests
To debug tests, you can read the console output produced by Maven, or you can https://www.jboss.org//tools/docs/testing#remote enable remote debugging using Eclipse.
To control how Maven will behave and how much console output will be produced, here are some useful flags:
-fae :: fail at end
-fn :: fail never
-q :: quieter output
-e :: if error occurs, dump stack into console
-X :: debug output (should log to a file using
`mvn clean install -X | tee log.txt`
because output will be huge)
----
h3. Adding a Plugin To An Existing Component
Now that you can build your component, you can easily add a new plugin to that component. Here's how.
0. Make sure your new plugin compiles in your workspace. Ensure your MANIFEST.MF contains all references/includes/requirements you need. Be sure to set the correct Bundle-RequireExecutionEnvironment (eg., JDK5 or JDK6).
1. When you are satisfied, you can commit your new plugin project to SVN.
cd ~/trunk/as/plugins; \
svn add org.jboss.ide.eclipse.as.rse.core; \
svn ci -m "JBIDE-123456 Initial commit of new as.rse.core plugin" org.jboss.ide.eclipse.as.rse.core
2. Next, add a pom.xml file to the root of your new project.
You can use m2eclipse to help w/ this if you have it installed; otherwise copy from another existing plugin project and edit appropriately. The version of the pom should match the version in the manifest.mf. Note that 3.2.0.qualifier (in MANIFEST.MF) is equivalent to 3.2.0-SNAPSHOT in the pom.xml.
3. Build your plugin:
cd ~/trunk/as/plugins/org.jboss.ide.eclipse.as.rse.core; \
mvn3 clean install
4. If your component's new plugin builds successfully, you can commit the pom.xml file, and add a reference to the new plugin (module) in the container pom:
vi ~/trunk/as/plugins/pom.xml
5. To ensure that your plugin is available on the update site, be sure that it is contained in at least one feature's feature.xml.
vi ~/trunk/as/features/org.jboss.ide.eclipse.as.feature/feature.xml
6. Finally, ensure that the feature appears in all three update sites:
vi ~/trunk/as/site/site.xml # (the AS update site)
vi ~/trunk/site/site.xml # (the JBoss Tools update site) and
vi ~/trunk/build/aggregate/site/site.xml # (the JBoss Tools aggregate update site, incl. pi4soa, Teiid, ...)
--------------------------------------------------------------
Comment by going to Community
[http://community.jboss.org/docs/DOC-15513]
Create a new document in JBoss Tools Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=102&co...]
14 years, 3 months
[JBoss AS7 Development] - Domain Updates branch status
by David Lloyd
David Lloyd [http://community.jboss.org/people/david.lloyd%40jboss.com] created the discussion
"Domain Updates branch status"
To view the discussion, visit: http://community.jboss.org/message/565838#565838
--------------------------------------------------------------
This is just to give a quick update of where the domain-updates branch is at. (This is a topic branch in my github instance dedicated to the purpose of converting to an update-driven server startup.)
The new Main is in place; we now have separate mains for domain vs standalone startup. However I have not successfully integrated with Server<->SM communications yet. Also, there are tests which do not compile because of the change in the class structure of Server. The new main accepts a bootstrap command object (which includes the initial server model update list) across its stdin and starts up from that. It then monitors stdin; when it reads an EOF or exception, it shuts down. Because of this it's not strictly necessary for the Server to maintain a connection to the PM as far as I can see.
I have extracted John's protocol stuff into a separate protocol module which I envision can be reused by Server<->SM, SM<->PM and SM<->SM/DC communications layers.
I introduced a new ServerController service as the entry point for server model updates. It handles the synchronization and stuff as well.
I think that's all the major points....
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/565838#565838]
Start a new discussion in JBoss AS7 Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years, 3 months
[JBoss Portal Development] - Cert or Form Login Jboss Portal 2.7.2
by Ryan Hood
allpar23 [http://community.jboss.org/people/allpar23] created the discussion
"Cert or Form Login Jboss Portal 2.7.2"
To view the discussion, visit: http://community.jboss.org/message/560265#560265
--------------------------------------------------------------
I have a question regarding authenication via CLIENT-CERT and FORM based. I'm trying to figure out the best way or any way to setup a mutli login configuration where the user can choose how they want to login (Client Cert or Form Based). Currently, I can set the web.xml file in portal-server.war to the followng and login via form:
<login-config>
<auth-method>FORM</auth-method>
<realm-name>JBoss Portal</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/login.jsp</form-error-page>
</form-login-config>
</login-config>
I can also change it to the following and login successfully via cert: (using BaseCertLoginModule and custom module to get role info)
<login-config>
<auth-method>CLIENT-CERT</auth-method>
<realm-name>portal</realm-name>
</login-config>
Problem is I want the user to be able to click one of 2 links to login... Link 1 will log the user in via FORM and Link 2 will log the user in via CERT. Is there a way I can do that.
BTW, I'm not using a LDAP as user DB. I'm only using Oracle.
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/560265#560265]
Start a new discussion in JBoss Portal Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years, 3 months
[JBoss Web Development] - Jboss log4j level dynamic switch
by Pradeep Sreekumar
Pradeep Sreekumar [http://community.jboss.org/people/pradeepsreekumar] created the discussion
"Jboss log4j level dynamic switch"
To view the discussion, visit: http://community.jboss.org/message/565715#565715
--------------------------------------------------------------
Hi All,
I am having an issue with switching the log level dynamically.I tried using log4j xml and following is the log4j configuration.
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${jboss.server.log.dir}/shcapiTest.log"/>
*<param name="Threshold" value="INFO"/>*
<param name="Append" value="false"/>
<layout class="org.apache.log4j.PatternLayout">
<!-- The default pattern: Date Priority [Category] Message\n -->
<param name="ConversionPattern" value="%c [%d] %5p %X{token} %C.%M - %m%n"/>
</layout>
</appender>
<category name="com.test.api" additivity="false">
<appender-ref ref="FILE"/>
</category>
<root>
<appender-ref ref="FILE"/>
</root>
Also *RefreshPeriod* is configured in jboss-service.xml.
But changing the threshold level from INFO to DEBUG is not printing my DEBUG logs
This is how i access the logger
Logger
.getLogger("com.test.api");
logger.debug("Testing debug");
Any issue with this configuration.?
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/565715#565715]
Start a new discussion in JBoss Web Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years, 3 months
[JBoss Transactions Development] - Shutdown of JTS
by Kabir Khan
Kabir Khan [http://community.jboss.org/people/kabir.khan%40jboss.com] created the discussion
"Shutdown of JTS"
To view the discussion, visit: http://community.jboss.org/message/565379#565379
--------------------------------------------------------------
For AS 7 we are using jbossjts 4.11.0.Final, and I am seeing some problems on shutdown of a server instance. This does not happen every time but often enough on my machine. For about 65 seconds I see stack traces like:
> "Attach Listener" daemon prio=9 tid=12e309000 nid=0x130102000 waiting on condition [00000000]
>
> java.lang.Thread.State: RUNNABLE
>
>
>
> "Exit thread" prio=5 tid=101b85000 nid=0x13134e000 waiting for monitor entry [13134d000]
>
> java.lang.Thread.State: BLOCKED (on object monitor)
>
> at java.lang.Shutdown.exit(Shutdown.java:168)
>
> - waiting to lock <1256c5a88> (a java.lang.Class for java.lang.Shutdown)
>
> at java.lang.Runtime.exit(Runtime.java:90)
>
> at java.lang.System.exit(System.java:921)
>
> at org.jboss.as.server.SystemExiter$DefaultExiter.exit(SystemExiter.java:53)
>
> at org.jboss.as.server.SystemExiter.exit(SystemExiter.java:40)
>
> at org.jboss.as.server.ProcessManagerServerCommunicationHandler$Controller$1.run(ProcessManagerServerCommunicationHandler.java:118)
>
> at java.lang.Thread.run(Thread.java:637)
>
>
>
> "Thread-2" daemon prio=5 tid=12e1c9000 nid=0x13185d000 waiting on condition [13185c000]
>
> java.lang.Thread.State: WAITING (parking)
>
> at sun.misc.Unsafe.park(Native Method)
>
> - parking to wait for <1057a6b78> (a java.util.concurrent.CountDownLatch$Sync)
>
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
>
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:905)
>
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1217)
>
> at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
>
> at org.jboss.msc.service.ServiceContainerImpl$ShutdownHookHolder$1$1.run(ServiceContainerImpl.java:110)
>
> at java.lang.Thread.run(Thread.java:637)
>
>
>
> "SIGINT handler" daemon prio=9 tid=101aa1000 nid=0x13175a000 in Object.wait() [131759000]
>
> java.lang.Thread.State: WAITING (on object monitor)
>
> at java.lang.Object.wait(Native Method)
>
> - waiting on <107d1cc70> (a java.lang.Thread)
>
> at java.lang.Thread.join(Thread.java:1167)
>
> - locked <107d1cc70> (a java.lang.Thread)
>
> at java.lang.Thread.join(Thread.java:1220)
>
> at java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:79)
>
> at java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:24)
>
> at java.lang.Shutdown.runHooks(Shutdown.java:79)
>
> at java.lang.Shutdown.sequence(Shutdown.java:123)
>
> at java.lang.Shutdown.exit(Shutdown.java:168)
>
> - locked <1256c5a88> (a java.lang.Class for java.lang.Shutdown)
>
> at java.lang.Terminator$1.handle(Terminator.java:35)
>
> at sun.misc.Signal$1.run(Signal.java:195)
>
> at java.lang.Thread.run(Thread.java:637)
>
>
>
> "Thread-8" daemon prio=5 tid=12e311800 nid=0x130cde000 in Object.wait() [130cdd000]
>
> java.lang.Thread.State: WAITING (on object monitor)
>
> at java.lang.Object.wait(Native Method)
>
> - waiting on <1064bf630> (a java.util.LinkedList)
>
> at java.lang.Object.wait(Object.java:485)
>
> at com.arjuna.ats.arjuna.coordinator.TransactionReaper.waitForCancellations(TransactionReaper.java:397)
>
> - locked <1064bf630> (a java.util.LinkedList)
>
> at com.arjuna.ats.internal.arjuna.coordinator.ReaperWorkerThread.run(ReaperWorkerThread.java:65)
>
>
>
> "Thread-7" daemon prio=5 tid=101a53800 nid=0x130bdb000 in Object.wait() [130bda000]
>
> java.lang.Thread.State: TIMED_WAITING (on object monitor)
>
> at java.lang.Object.wait(Native Method)
>
> - waiting on <1064bf658> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
>
> at com.arjuna.ats.internal.arjuna.coordinator.ReaperThread.run(ReaperThread.java:95)
>
> - locked <1064bf658> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
>
>
>
> "Periodic Recovery" daemon prio=5 tid=12e308800 nid=0x130ad8000 in Object.wait() [130ad7000]
>
> java.lang.Thread.State: TIMED_WAITING (on object monitor)
>
> at java.lang.Object.wait(Native Method)
>
> - waiting on <1063c0340> (a java.lang.Object)
>
> at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doPeriodicWait(PeriodicRecovery.java:696)
>
> at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:416)
>
> - locked <1063c0340> (a java.lang.Object)
>
>
>
> "Listener:4862" daemon prio=5 tid=12e307800 nid=0x1309d5000 runnable [1309d4000]
>
> java.lang.Thread.State: RUNNABLE
>
> at java.net.PlainSocketImpl.socketAccept(Native Method)
>
> at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
>
> - locked <1064bf858> (a java.net.SocksSocketImpl)
>
> at java.net.ServerSocket.implAccept(ServerSocket.java:453)
>
> at java.net.ServerSocket.accept(ServerSocket.java:421)
>
> at com.arjuna.ats.internal.arjuna.recovery.Listener.run(Listener.java:124)
>
>
>
> "Thread-6" daemon prio=5 tid=12e305000 nid=0x1308d2000 runnable [1308d1000]
>
> java.lang.Thread.State: RUNNABLE
>
> at java.net.PlainSocketImpl.socketConnect(Native Method)
>
> at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
>
> - locked <1064c0338> (a java.net.SocksSocketImpl)
>
> at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
>
> at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
>
> at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)
>
> at java.net.Socket.connect(Socket.java:529)
>
> at java.net.Socket.connect(Socket.java:478)
>
> at java.net.Socket.<init>(Socket.java:375)
>
> at java.net.Socket.<init>(Socket.java:189)
>
> at com.arjuna.ats.internal.arjuna.recovery.TransactionStatusConnector.establishConnection(TransactionStatusConnector.java:209)
>
> at com.arjuna.ats.internal.arjuna.recovery.TransactionStatusConnector.test(TransactionStatusConnector.java:75)
>
> at com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner.scan(ExpiredTransactionStatusManagerScanner.java:136)
>
> at com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.run(ExpiredEntryMonitor.java:191)
>
>
>
> "pool-2-thread-1" prio=5 tid=12e22c000 nid=0x1306cc000 waiting on condition [1306cb000]
>
> java.lang.Thread.State: WAITING (parking)
>
> at sun.misc.Unsafe.park(Native Method)
>
> - parking to wait for <1063c06e8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
>
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
>
> at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
>
> at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
>
> at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
>
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>
> at java.lang.Thread.run(Thread.java:637)
>
>
>
> "Reference Reaper" daemon prio=5 tid=12e1fa800 nid=0x1305c0000 in Object.wait() [1305bf000]
>
> java.lang.Thread.State: WAITING (on object monitor)
>
> at java.lang.Object.wait(Native Method)
>
> - waiting on <1063c0e30> (a java.lang.ref.ReferenceQueue$Lock)
>
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
>
> - locked <1063c0e30> (a java.lang.ref.ReferenceQueue$Lock)
>
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
>
> at org.jboss.msc.ref.References$ReaperThread.run(References.java:64)
>
>
>
> "Thread-3" daemon prio=5 tid=101a54800 nid=0x1304bd000 in Object.wait() [1304bc000]
>
> java.lang.Thread.State: WAITING (on object monitor)
>
> at java.lang.Object.wait(Native Method)
>
> - waiting on <1064bfa30> (a com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)
>
> at java.lang.Thread.join(Thread.java:1167)
>
> - locked <1064bfa30> (a com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)
>
> at java.lang.Thread.join(Thread.java:1220)
>
> at com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.shutdown(ExpiredEntryMonitor.java:130)
>
> - locked <1260aba50> (a java.lang.Class for com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)
>
> at com.arjuna.ats.internal.arjuna.recovery.RecoveryManagerImple.stop(RecoveryManagerImple.java:209)
>
> at com.arjuna.ats.arjuna.recovery.RecoveryManager.terminate(RecoveryManager.java:213)
>
> - locked <1064b6c68> (a com.arjuna.ats.arjuna.recovery.RecoveryManager)
>
> at com.arjuna.ats.arjuna.recovery.RecoveryManager.terminate(RecoveryManager.java:197)
>
> at com.arjuna.ats.jbossatx.jta.RecoveryManagerService.stop(RecoveryManagerService.java:84)
>
> at org.jboss.as.txn.TransactionManagerService.stop(TransactionManagerService.java:224)
>
> - locked <1064b6bc0> (a org.jboss.as.txn.TransactionManagerService)
>
> at org.jboss.msc.service.ServiceControllerImpl$StopTask.run(ServiceControllerImpl.java:1061)
>
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>
> at java.lang.Thread.run(Thread.java:637)
>
>
>
> "Poller SunPKCS11-Darwin" daemon prio=1 tid=12e103000 nid=0x130361000 waiting on condition [130360000]
>
> java.lang.Thread.State: TIMED_WAITING (sleeping)
>
> at java.lang.Thread.sleep(Native Method)
>
> at sun.security.pkcs11.SunPKCS11$TokenPoller.run(SunPKCS11.java:692)
>
> at java.lang.Thread.run(Thread.java:637)
>
>
>
> "DestroyJavaVM" prio=5 tid=12e102000 nid=0x100501000 waiting on condition [00000000]
>
> java.lang.Thread.State: RUNNABLE
>
>
>
> "ClassLoader Thread" daemon prio=5 tid=1018e0000 nid=0x12fd7a000 in Object.wait() [12fd79000]
>
> java.lang.Thread.State: WAITING (on object monitor)
>
> at java.lang.Object.wait(Native Method)
>
> - waiting on <107b27cb8> (a java.util.ArrayDeque)
>
> at java.lang.Object.wait(Object.java:485)
>
> at org.jboss.modules.ConcurrentClassLoader$LoaderThread.run(ConcurrentClassLoader.java:329)
>
> - locked <107b27cb8> (a java.util.ArrayDeque)
>
>
>
> "Low Memory Detector" daemon prio=5 tid=101878800 nid=0x12fa90000 runnable [00000000]
>
> java.lang.Thread.State: RUNNABLE
>
>
>
> "CompilerThread1" daemon prio=9 tid=101878000 nid=0x12f98d000 waiting on condition [00000000]
>
> java.lang.Thread.State: RUNNABLE
>
>
>
> "CompilerThread0" daemon prio=9 tid=101877000 nid=0x12f88a000 waiting on condition [00000000]
>
> java.lang.Thread.State: RUNNABLE
>
>
>
> "Signal Dispatcher" daemon prio=9 tid=101876800 nid=0x12f787000 runnable [00000000]
>
> java.lang.Thread.State: RUNNABLE
>
>
>
> "Surrogate Locker Thread (CMS)" daemon prio=5 tid=12e03c800 nid=0x12f684000 waiting on condition [00000000]
>
> java.lang.Thread.State: RUNNABLE
>
>
>
> "Finalizer" daemon prio=8 tid=101875800 nid=0x12f307000 in Object.wait() [12f306000]
>
> java.lang.Thread.State: WAITING (on object monitor)
>
> at java.lang.Object.wait(Native Method)
>
> - waiting on <107ca9848> (a java.lang.ref.ReferenceQueue$Lock)
>
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
>
> - locked <107ca9848> (a java.lang.ref.ReferenceQueue$Lock)
>
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
>
> at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
>
>
>
> "Reference Handler" daemon prio=10 tid=101875000 nid=0x12f204000 in Object.wait() [12f203000]
>
> java.lang.Thread.State: WAITING (on object monitor)
>
> at java.lang.Object.wait(Native Method)
>
> - waiting on <107ca8f60> (a java.lang.ref.Reference$Lock)
>
> at java.lang.Object.wait(Object.java:485)
>
> at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
>
> - locked <107ca8f60> (a java.lang.ref.Reference$Lock)
>
>
>
> "VM Thread" prio=9 tid=12e022000 nid=0x12f101000 runnable
>
>
>
> "Gang worker#0 (Parallel GC Threads)" prio=9 tid=101802800 nid=0x10171b000 runnable
>
>
>
> "Gang worker#1 (Parallel GC Threads)" prio=9 tid=101803000 nid=0x105102000 runnable
>
>
>
> "Concurrent Mark-Sweep GC Thread" prio=9 tid=101842800 nid=0x12dbe6000 runnable
>
> "VM Periodic Task Thread" prio=10 tid=10187a000 nid=0x12fb93000 waiting on condition
>
>
>
> "Exception Catcher Thread" prio=10 tid=101801800 nid=0x100636000 runnable
>
> JNI global references: 889
> "Attach Listener" daemon prio=9 tid=12e309000 nid=0x130102000 waiting on condition [00000000]
> java.lang.Thread.State: RUNNABLE
>
> "Exit thread" prio=5 tid=101b85000 nid=0x13134e000 waiting for monitor entry [13134d000]
> java.lang.Thread.State: BLOCKED (on object monitor)
> at java.lang.Shutdown.exit(Shutdown.java:168)
> - waiting to lock <1256c5a88> (a java.lang.Class for java.lang.Shutdown)
> at java.lang.Runtime.exit(Runtime.java:90)
> at java.lang.System.exit(System.java:921)
> at org.jboss.as.server.SystemExiter$DefaultExiter.exit(SystemExiter.java:53)
> at org.jboss.as.server.SystemExiter.exit(SystemExiter.java:40)
> at org.jboss.as.server.ProcessManagerServerCommunicationHandler$Controller$1.run(ProcessManagerServerCommunicationHandler.java:118)
> at java.lang.Thread.run(Thread.java:637)
>
> "Thread-2" daemon prio=5 tid=12e1c9000 nid=0x13185d000 waiting on condition [13185c000]
> java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for <1057a6b78> (a java.util.concurrent.CountDownLatch$Sync)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:905)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1217)
> at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:207)
> at org.jboss.msc.service.ServiceContainerImpl$ShutdownHookHolder$1$1.run(ServiceContainerImpl.java:110)
> at java.lang.Thread.run(Thread.java:637)
>
> "SIGINT handler" daemon prio=9 tid=101aa1000 nid=0x13175a000 in Object.wait() [131759000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <107d1cc70> (a java.lang.Thread)
> at java.lang.Thread.join(Thread.java:1167)
> - locked <107d1cc70> (a java.lang.Thread)
> at java.lang.Thread.join(Thread.java:1220)
> at java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:79)
> at java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:24)
> at java.lang.Shutdown.runHooks(Shutdown.java:79)
> at java.lang.Shutdown.sequence(Shutdown.java:123)
> at java.lang.Shutdown.exit(Shutdown.java:168)
> - locked <1256c5a88> (a java.lang.Class for java.lang.Shutdown)
> at java.lang.Terminator$1.handle(Terminator.java:35)
> at sun.misc.Signal$1.run(Signal.java:195)
> at java.lang.Thread.run(Thread.java:637)
>
> "Thread-8" daemon prio=5 tid=12e311800 nid=0x130cde000 in Object.wait() [130cdd000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <1064bf630> (a java.util.LinkedList)
> at java.lang.Object.wait(Object.java:485)
> at com.arjuna.ats.arjuna.coordinator.TransactionReaper.waitForCancellations(TransactionReaper.java:397)
> - locked <1064bf630> (a java.util.LinkedList)
> at com.arjuna.ats.internal.arjuna.coordinator.ReaperWorkerThread.run(ReaperWorkerThread.java:65)
>
> "Thread-7" daemon prio=5 tid=101a53800 nid=0x130bdb000 in Object.wait() [130bda000]
> java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <1064bf658> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
> at com.arjuna.ats.internal.arjuna.coordinator.ReaperThread.run(ReaperThread.java:95)
> - locked <1064bf658> (a com.arjuna.ats.arjuna.coordinator.TransactionReaper)
>
> "Periodic Recovery" daemon prio=5 tid=12e308800 nid=0x130ad8000 in Object.wait() [130ad7000]
> java.lang.Thread.State: TIMED_WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <1063c0340> (a java.lang.Object)
> at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doPeriodicWait(PeriodicRecovery.java:696)
> at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:416)
> - locked <1063c0340> (a java.lang.Object)
>
> "Listener:4862" daemon prio=5 tid=12e307800 nid=0x1309d5000 runnable [1309d4000]
> java.lang.Thread.State: RUNNABLE
> at java.net.PlainSocketImpl.socketAccept(Native Method)
> at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
> - locked <1064bf858> (a java.net.SocksSocketImpl)
> at java.net.ServerSocket.implAccept(ServerSocket.java:453)
> at java.net.ServerSocket.accept(ServerSocket.java:421)
> at com.arjuna.ats.internal.arjuna.recovery.Listener.run(Listener.java:124)
>
> *"Thread-6" daemon prio=5 tid=12e305000 nid=0x1308d2000 runnable [1308d1000]*
> * java.lang.Thread.State: RUNNABLE*
> * **at java.net.PlainSocketImpl.socketConnect(Native Method)*
> * **at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)*
> * **- locked <1064c0338> (a java.net.SocksSocketImpl)*
> * **at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)*
> * **at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)*
> * **at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:432)*
> * **at java.net.Socket.connect(Socket.java:529)*
> * **at java.net.Socket.connect(Socket.java:478)*
> * **at java.net.Socket.<init>(Socket.java:375)*
> * **at java.net.Socket.<init>(Socket.java:189)*
> * **at com.arjuna.ats.internal.arjuna.recovery.TransactionStatusConnector.establishConnection(TransactionStatusConnector.java:209)*
> * **at com.arjuna.ats.internal.arjuna.recovery.TransactionStatusConnector.test(TransactionStatusConnector.java:75)*
> * **at com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner.scan(ExpiredTransactionStatusManagerScanner.java:136)*
> * **at com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.run(ExpiredEntryMonitor.java:191)*
>
> "pool-2-thread-1" prio=5 tid=12e22c000 nid=0x1306cc000 waiting on condition [1306cb000]
> java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for <1063c06e8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
> at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
> at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399)
> at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> at java.lang.Thread.run(Thread.java:637)
>
> "Reference Reaper" daemon prio=5 tid=12e1fa800 nid=0x1305c0000 in Object.wait() [1305bf000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <1063c0e30> (a java.lang.ref.ReferenceQueue$Lock)
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
> - locked <1063c0e30> (a java.lang.ref.ReferenceQueue$Lock)
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
> at org.jboss.msc.ref.References$ReaperThread.run(References.java:64)
>
> *"Thread-3" daemon prio=5 tid=101a54800 nid=0x1304bd000 in Object.wait() [1304bc000]*
> * java.lang.Thread.State: WAITING (on object monitor)*
> * **at java.lang.Object.wait(Native Method)*
> * **- waiting on <1064bfa30> (a com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)*
> * **at java.lang.Thread.join(Thread.java:1167)*
> * **- locked <1064bfa30> (a com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)*
> * **at java.lang.Thread.join(Thread.java:1220)*
> * **at com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor.shutdown(ExpiredEntryMonitor.java:130)*
> * **- locked <1260aba50> (a java.lang.Class for com.arjuna.ats.internal.arjuna.recovery.ExpiredEntryMonitor)*
> * **at com.arjuna.ats.internal.arjuna.recovery.RecoveryManagerImple.stop(RecoveryManagerImple.java:209)*
> * **at com.arjuna.ats.arjuna.recovery.RecoveryManager.terminate(RecoveryManager.java:213)*
> * **- locked <1064b6c68> (a com.arjuna.ats.arjuna.recovery.RecoveryManager)*
> * **at com.arjuna.ats.arjuna.recovery.RecoveryManager.terminate(RecoveryManager.java:197)*
> * **at com.arjuna.ats.jbossatx.jta.RecoveryManagerService.stop(RecoveryManagerService.java:84)*
> * **at org.jboss.as.txn.TransactionManagerService.stop(TransactionManagerService.java:224)*
> * **- locked <1064b6bc0> (a org.jboss.as.txn.TransactionManagerService)*
> * **at org.jboss.msc.service.ServiceControllerImpl$StopTask.run(ServiceControllerImpl.java:1061)*
> * **at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)*
> * **at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)*
> * **at java.lang.Thread.run(Thread.java:637)*
>
> "Poller SunPKCS11-Darwin" daemon prio=1 tid=12e103000 nid=0x130361000 waiting on condition [130360000]
> java.lang.Thread.State: TIMED_WAITING (sleeping)
> at java.lang.Thread.sleep(Native Method)
> at sun.security.pkcs11.SunPKCS11$TokenPoller.run(SunPKCS11.java:692)
> at java.lang.Thread.run(Thread.java:637)
>
> "DestroyJavaVM" prio=5 tid=12e102000 nid=0x100501000 waiting on condition [00000000]
> java.lang.Thread.State: RUNNABLE
>
> "ClassLoader Thread" daemon prio=5 tid=1018e0000 nid=0x12fd7a000 in Object.wait() [12fd79000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <107b27cb8> (a java.util.ArrayDeque)
> at java.lang.Object.wait(Object.java:485)
> at org.jboss.modules.ConcurrentClassLoader$LoaderThread.run(ConcurrentClassLoader.java:329)
> - locked <107b27cb8> (a java.util.ArrayDeque)
>
> "Low Memory Detector" daemon prio=5 tid=101878800 nid=0x12fa90000 runnable [00000000]
> java.lang.Thread.State: RUNNABLE
>
> "CompilerThread1" daemon prio=9 tid=101878000 nid=0x12f98d000 waiting on condition [00000000]
> java.lang.Thread.State: RUNNABLE
>
> "CompilerThread0" daemon prio=9 tid=101877000 nid=0x12f88a000 waiting on condition [00000000]
> java.lang.Thread.State: RUNNABLE
>
> "Signal Dispatcher" daemon prio=9 tid=101876800 nid=0x12f787000 runnable [00000000]
> java.lang.Thread.State: RUNNABLE
>
> "Surrogate Locker Thread (CMS)" daemon prio=5 tid=12e03c800 nid=0x12f684000 waiting on condition [00000000]
> java.lang.Thread.State: RUNNABLE
>
> "Finalizer" daemon prio=8 tid=101875800 nid=0x12f307000 in Object.wait() [12f306000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <107ca9848> (a java.lang.ref.ReferenceQueue$Lock)
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
> - locked <107ca9848> (a java.lang.ref.ReferenceQueue$Lock)
> at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
> at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
>
> "Reference Handler" daemon prio=10 tid=101875000 nid=0x12f204000 in Object.wait() [12f203000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <107ca8f60> (a java.lang.ref.Reference$Lock)
> at java.lang.Object.wait(Object.java:485)
> at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
> - locked <107ca8f60> (a java.lang.ref.Reference$Lock)
>
> "VM Thread" prio=9 tid=12e022000 nid=0x12f101000 runnable
>
> "Gang worker#0 (Parallel GC Threads)" prio=9 tid=101802800 nid=0x10171b000 runnable
>
> "Gang worker#1 (Parallel GC Threads)" prio=9 tid=101803000 nid=0x105102000 runnable
>
> "Concurrent Mark-Sweep GC Thread" prio=9 tid=101842800 nid=0x12dbe6000 runnable
> "VM Periodic Task Thread" prio=10 tid=10187a000 nid=0x12fb93000 waiting on condition
>
> "Exception Catcher Thread" prio=10 tid=101801800 nid=0x100636000 runnable
> JNI global references: 889
Thread-3 is run by an executor as part of the server shutdown process, and from looking at the code it is waiting for Thread-6 to finish. Thread-6 is stuck in a Socket.connect(), so it sounds like whatever it is trying to connect to is open but no longer accepting connections. Can someone point me towards what TransactionStatusConnector is trying to connect to?
--------------------------------------------------------------
Reply to this message by going to Community
[http://community.jboss.org/message/565379#565379]
Start a new discussion in JBoss Transactions Development at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&cont...]
14 years, 3 months