Uploaded image for project: 'Application Server 7'
  1. Application Server 7
  2. AS7-5449

when defining custom executor for connector thread priority is not optional

    XMLWordPrintable

Details

    Description

      when defining a custom executor in the threads subsystem for the connector defined in the web subsystem like :

              <subsystem xmlns="urn:jboss:domain:threads:1.1">
      			<thread-factory name="ConnectorThreadFactory" group-name="ConnectorThreadPool"/>
      				<unbounded-queue-thread-pool name="ConnectorThreadPool">
      					<max-threads count="500"/>
      					<keepalive-time time="60" unit="seconds"/>
      					<thread-factory name="ConnectorThreadFactory"/>
      				</unbounded-queue-thread-pool>
      		</subsystem>
              <subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
      	        <connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp" redirect-port="8443" executor="ConnectorThreadPool"/>
              </subsystem>
      

      it will fail with :

      17:19:06,508 ERROR [org.apache.tomcat.util.net.JIoEndpoint] (http-/0.0.0.0:8443-Acceptor-0) Error allocating socket processor: java.lang.IllegalArgumentException
      at java.lang.Thread.setPriority(Thread.java:1058) [rt.jar:1.6.0_31]
      at org.jboss.threads.JBossThreadFactory.createThread(JBossThreadFactory.java:127) [jboss-threads-2.0.0.GA.jar:2.0.0.GA]
      at org.jboss.threads.JBossThreadFactory.newThread(JBossThreadFactory.java:101) [jboss-threads-2.0.0.GA.jar:2.0.0.GA]
      at java.util.concurrent.ThreadPoolExecutor.addThread(ThreadPoolExecutor.java:672) [rt.jar:1.6.0_31]
      at java.util.concurrent.ThreadPoolExecutor.addIfUnderCorePoolSize(ThreadPoolExecutor.java:697) [rt.jar:1.6.0_31]
      at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:652) [rt.jar:1.6.0_31]
      at org.jboss.threads.JBossThreadPoolExecutor.execute(JBossThreadPoolExecutor.java:63) [jboss-threads-2.0.0.GA.jar:2.0.0.GA]
      at org.jboss.threads.DelegatingBlockingExecutorService.execute(DelegatingBlockingExecutorService.java:42) [jboss-threads-2.0.0.GA.jar:2.0.0.GA]
      at org.jboss.as.threads.ManagedExecutorService.execute(ManagedExecutorService.java:64) [jboss-as-threads-7.1.2.Final.jar:7.1.2.Final]
      at org.apache.tomcat.util.net.JIoEndpoint.processSocket(JIoEndpoint.java:1237) [jbossweb-7.0.16.Final.jar:]
      at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:325) [jbossweb-7.0.16.Final.jar:]
      at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_31]

      even though if documentation state that thread priority is optional :

          <xs:complexType name="thread-factory">
              <xs:annotation>
                  <xs:documentation>
                  <![CDATA[
                      A thread factory (implementing java.util.concurrent.ThreadFactory).  The "name" attribute is
                      the bean name of the created thread factory.  The optional "priority" attribute may be used to specify
                      the thread priority of created threads.  The optional "group-name" attribute specifies the name of a the
                      thread group to create for this thread factory.
      
                      The "thread-name-pattern" is the template used to create names for threads.  The following patterns
                      may be used:
      
                       %% - emit a percent sign
                       %t - emit the per-factory thread sequence number
                       %g - emit the global thread sequence number
                       %f - emit the factory sequence number
                       %i - emit the thread ID
                       %G - emit the thread group name
                  ]]>
                  </xs:documentation>
              </xs:annotation>
              <xs:attribute name="name" type="xs:string" use="required"/>
              <xs:attribute name="group-name" type="xs:string" use="optional"/>
              <xs:attribute name="thread-name-pattern" type="xs:string" use="optional"/>
              <xs:attribute name="priority" type="priority" use="optional"/>
          </xs:complexType>
      

      Attachments

        Activity

          People

            rhn-cservice-bbaranow Bartosz Baranowski
            mathieu@mathieulachance.com Mathieu Lachance (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: