Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-6085

If you use turksih locale Jboss AS throw org.jboss.deployment.DeploymentException: TX TYPE was null for: RequiresNew while startup

XMLWordPrintable

    • Release Notes, Interactive Demo/Tutorial
    • Medium
    • Workaround Exists
    • Hide

      solution 1:

      the line between 56 and 61 should be replaced as below

      56 nameMap.put("never", new TxInterceptor.Never(TransactionManagerLocator.getInstance().locate(), policy));
      57 nameMap.put("notsupported", new TxInterceptor.NotSupported(TransactionManagerLocator.getInstance().locate(), policy));
      58 nameMap.put("supports", new TxInterceptor.Supports(TransactionManagerLocator.getInstance().locate(), policy));
      59 nameMap.put("required", new TxInterceptor.Required(TransactionManagerLocator.getInstance().locate(), policy));
      60 nameMap.put("requiresnew", new TxInterceptor.RequiresNew(TransactionManagerLocator.getInstance().locate(), policy));
      61 nameMap.put("mandatory", new TxInterceptor.Mandatory(TransactionManagerLocator.getInstance().locate(), policy));

      and the line 124 should be replaced with below line

      124 Object rtn = nameMap.get(txType.toLowerCase());

      solution 2:

      the line 124 should be replaced with below line

      124 Object rtn = nameMap.get(txType.toLowerCase(java.util.Locale.ENGLISH));

      Show
      solution 1: the line between 56 and 61 should be replaced as below 56 nameMap.put("never", new TxInterceptor.Never(TransactionManagerLocator.getInstance().locate(), policy)); 57 nameMap.put("notsupported", new TxInterceptor.NotSupported(TransactionManagerLocator.getInstance().locate(), policy)); 58 nameMap.put("supports", new TxInterceptor.Supports(TransactionManagerLocator.getInstance().locate(), policy)); 59 nameMap.put("required", new TxInterceptor.Required(TransactionManagerLocator.getInstance().locate(), policy)); 60 nameMap.put("requiresnew", new TxInterceptor.RequiresNew(TransactionManagerLocator.getInstance().locate(), policy)); 61 nameMap.put("mandatory", new TxInterceptor.Mandatory(TransactionManagerLocator.getInstance().locate(), policy)); and the line 124 should be replaced with below line 124 Object rtn = nameMap.get(txType.toLowerCase()); solution 2: the line 124 should be replaced with below line 124 Object rtn = nameMap.get(txType.toLowerCase(java.util.Locale.ENGLISH));

      17:05:01,714 ERROR [MainDeployer] Could not create deployment: file:/usr/local/bugreportingfor_jboss423/compiled/jboss423/server/default/deploy/jboss-portal.sar
      org.jboss.deployment.DeploymentException: TX TYPE was null for: RequiresNew; - nested throwable: (java.lang.RuntimeException: TX TYPE was null for: RequiresNew)
      at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java:196)
      at org.jboss.system.ServiceController.install(ServiceController.java:226)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
      at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
      at $Proxy4.install(Unknown Source)
      at org.jboss.deployment.SARDeployer.create(SARDeployer.java:251)
      at org.jboss.deployment.MainDeployer.create(MainDeployer.java:969)
      at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:818)
      at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
      at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
      at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
      at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
      at $Proxy9.deploy(Unknown Source)
      at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
      at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
      at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
      at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336)
      at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
      at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
      at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
      at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
      at $Proxy0.start(Unknown Source)
      at org.jboss.system.ServiceController.start(ServiceController.java:417)
      at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
      at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
      at $Proxy4.start(Unknown Source)
      at org.jboss.deployment.SARDeployer.start(SARDeployer.java:304)
      at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
      at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
      at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
      at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:585)
      at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
      at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
      at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
      at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
      at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
      at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
      at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
      at $Proxy5.deploy(Unknown Source)
      at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
      at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
      at org.jboss.Main.boot(Main.java:200)
      at org.jboss.Main$1.run(Main.java:508)
      at java.lang.Thread.run(Thread.java:595)
      Caused by: java.lang.RuntimeException: TX TYPE was null for: RequiresNew
      at org.jboss.aspects.tx.TxInterceptorFactory.createPerJoinpoint(TxInterceptorFactory.java:125)
      at org.jboss.aop.advice.AspectFactoryDelegator.createPerJoinpoint(AspectFactoryDelegator.java:119)
      at org.jboss.aop.advice.ScopedInterceptorFactory.create(ScopedInterceptorFactory.java:113)
      at org.jboss.aop.Advisor.createInterceptorChain(Advisor.java:618)
      at org.jboss.aop.Advisor.pointcutResolved(Advisor.java:888)
      at org.jboss.aop.Advisor.resolveMethodPointcut(Advisor.java:650)
      at org.jboss.aop.ClassAdvisor.createInterceptorChains(ClassAdvisor.java:607)
      at org.jboss.aop.ClassAdvisor.access$300(ClassAdvisor.java:82)
      at org.jboss.aop.ClassAdvisor$1.run(ClassAdvisor.java:299)
      at java.security.AccessController.doPrivileged(Native Method)
      at org.jboss.aop.ClassAdvisor.attachClass(ClassAdvisor.java:271)
      at org.jboss.aop.AspectManager.initialiseClassAdvisor(AspectManager.java:591)
      at org.jboss.aop.AspectManager.getAdvisor(AspectManager.java:579)
      at org.jboss.portal.core.aspects.server.TransactionInterceptor.<clinit>(TransactionInterceptor.java)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
      at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
      at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
      at org.jboss.mx.server.MBeanServerImpl.instantiate(MBeanServerImpl.java:1233)
      at org.jboss.mx.server.MBeanServerImpl.instantiate(MBeanServerImpl.java:286)
      at org.jboss.system.ServiceCreator.install(ServiceCreator.java:170)
      at org.jboss.system.ServiceConfigurator.internalInstall(ServiceConfigurator.java:451)
      at org.jboss.system.ServiceConfigurator.install(ServiceConfigurator.java:171)
      ... 81 more

      the problem occurs if your application environment has the Turkish locale and org.jboss.aspects.tx.TxInterceptorFactory.createPerJoinpoint method is called...
      this method is located in
      ./aspects/src/main/org/jboss/aspects/tx/TxInterceptorFactory.java file.

      in this file there is a loca property named nameMap as below

      <code>
      42 public class TxInterceptorFactory implements org.jboss.aop.advice.AspectFactory
      43 {
      44 protected TxPolicy policy;
      45 protected HashMap nameMap = new HashMap();
      46

      </code>

      and this hash map is populated as below

      52 public void initialize()
      53

      { 54 if (policy != null) return; 55 initializePolicy(); 56 nameMap.put("NEVER", new TxInterceptor.Never(TransactionManagerLocator.getInstance().locate(), policy)); 57 nameMap.put("NOTSUPPORTED", new TxInterceptor.NotSupported(TransactionManagerLocator.getInstance().locate(), policy)); 58 nameMap.put("SUPPORTS", new TxInterceptor.Supports(TransactionManagerLocator.getInstance().locate(), policy)); 59 nameMap.put("REQUIRED", new TxInterceptor.Required(TransactionManagerLocator.getInstance().locate(), policy)); 60 nameMap.put("REQUIRESNEW", new TxInterceptor.RequiresNew(TransactionManagerLocator.getInstance().locate(), policy)); 61 nameMap.put("MANDATORY", new TxInterceptor.Mandatory(TransactionManagerLocator.getInstance().locate(), policy)); 62 }

      .The problem occurs when getting the members of nameMap. it is below.

      120 public Object createPerJoinpoint(Advisor advisor, Joinpoint jp)
      121

      { 122 initialize(); 123 String txType = resolveTxType(advisor, jp); 124 Object rtn = nameMap.get(txType.toUpperCase()); 125 if (rtn == null) throw new RuntimeException("TX TYPE was null for: " + txType); 126 return rtn; 127 }

      at line 123, the txType variable assigned to "requires" and when the line 124 executed txType.toUpperCase() return "REQU?RESNEW" which is not equal to any kev value in nameMap hashmap. txType.toUpperCase() method should return "REQUIRESNEW" string, which is not the case in this situation.

              dandread1@redhat.com Dimitrios Andreadis
              halilagin_jira halil agin (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: