Weird dependency error
alesj Mar 15, 2010 7:19 AMWith the latest MC update I get weird dependency error:
DEPLOYMENTS IN ERROR:
Deployment "ShortTasksThreadFactory" is in error due to the following reason(s): ** NOT FOUND Depends on 'ShortTasksThreadFactory' **
Deployment "SystemThreadGroup" is in error due to the following reason(s): ** NOT FOUND Depends on 'SystemThreadGroup' **
which comes from thread-pool-jboss-beans.xml
<threads xmlns="urn:jboss:threads:2.0">
<!-- The system thread group for all JBoss threads. -->
<thread-group name="SystemThreadGroup" group-name="System Threads" daemon="true"/>
<!-- A simple direct executor which is always available for use. -->
<direct-executor name="DirectExecutor"/>
<!--
~ This thread pool is for SHORT-RUNNING tasks that block very little or not at all. Long-running
~ tasks submitted to this pool may cause starvation and extended blocking.
-->
<thread-group name="ShortTasksThreadGroup" group-name="Short Tasks Threads">
<parent-thread-group name="SystemThreadGroup"/>
</thread-group>
<thread-factory name="ShortTasksThreadFactory">
<thread-group name="ShortTasksThreadGroup"/>
</thread-factory>
looking at ThreadsHelper
static void addMetaData(final List<BeanMetaData> beanMetaDataList, final ThreadGroupMetaData metaData) {
final String name = metaData.getName();
final BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, ThreadGroup.class.getName());
final RefMetaData parentRef = metaData.getParentThreadGroup();
if (parentRef != null) {
builder.addConstructorParameter(ThreadGroup.class.getName(), builder.createInject(parentRef.getName()));
}
final String groupName = metaData.getGroupName();
builder.addConstructorParameter(String.class.getName(), builder.createValue(groupName != null ? groupName : name));
if (metaData.isDaemon() != null) {
builder.addPropertyMetaData("daemon", builder.createValue(metaData.isDaemon()));
}
final Integer maxPriorityMeta = metaData.getMaxPriority();
if (maxPriorityMeta != null) {
builder.addPropertyMetaData("maxPriority", builder.createValue(maxPriorityMeta));
}
builder.ignoreCreate();
builder.ignoreStart();
builder.setStop("interrupt");
builder.ignoreDestroy();
beanMetaDataList.add(builder.getBeanMetaData());
}
I don't see where SystemThreadGroup could get any ("self") dependency.
Could this be to new circular dependency handling?
DEPLOYMENTS IN ERROR:
Deployment "ShortTasksThreadFactory" is in error due to the following reason(s): ** NOT FOUND Depends on 'ShortTasksThreadFactory' **
Deployment "SystemThreadGroup" is in error due to the following reason(s): ** NOT FOUND Depends on 'SystemThreadGroup' **
which comes from thread-pool-jboss-beans.xml
<threads xmlns="urn:jboss:threads:2.0">
<!-- The system thread group for all JBoss threads. -->
<thread-group name="SystemThreadGroup" group-name="System Threads" daemon="true"/>
<!-- A simple direct executor which is always available for use. -->
<direct-executor name="DirectExecutor"/>
<!--
~ This thread pool is for SHORT-RUNNING tasks that block very little or not at all. Long-running
~ tasks submitted to this pool may cause starvation and extended blocking.
-->
<thread-group name="ShortTasksThreadGroup" group-name="Short Tasks Threads">
<parent-thread-group name="SystemThreadGroup"/>
</thread-group>
<thread-factory name="ShortTasksThreadFactory">
<thread-group name="ShortTasksThreadGroup"/>
</thread-factory>
looking at ThreadsHelper
static void addMetaData(final List<BeanMetaData> beanMetaDataList, final ThreadGroupMetaData metaData) {
final String name = metaData.getName();
final BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(name, ThreadGroup.class.getName());
final RefMetaData parentRef = metaData.getParentThreadGroup();
if (parentRef != null) {
builder.addConstructorParameter(ThreadGroup.class.getName(), builder.createInject(parentRef.getName()));
}
final String groupName = metaData.getGroupName();
builder.addConstructorParameter(String.class.getName(), builder.createValue(groupName != null ? groupName : name));
if (metaData.isDaemon() != null) {
builder.addPropertyMetaData("daemon", builder.createValue(metaData.isDaemon()));
}
final Integer maxPriorityMeta = metaData.getMaxPriority();
if (maxPriorityMeta != null) {
builder.addPropertyMetaData("maxPriority", builder.createValue(maxPriorityMeta));
}
builder.ignoreCreate();
builder.ignoreStart();
builder.setStop("interrupt");
builder.ignoreDestroy();
beanMetaDataList.add(builder.getBeanMetaData());
}
I don't see where SystemThreadGroup could get any ("self") dependency.
Could this be to new circular dependency handling?