2 Replies Latest reply on Dec 3, 2006 4:32 PM by joff

    @Logger use in POJO (& TestNG)

    joff

      I have an ordinary POJO class, from which I want to use the Seam logger.
      I'm having a bit of trouble, however, using this POJO class, both from a Stateless bean, and from a TestNG test class.

      First, the Bean:

      ...
      @Stateless
      @Name("echo")
      public class EchoBean implements Echo {
       @Logger private Log log;
      
       @In
       FacesMessages facesMessages;
      
       @In
       Pojo pojo;
      
       public String echo() {
       log.info("echo.echo() action called");
      
       pojo.doEcho("Echo Me!");
      
       facesMessages.add("echo");
       return "success";
       }
      }


      Then the POJO:
      ...
      @Name("pojo")
      public class Pojo {
       @Logger Log log;
      
       public String doEcho(String text) {
       log.info("Echoing: "+text);
       return text;
       }
      }


      and for completeness, the TestNG testcase:
      ...
      
      public class PojoTests extends SeamTest {
       @In Pojo pojo;
      
       @Test
       public void testDoEcho() throws Exception {
       assert pojo.doEcho("hello world!").equals("hello world!");
       }
      }


      At the moment, we're seeing this:
      javax.ejb.EJBTransactionRolledbackException: org.jboss.seam.RequiredException: In attribute requires value for component: echo.pojo
       at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ejb3TxPolicy.java:93)
       at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxPolicy.java:130)
       at org.jboss.aspects.tx.TxInterceptor$Required.invoke(TxInterceptor.java:201)
      ...


      I get basically the same problem from running inside a full JBoss AS install, as well as the TestNG/Eclipse/embedded-ejb environment.

      When we remove the '@In' parts from the calling class (either the testcase or the bean) we get a NullPointerException in the POJO here:
      log.info("Echoing: "+text);

      which we take to mean that the logger isn't being injected for the POJO.

      Is this even the correct approach? Basically the end-goal is to be able to use the logger in POJOs as well as inside of beans, and to be able to use TestNG to unit test them.

      Any help would be greatly appreciated :-)


        • 1. Re: @Logger use in POJO (& TestNG)
          gavin.king

          @In(create=true) Pojo pojo;

          • 2. Re: @Logger use in POJO (& TestNG)
            joff

            Thanks Gavin,
            That worked when being called from the bean (running in JBoss), but I get a NullPointerException when I try and use the (supposedly injected) POJO from the TestNG test:

            Output from TestNG Follows:
            (which throws a NameAlreadyBoundException, not sure if that's related to the problem....)

            10:28:13,991 INFO [Initialization] Namespace: http://jboss.com/products/seam/core, package: org.jboss.seam.core, prefix: org.jboss.seam.core
            10:28:13,996 INFO [Initialization] Namespace: http://jboss.com/products/seam/framework, package: org.jboss.seam.framework, prefix: org.jboss.seam.core.framework
            10:28:13,998 INFO [Initialization] Namespace: http://jboss.com/products/seam/jms, package: org.jboss.seam.jms, prefix: org.jboss.seam.jms
            10:28:14,000 INFO [Initialization] Namespace: http://jboss.com/products/seam/drools, package: org.jboss.seam.drools, prefix: org.jboss.seam.drools
            10:28:14,002 INFO [Initialization] Namespace: http://jboss.com/products/seam/remoting, package: org.jboss.seam.remoting, prefix: org.jboss.seam.remoting
            10:28:14,004 INFO [Initialization] Namespace: http://jboss.com/products/seam/theme, package: org.jboss.seam.theme, prefix: org.jboss.seam.theme
            10:28:14,009 INFO [Scanner] scanning: /home/joff/workspace/testtestng/exploded-archives/testtestng.jar
            10:28:14,011 INFO [Scanner] scanning: /home/joff/workspace/testtestng/resources
            10:28:14,013 INFO [Scanner] scanning: /home/joff/workspace/testtestng/lib/jboss-seam.jar
            10:28:14,024 INFO [Initialization] Namespace: http://jboss.com/products/seam/drools, package: org.jboss.seam.drools, prefix: org.jboss.seam.drools
            10:28:14,025 INFO [Initialization] Namespace: http://jboss.com/products/seam/remoting, package: org.jboss.seam.remoting, prefix: org.jboss.seam.remoting
            10:28:14,025 INFO [Initialization] Namespace: http://jboss.com/products/seam/theme, package: org.jboss.seam.theme, prefix: org.jboss.seam.theme
            10:28:14,025 INFO [Initialization] Namespace: http://jboss.com/products/seam/core, package: org.jboss.seam.core, prefix: org.jboss.seam.core
            10:28:14,025 INFO [Initialization] Namespace: http://jboss.com/products/seam/jms, package: org.jboss.seam.jms, prefix: org.jboss.seam.jms
            10:28:14,025 INFO [Initialization] Namespace: http://jboss.com/products/seam/framework, package: org.jboss.seam.framework, prefix: org.jboss.seam.core.framework
            10:28:14,027 INFO [Initialization] reading /WEB-INF/components.xml
            10:28:14,288 INFO [Initialization] reading jar:file:/home/joff/workspace/testtestng/lib/jboss-seam.jar!/META-INF/components.xml
            10:28:14,329 INFO [Initialization] reading properties from: /seam.properties
            10:28:14,330 INFO [Initialization] reading properties from: /jndi.properties
            10:28:14,333 INFO [Initialization] initializing Seam
            10:28:14,335 INFO [Scanner] scanning: /home/joff/workspace/testtestng/exploded-archives/testtestng.jar
            10:28:14,459 INFO [Scanner] scanning: /home/joff/workspace/testtestng/resources
            10:28:14,470 INFO [Scanner] scanning: /home/joff/workspace/testtestng/lib/jboss-seam.jar
            10:28:15,684 INFO [Component] Component: org.jboss.seam.core.init, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Init
            10:28:15,760 INFO [Initialization] Installing components...
            10:28:15,761 INFO [Component] Component: entityManager, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.ManagedPersistenceContext
            10:28:15,776 INFO [Component] Component: org.jboss.seam.core.ejb, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Ejb
            10:28:15,781 INFO [Component] Component: pojo, scope: EVENT, type: JAVA_BEAN, class: nz.co.digiweb.dabs.testtestng.Pojo
            10:28:15,834 INFO [Component] Component: echo, scope: STATELESS, type: STATELESS_SESSION_BEAN, class: nz.co.digiweb.dabs.testtestng.EchoBean, JNDI: EchoBean/local
            10:28:15,854 INFO [Component] Component: org.jboss.seam.core.facesContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.FacesContext
            10:28:15,854 INFO [Component] Component: org.jboss.seam.theme.themeSelector, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.theme.ThemeSelector
            10:28:15,858 INFO [Component] Component: org.jboss.seam.core.validation, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Validation
            10:28:15,863 INFO [Component] Component: org.jboss.seam.core.eventContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.EventContext
            10:28:15,863 INFO [Component] Component: org.jboss.seam.core.events, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Events
            10:28:15,865 INFO [Component] Component: org.jboss.seam.remoting.messaging.subscriptionRegistry, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.remoting.messaging.SubscriptionRegistry
            10:28:15,870 INFO [Component] Component: org.jboss.seam.core.redirect, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.Redirect
            10:28:15,894 INFO [Component] Component: org.jboss.seam.core.expressions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Expressions
            10:28:15,895 INFO [Component] Component: org.jboss.seam.core.persistenceContexts, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.PersistenceContexts
            10:28:15,896 INFO [Component] Component: org.jboss.seam.core.isUserInRole, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.IsUserInRole
            10:28:15,897 INFO [Component] Component: org.jboss.seam.theme.theme, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.theme.Theme
            10:28:15,898 INFO [Component] Component: org.jboss.seam.core.manager, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.core.Manager
            10:28:15,911 INFO [Component] Component: org.jboss.seam.core.switcher, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.Switcher
            10:28:15,914 INFO [Component] Component: org.jboss.seam.framework.currentDatetime, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentDatetime
            10:28:15,917 INFO [Component] Component: org.jboss.seam.remoting.remotingConfig, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.remoting.RemotingConfig
            10:28:15,918 INFO [Component] Component: org.jboss.seam.core.locale, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.Locale
            10:28:15,918 INFO [Component] Component: org.jboss.seam.core.conversation, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.Conversation
            10:28:15,920 INFO [Component] Component: org.jboss.seam.core.conversationStack, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationStack
            10:28:15,921 INFO [Component] Component: org.jboss.seam.core.businessProcessContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.BusinessProcessContext
            10:28:15,921 INFO [Component] Component: org.jboss.seam.securityManager, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.security.SeamSecurityManager
            10:28:15,926 INFO [Component] Component: org.jboss.seam.core.conversationContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationContext
            10:28:15,927 INFO [Component] Component: org.jboss.seam.core.conversationList, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationList
            10:28:15,929 INFO [Component] Component: org.jboss.seam.framework.currentDate, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentDate
            10:28:15,934 INFO [Component] Component: org.jboss.seam.core.pages, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Pages
            10:28:15,976 INFO [Component] Component: org.jboss.seam.core.applicationContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.ApplicationContext
            10:28:15,977 INFO [Component] Component: org.jboss.seam.core.localeSelector, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.LocaleSelector
            10:28:15,978 INFO [Component] Component: org.jboss.seam.core.httpError, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.HttpError
            10:28:15,981 INFO [Component] Component: org.jboss.seam.core.facesMessages, scope: CONVERSATION, type: JAVA_BEAN, class: org.jboss.seam.core.FacesMessages
            10:28:15,985 INFO [Component] Component: org.jboss.seam.core.sessionContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.SessionContext
            10:28:15,985 INFO [Component] Component: org.jboss.seam.core.exceptions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.Exceptions
            10:28:15,988 INFO [Component] Component: org.jboss.seam.core.pageContext, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.PageContext
            10:28:15,988 INFO [Component] Component: org.jboss.seam.core.interpolator, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.Interpolator
            10:28:15,989 INFO [Component] Component: org.jboss.seam.framework.currentTime, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.framework.CurrentTime
            10:28:15,993 INFO [Component] Component: org.jboss.seam.core.facesPage, scope: PAGE, type: JAVA_BEAN, class: org.jboss.seam.core.FacesPage
            10:28:15,994 INFO [Component] Component: org.jboss.seam.core.uiComponent, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.core.UiComponent
            10:28:15,994 INFO [Component] Component: org.jboss.seam.core.resourceBundle, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.ResourceBundle
            10:28:15,998 INFO [Component] Component: org.jboss.seam.core.safeActions, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.SafeActions
            10:28:15,999 INFO [Component] Component: org.jboss.seam.core.userPrincipal, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.UserPrincipal
            10:28:16,000 INFO [Component] Component: org.jboss.seam.core.messages, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.Messages
            10:28:16,001 INFO [Component] Component: org.jboss.seam.core.conversationEntries, scope: SESSION, type: JAVA_BEAN, class: org.jboss.seam.core.ConversationEntries
            10:28:16,002 INFO [Component] Component: org.jboss.seam.core.pojoCache, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.core.PojoCache
            10:28:16,003 INFO [Component] Component: org.jboss.seam.persistence.persistenceProvider, scope: STATELESS, type: JAVA_BEAN, class: org.jboss.seam.persistence.HibernatePersistenceProvider
            10:28:16,005 INFO [Component] Component: org.jboss.seam.debug.introspector, scope: EVENT, type: JAVA_BEAN, class: org.jboss.seam.debug.Introspector
            10:28:16,012 INFO [Component] Component: org.jboss.seam.debug.contexts, scope: APPLICATION, type: JAVA_BEAN, class: org.jboss.seam.debug.Contexts
            10:28:16,071 INFO [Lifecycle] starting up: org.jboss.seam.core.ejb
            10:28:16,072 INFO [Ejb] starting the embedded EJB container
            10:28:17,028 WARN [BeanSchemaBinding] You should use the 2.0 version of the Microcontainer xml. xmlns='urn:jboss:bean-deployer:2.0'
            10:28:17,495 INFO [LocalTxDataSource] Bound datasource to JNDI name 'java:/DefaultDS'
            10:28:18,074 INFO [LocalTxDataSource] Bound datasource to JNDI name 'java:/testtestngDatasource'
            10:28:18,820 INFO [Ejb3Deployment] EJB3 deployment time took: 717
            10:28:19,199 INFO [Ejb3DescriptorHandler] adding class annotation org.jboss.annotation.internal.DefaultInterceptorMarker to nz.co.digiweb.dabs.testtestng.EchoBean org.jboss.annotation.internal.DefaultInterceptorMarkerImpl@98350a
            10:28:19,226 INFO [Ejb3Deployment] EJB3 deployment time took: 405
            10:28:19,231 INFO [MCKernelAbstraction] installing bean: persistence.units:unitName=testtestng with dependencies:
            10:28:19,232 INFO [MCKernelAbstraction] AbstractDependencyMetaData@4fe91e{dependency=testtestngDatasource}
            10:28:19,300 INFO [Version] Hibernate EntityManager 3.2.0.CR1
            10:28:19,343 INFO [Version] Hibernate Annotations 3.2.0.CR1
            10:28:19,354 INFO [Environment] Hibernate 3.2 cr2
            10:28:19,368 INFO [Environment] hibernate.properties not found
            10:28:19,373 INFO [Environment] Bytecode provider name : cglib
            10:28:19,383 INFO [Environment] using JDK 1.4 java.sql.Timestamp handling
            10:28:19,598 INFO [Ejb3Configuration] Processing PersistenceUnitInfo [
             name: testtestng
             ...]
            10:28:19,606 WARN [Ejb3Configuration] Persistence provider caller does not implements the EJB3 spec correctly. PersistenceUnitInfo.getNewTempClassLoader() is null.
            10:28:19,610 INFO [Configuration] Reading mappings from resource: META-INF/orm.xml
            10:28:19,612 INFO [Ejb3Configuration] [PersistenceUnit: testtestng] no META-INF/orm.xml found
            10:28:19,746 INFO [ConnectionProviderFactory] Initializing connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
            10:28:19,761 INFO [InjectedDataSourceConnectionProvider] Using provided datasource
            10:28:20,141 INFO [SettingsFactory] RDBMS: HSQL Database Engine, version: 1.8.0
            10:28:20,142 INFO [SettingsFactory] JDBC driver: HSQL Database Engine Driver, version: 1.8.0
            10:28:20,184 INFO [Dialect] Using dialect: org.hibernate.dialect.HSQLDialect
            10:28:20,252 INFO [TransactionFactoryFactory] Transaction strategy: org.hibernate.ejb.transaction.JoinableCMTTransactionFactory
            10:28:20,268 INFO [TransactionManagerLookupFactory] instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup
            10:28:20,270 INFO [TransactionManagerLookupFactory] instantiated TransactionManagerLookup
            10:28:20,270 INFO [SettingsFactory] Automatic flush during beforeCompletion(): disabled
            10:28:20,270 INFO [SettingsFactory] Automatic session close at end of transaction: disabled
            10:28:20,270 INFO [SettingsFactory] JDBC batch size: 15
            10:28:20,270 INFO [SettingsFactory] JDBC batch updates for versioned data: disabled
            10:28:20,272 INFO [SettingsFactory] Scrollable result sets: enabled
            10:28:20,272 INFO [SettingsFactory] JDBC3 getGeneratedKeys(): disabled
            10:28:20,272 INFO [SettingsFactory] Connection release mode: auto
            10:28:20,273 INFO [SettingsFactory] Default batch fetch size: 1
            10:28:20,274 INFO [SettingsFactory] Generate SQL with comments: disabled
            10:28:20,274 INFO [SettingsFactory] Order SQL updates by primary key: disabled
            10:28:20,274 INFO [SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
            10:28:20,277 INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
            10:28:20,278 INFO [SettingsFactory] Query language substitutions: {}
            10:28:20,278 INFO [SettingsFactory] Second-level cache: enabled
            10:28:20,278 INFO [SettingsFactory] Query cache: enabled
            10:28:20,278 INFO [SettingsFactory] Cache provider: org.hibernate.cache.HashtableCacheProvider
            10:28:20,281 INFO [SettingsFactory] Optimize cache for minimal puts: disabled
            10:28:20,281 INFO [SettingsFactory] Structured second-level cache entries: disabled
            10:28:20,281 INFO [SettingsFactory] Query cache factory: org.hibernate.cache.StandardQueryCacheFactory
            10:28:20,298 INFO [SettingsFactory] Echoing all SQL to stdout
            10:28:20,298 INFO [SettingsFactory] Statistics: disabled
            10:28:20,299 INFO [SettingsFactory] Deleted entity synthetic identifier rollback: disabled
            10:28:20,300 INFO [SettingsFactory] Default entity-mode: pojo
            10:28:20,356 INFO [SessionFactoryImpl] building session factory
            10:28:20,419 INFO [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
            10:28:20,424 INFO [SchemaUpdate] Running hbm2ddl schema update
            10:28:20,425 INFO [SchemaUpdate] fetching database metadata
            10:28:20,452 INFO [SchemaUpdate] updating schema
            10:28:20,454 INFO [SchemaUpdate] schema update complete
            10:28:20,459 INFO [NamingHelper] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}
            10:28:20,465 INFO [UpdateTimestampsCache] starting update timestamps cache at region: org.hibernate.cache.UpdateTimestampsCache
            10:28:20,483 INFO [StandardQueryCache] starting query cache at region: org.hibernate.cache.StandardQueryCache
            10:28:20,490 INFO [MCKernelAbstraction] installing bean: persistence.units:jar=testtestng.jar,unitName=testtestng with dependencies:
            10:28:20,490 INFO [MCKernelAbstraction] AbstractDependencyMetaData@10952e8{dependency=testtestngDatasource}
            10:28:20,492 INFO [Ejb3Configuration] Processing PersistenceUnitInfo [
             name: testtestng
             ...]
            10:28:20,499 WARN [Ejb3Configuration] Persistence provider caller does not implements the EJB3 spec correctly. PersistenceUnitInfo.getNewTempClassLoader() is null.
            10:28:20,499 INFO [Configuration] Reading mappings from resource: META-INF/orm.xml
            10:28:20,499 INFO [Ejb3Configuration] [PersistenceUnit: testtestng] no META-INF/orm.xml found
            10:28:20,504 INFO [ConnectionProviderFactory] Initializing connection provider: org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider
            10:28:20,505 INFO [InjectedDataSourceConnectionProvider] Using provided datasource
            10:28:20,505 INFO [SettingsFactory] RDBMS: HSQL Database Engine, version: 1.8.0
            10:28:20,506 INFO [SettingsFactory] JDBC driver: HSQL Database Engine Driver, version: 1.8.0
            10:28:20,506 INFO [Dialect] Using dialect: org.hibernate.dialect.HSQLDialect
            10:28:20,507 INFO [TransactionFactoryFactory] Transaction strategy: org.hibernate.ejb.transaction.JoinableCMTTransactionFactory
            10:28:20,507 INFO [TransactionManagerLookupFactory] instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup
            10:28:20,507 INFO [TransactionManagerLookupFactory] instantiated TransactionManagerLookup
            10:28:20,507 INFO [SettingsFactory] Automatic flush during beforeCompletion(): disabled
            10:28:20,507 INFO [SettingsFactory] Automatic session close at end of transaction: disabled
            10:28:20,507 INFO [SettingsFactory] JDBC batch size: 15
            10:28:20,507 INFO [SettingsFactory] JDBC batch updates for versioned data: disabled
            10:28:20,507 INFO [SettingsFactory] Scrollable result sets: enabled
            10:28:20,508 INFO [SettingsFactory] JDBC3 getGeneratedKeys(): disabled
            10:28:20,508 INFO [SettingsFactory] Connection release mode: auto
            10:28:20,508 INFO [SettingsFactory] Default batch fetch size: 1
            10:28:20,508 INFO [SettingsFactory] Generate SQL with comments: disabled
            10:28:20,508 INFO [SettingsFactory] Order SQL updates by primary key: disabled
            10:28:20,508 INFO [SettingsFactory] Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
            10:28:20,508 INFO [ASTQueryTranslatorFactory] Using ASTQueryTranslatorFactory
            10:28:20,508 INFO [SettingsFactory] Query language substitutions: {}
            10:28:20,508 INFO [SettingsFactory] Second-level cache: enabled
            10:28:20,509 INFO [SettingsFactory] Query cache: enabled
            10:28:20,509 INFO [SettingsFactory] Cache provider: org.hibernate.cache.HashtableCacheProvider
            10:28:20,509 INFO [SettingsFactory] Optimize cache for minimal puts: disabled
            10:28:20,509 INFO [SettingsFactory] Structured second-level cache entries: disabled
            10:28:20,509 INFO [SettingsFactory] Query cache factory: org.hibernate.cache.StandardQueryCacheFactory
            10:28:20,509 INFO [SettingsFactory] Echoing all SQL to stdout
            10:28:20,509 INFO [SettingsFactory] Statistics: disabled
            10:28:20,511 INFO [SettingsFactory] Deleted entity synthetic identifier rollback: disabled
            10:28:20,511 INFO [SettingsFactory] Default entity-mode: pojo
            10:28:20,520 INFO [SessionFactoryImpl] building session factory
            10:28:20,521 INFO [SessionFactoryObjectFactory] Not binding factory to JNDI, no JNDI name configured
            10:28:20,521 INFO [SchemaUpdate] Running hbm2ddl schema update
            10:28:20,521 INFO [SchemaUpdate] fetching database metadata
            10:28:20,521 INFO [SchemaUpdate] updating schema
            10:28:20,522 INFO [SchemaUpdate] schema update complete
            10:28:20,522 INFO [NamingHelper] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces}
            10:28:20,524 INFO [UpdateTimestampsCache] starting update timestamps cache at region: org.hibernate.cache.UpdateTimestampsCache
            10:28:20,524 INFO [StandardQueryCache] starting query cache at region: org.hibernate.cache.StandardQueryCache
            10:28:20,530 ERROR [AbstractKernelController] Error installing to Start: name=persistence.units:jar=testtestng.jar,unitName=testtestng state=Create
            javax.naming.NameAlreadyBoundException
             at org.jnp.server.NamingServer.bind(NamingServer.java:144)
             at org.jnp.interfaces.NamingContext.bind(NamingContext.java:567)
             at org.jnp.interfaces.NamingContext.bind(NamingContext.java:532)
             at org.jboss.ejb3.NonSerializableFactory.bind(NonSerializableFactory.java:94)
             at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:278)
             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.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:55)
             at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:107)
             at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
             at org.jboss.kernel.plugins.dependency.KernelControllerContextActions.dispatchJoinPoint(KernelControllerContextActions.java:100)
             at org.jboss.kernel.plugins.dependency.KernelControllerContextActions$LifecycleAction.installAction(KernelControllerContextActions.java:582)
             at org.jboss.kernel.plugins.dependency.KernelControllerContextActions$KernelControllerContextAction.install(KernelControllerContextActions.java:175)
             at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
             at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:226)
             at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:593)
             at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:346)
             at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:438)
             at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:379)
             at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:225)
             at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:151)
             at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:79)
             at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:73)
             at org.jboss.ejb3.MCKernelAbstraction.install(MCKernelAbstraction.java:91)
             at org.jboss.ejb3.Ejb3Deployment.startPersistenceUnits(Ejb3Deployment.java:626)
             at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:475)
             at org.jboss.ejb3.embedded.EJB3StandaloneDeployer.start(EJB3StandaloneDeployer.java:460)
             at org.jboss.seam.core.Ejb.startup(Ejb.java:53)
             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.seam.util.Reflections.invoke(Reflections.java:18)
             at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:102)
             at org.jboss.seam.Component.callComponentMethod(Component.java:1759)
             at org.jboss.seam.Component.callCreateMethod(Component.java:1707)
             at org.jboss.seam.Component.newInstance(Component.java:1696)
             at org.jboss.seam.contexts.Lifecycle.startup(Lifecycle.java:153)
             at org.jboss.seam.contexts.Lifecycle.endInitialization(Lifecycle.java:127)
             at org.jboss.seam.init.Initialization.init(Initialization.java:408)
             at org.jboss.seam.mock.SeamTest.init(SeamTest.java:686)
             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.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:552)
             at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:322)
             at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:156)
             at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:97)
             at org.testng.TestRunner.privateRun(TestRunner.java:693)
             at org.testng.TestRunner.run(TestRunner.java:574)
             at org.testng.SuiteRunner.privateRun(SuiteRunner.java:241)
             at org.testng.SuiteRunner.run(SuiteRunner.java:145)
             at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:901)
             at org.testng.TestNG.runSuitesLocally(TestNG.java:863)
             at org.testng.TestNG.run(TestNG.java:613)
             at org.testng.eclipse.runner.RemoteTestNG.run(RemoteTestNG.java:85)
             at org.testng.eclipse.runner.RemoteTestNG.main(RemoteTestNG.java:127)
            10:28:20,731 INFO [MCKernelAbstraction] installing bean: jboss.j2ee:jar=testtestng,name=EchoBean,service=EJB3 with dependencies:
            10:28:21,102 INFO [EJBContainer] STARTED EJB: nz.co.digiweb.dabs.testtestng.EchoBean ejbName: EchoBean
            10:28:21,133 INFO [Initialization] done initializing Seam
            10:28:21,151 INFO [Ejb] stopping the embedded EJB container
            10:28:21,154 INFO [SessionFactoryImpl] closing
            10:28:21,155 ERROR [AbstractKernelController] Internal error during uninstall current state not found: name=persistence.units:jar=testtestng.jar,unitName=testtestng state=**ERROR** error=javax.naming.NameAlreadyBoundException: null
            10:28:21,156 ERROR [AbstractKernelController] Internal error during uninstall: toState=ControllerState@40b181{Not Installed} context=name=persistence.units:jar=testtestng.jar,unitName=testtestng state=**ERROR** error=javax.naming.NameAlreadyBoundException: null
            Creating /home/joff/workspace/testtestng/testng-out/testtestng/nz.co.digiweb.dabs.testtestng.tests.PojoTests.html
            FAILED: testDoEcho
            java.lang.NullPointerException
             at nz.co.digiweb.dabs.testtestng.tests.PojoTests.testDoEcho(PojoTests.java:15)
            ... Removed 17 stack frames
            
            ===============================================
             nz.co.digiweb.dabs.testtestng.tests.PojoTests
             Tests run: 1, Failures: 1, Skips: 0
            ===============================================
            
            
            ===============================================
            testtestng
            Total tests run: 1, Failures: 1, Skips: 0
            ===============================================
            
            Creating /home/joff/workspace/testtestng/testng-out/testtestng/toc.html
            Creating /home/joff/workspace/testtestng/testng-out/testtestng/nz.co.digiweb.dabs.testtestng.tests.PojoTests.properties
            Creating /home/joff/workspace/testtestng/testng-out/testtestng/index.html
            Creating /home/joff/workspace/testtestng/testng-out/testtestng/main.html
            Creating /home/joff/workspace/testtestng/testng-out/testtestng/groups.html
            Creating /home/joff/workspace/testtestng/testng-out/testtestng/methods.html
            Creating /home/joff/workspace/testtestng/testng-out/testtestng/methods-alphabetical.html
            Creating /home/joff/workspace/testtestng/testng-out/testtestng/classes.html
            Creating /home/joff/workspace/testtestng/testng-out/testtestng/reporter-output.html
            Creating /home/joff/workspace/testtestng/testng-out/testtestng/methods-not-run.html
            Creating /home/joff/workspace/testtestng/testng-out/testtestng/testng.xml.html
            Creating /home/joff/workspace/testtestng/testng-out/index.html
            Creating /home/joff/workspace/testtestng/testng-out/testng-failed.xml
            Creating /home/joff/workspace/testtestng/testng-out/testtestng/testng-failed.xml