title: oracle 11g and integration of hibernate spring and jsf
body: <p>i am using jsf 2,hibernate 4.1.4,spring 3.1,oracle 11g and maven 3.
  but it can not connect to oracle and has error. i downloaded the latest version ojdbc6.
  applicationContext.xml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  
  &lt;beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:aop="http://www.springframework.org/schema/aop"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:lang="http://www.springframework.org/schema/lang"
      xmlns:task="http://www.springframework.org/schema/task"
      xmlns:tx="http://www.springframework.org/schema/tx"
      xmlns:util="http://www.springframework.org/schema/util"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
          http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
          http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
          http://www.springframework.org/schema/lang http://www.springframework.org/schema/lang/spring-lang-3.1.xsd
          http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.1.xsd
          http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
          http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.1.xsd"&gt;
  
   &lt;!-- Beans Declaration --&gt;
   &lt;bean id="customer" class="model.Customer"/&gt;
  
  &lt;!-- CustomerBo Declaration --&gt;
   &lt;bean id="CustomerBoImpl" class="bo.CustomerBoImpl"&gt;
        &lt;property name="customerDaoImpl" ref="CustomerDaoImpl" /&gt;
       &lt;/bean&gt;
  
  
   &lt;!-- Customer DAO Declaration --&gt;
   &lt;bean id="CustomerDaoImpl" class="dao.CustomerDaoImpl"&gt;
    &lt;property name="sessionFactory" ref="SessionFactory" /&gt;
   &lt;/bean&gt;
  
   &lt;!-- Data Source Declaration --&gt;
   &lt;bean id="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"&gt;
    &lt;property name="driverClass" value="oracle.jdbc.driver.OracleDriver" /&gt;
    &lt;property name="jdbcUrl" value="jdbc:oracle:thin:@Mohsen-PC:1521:mydb" /&gt;
    &lt;property name="user" value="system" /&gt;
    &lt;property name="password" value="123" /&gt;
    &lt;property name="maxPoolSize" value="10" /&gt;
    &lt;property name="maxStatements" value="0" /&gt;
    &lt;property name="minPoolSize" value="5" /&gt;
   &lt;/bean&gt;
  
   &lt;!-- Session Factory Declaration --&gt;
   &lt;bean id="SessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"&gt;
    &lt;property name="dataSource" ref="DataSource" /&gt;
    &lt;property name="annotatedClasses"&gt;
     &lt;list&gt;
      &lt;value&gt;model.Customer&lt;/value&gt;
     &lt;/list&gt;
    &lt;/property&gt;
    &lt;property name="hibernateProperties"&gt;
     &lt;props&gt;
      &lt;prop key="hibernate.dialect"&gt;org.hibernate.dialect.Oracle10gDialect&lt;/prop&gt;
      &lt;prop key="hibernate.show_sql"&gt;true&lt;/prop&gt;
     &lt;/props&gt;
    &lt;/property&gt;
   &lt;/bean&gt;
  
   &lt;!-- Enable the configuration of transactional behavior based on annotations --&gt;
      &lt;tx:annotation-driven transaction-manager="txManager"/&gt;
  
   &lt;!-- Transaction Manager is defined --&gt;
      &lt;bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"&gt;
         &lt;property name="sessionFactory" ref="SessionFactory"/&gt;
      &lt;/bean&gt;
  
  &lt;/beans&gt;
  </code></pre>
  
  <p>faces-config</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  
  &lt;faces-config
      xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
      version="2.0"&gt;
  &lt;application&gt;
          &lt;el-resolver&gt;
              org.springframework.web.jsf.el.SpringBeanFacesELResolver
          &lt;/el-resolver&gt;
      &lt;/application&gt;
  
  
  &lt;/faces-config&gt;
  </code></pre>
  
  <p>web.xml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"&gt;
    &lt;display-name&gt;jsfspringhiber&lt;/display-name&gt;
    &lt;listener&gt;
      &lt;listener-class&gt;
          org.springframework.web.context.ContextLoaderListener
      &lt;/listener-class&gt;
    &lt;/listener&gt;
    &lt;context-param&gt;
      &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
      &lt;param-value&gt;
            /WEB-INF/applicationContext.xml
            &lt;/param-value&gt;
    &lt;/context-param&gt;
    &lt;listener&gt;
      &lt;listener-class&gt;
          org.springframework.web.context.request.RequestContextListener
      &lt;/listener-class&gt;
    &lt;/listener&gt;
    &lt;context-param&gt;
      &lt;param-name&gt;javax.faces.PROJECT_STAGE&lt;/param-name&gt;
      &lt;param-value&gt;Development&lt;/param-value&gt;
    &lt;/context-param&gt;
    &lt;welcome-file-list&gt;
      &lt;welcome-file&gt;default.xhtml&lt;/welcome-file&gt;
    &lt;/welcome-file-list&gt;
    &lt;servlet&gt;
      &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
      &lt;servlet-class&gt;javax.faces.webapp.FacesServlet&lt;/servlet-class&gt;
      &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
    &lt;/servlet&gt;
    &lt;servlet-mapping&gt;
      &lt;servlet-name&gt;Faces Servlet&lt;/servlet-name&gt;
      &lt;url-pattern&gt;*.xhtml&lt;/url-pattern&gt;
      &lt;url-pattern&gt;/faces/*&lt;/url-pattern&gt;
    &lt;/servlet-mapping&gt;
    &lt;context-param&gt;
      &lt;description&gt;State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2&lt;/description&gt;
      &lt;param-name&gt;javax.faces.STATE_SAVING_METHOD&lt;/param-name&gt;
      &lt;param-value&gt;client&lt;/param-value&gt;
    &lt;/context-param&gt;
    &lt;context-param&gt;
      &lt;param-name&gt;javax.servlet.jsp.jstl.fmt.localizationContext&lt;/param-name&gt;
      &lt;param-value&gt;resources.application&lt;/param-value&gt;
    &lt;/context-param&gt;
    &lt;listener&gt;
      &lt;listener-class&gt;com.sun.faces.config.ConfigureListener&lt;/listener-class&gt;
    &lt;/listener&gt;
  &lt;/web-app&gt;
  </code></pre>
  
  <p>CustomerDaoImpl.java</p>
  
  <pre><code> public class CustomerDaoImpl implements ICustomerDao{
      private SessionFactory sessionFactory;
      public SessionFactory getSessionFactory() {
          return sessionFactory;}
      public void setSessionFactory(SessionFactory sessionFactory) {
           this.sessionFactory = sessionFactory;
      }
  
      public void addCustomer(Customer customer){
          sessionFactory.openSession();
          getSessionFactory().getCurrentSession().save(customer);
  
      }
  
      public void updateCustomer(Customer customer){
          sessionFactory.openSession();
          getSessionFactory().getCurrentSession().update(customer);
      }
  
      public void deleteCustomer(Customer customer){
          sessionFactory.openSession();
          getSessionFactory().getCurrentSession().delete(customer);
      }
  
  
      public List&lt;Customer&gt; findAllCustomer(){
          sessionFactory.openSession();
  
          List list = getSessionFactory().getCurrentSession
  
  ().createQuery("from CUSTOMER").list();
          return list;
  
      }
  }
  </code></pre>
  
  <p>CustomerBoImpl.java</p>
  
  <pre><code>public class CustomerBoImpl implements ICustomerBo{
  
      ICustomerDao customerDaoImpl;
  
  
  
      public ICustomerDao getCustomerDaoImpl() {
          return customerDaoImpl;
      }
  
      public void setCustomerDaoImpl(ICustomerDao customerDaoImpl) {
          this.customerDaoImpl = customerDaoImpl;
      }
  
      public void addCustomer(Customer customer){
  
          getCustomerDaoImpl().addCustomer(customer);
  
      }
  
      public void updateCustomer(Customer customer){
          getCustomerDaoImpl().updateCustomer(customer);
      }
  
      public void deleteCustomer(Customer customer){
          getCustomerDaoImpl().deleteCustomer(customer);
      }
      public List&lt;Customer&gt; findAllCustomer(){
  
          return getCustomerDaoImpl().findAllCustomer();
      }
  }  
  </code></pre>
  
  <p>Customermanagedbean.java</p>
  
  <pre><code>@ManagedBean(name="CustomerMB")
  @RequestScoped
  public class Customermanagedbean implements Serializable{
  @ManagedProperty(value="#{CustomerBoImpl}")
  ICustomerBo customerBoImpl;
  List&lt;Customer&gt; CustomerList;
  public int customerId;
  public String name;
  public String address;
  public String createdDate;
  
  
  
  public ICustomerBo getCustomerBoImpl() {
      return customerBoImpl;
  }
  public void setCustomerBoImpl(ICustomerBo customerBoImpl) {
      this.customerBoImpl = customerBoImpl;
  }
  
  public List&lt;Customer&gt; getCustomerList() {
      return CustomerList;
  }
  public void setCustomerList(List&lt;Customer&gt; customerList) {
      CustomerList = customerList;
  }
  public int getCustomerId() {
      return customerId;
  }
  public void setCustomerId(int customerId) {
      this.customerId = customerId;
  }
  public String getName() {
      return name;
  }
  public void setName(String name) {
      this.name = name;
  }
  public String getAddress() {
      return address;
  }
  public void setAddress(String address) {
      this.address = address;
  }
  public String getCreatedDate() {
      return createdDate;
  }
  public void setCreatedDate(String createdDate) {
      this.createdDate = createdDate;
  }
  //add a new customer data into database
  public String addCustomer(){
  
      Customer cust = new Customer();
      cust.setCustomerId(getCustomerId());
      cust.setName(getName());
      cust.setAddress(getAddress());
  cust.setCreatedDate(getCreatedDate());
      customerBoImpl.addCustomer(cust);
  
      clearForm();
  
      return "";
  }
  
  //clear form values
  private void clearForm(){
      setName("");
      setAddress("");
  }
  
  
  }
  </code></pre>
  
  <p>Customer.java</p>
  
  <pre><code>@Entity
  @Table(name="CUSTOMER")
  
  public class Customer{
  
      public int customerId;
      public String name;
      public String address;
      public String createdDate;
  
      @Id
      @Column(name="CUSTOMER_ID", unique = true, nullable = false)
      public int getCustomerId() {
          return customerId;
      }
      public void setCustomerId(int customerId) {
          this.customerId = customerId;
      }
      @Column(name="NAME")
      public String getName() {
          return name;
      }
      public void setName(String name) {
          this.name = name;
      }
      @Column(name="ADDRESS")
      public String getAddress() {
          return address;
      }
      public void setAddress(String address) {
          this.address = address;
      }
      @Column(name="CREATED_DATE")
      public String getCreatedDate() {
          return createdDate;
      }
      public void setCreatedDate(String createdDate) {
          this.createdDate = createdDate;
      }
  }
  </code></pre>
  
  <p>default.xhtml</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
  &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;
  &lt;html xmlns="http://www.w3.org/1999/xhtml"   
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:f="http://java.sun.com/jsf/core"
        &gt;
      &lt;h:head&gt;
          &lt;h:outputStylesheet library="css" name="table-style.css"  /&gt;
      &lt;/h:head&gt;
  
      &lt;h:body&gt;
  
          &lt;h1&gt;JSF 2.0 + Spring + Hibernate Example&lt;/h1&gt;
  
          &lt;h:dataTable value="#{CustomerMB.getCustomerList()}" var="c"
                  styleClass="order-table"
                  headerClass="order-table-header"
                  rowClasses="order-table-odd-row,order-table-even-row"
              &gt;
  
              &lt;h:column&gt;
                  &lt;f:facet name="header"&gt;
                      Customer ID
                  &lt;/f:facet&gt;
                      #{c.customerId}
              &lt;/h:column&gt;
  
              &lt;h:column&gt;
                  &lt;f:facet name="header"&gt;
                      Name
                  &lt;/f:facet&gt;
                      #{c.name}
              &lt;/h:column&gt;
  
              &lt;h:column&gt;
                  &lt;f:facet name="header"&gt;
                      Address
                  &lt;/f:facet&gt;
                      #{c.address}
              &lt;/h:column&gt;
  
              &lt;h:column&gt;
                  &lt;f:facet name="header"&gt;
                      Created Date
                  &lt;/f:facet&gt;
                      #{c.createdDate}
              &lt;/h:column&gt;
  
          &lt;/h:dataTable&gt;
  
          &lt;h2&gt;Add New Customer&lt;/h2&gt;
          &lt;h:form&gt;
  
              &lt;h:panelGrid columns="3"&gt;
                  Customer ID : 
                  &lt;h:inputText id="customerId" value="#{CustomerMB.customerId}" 
                      size="20" required="true"
                      label="customerId" &gt;
                  &lt;/h:inputText&gt;
  
                  &lt;h:message for="customerId" style="color:red" /&gt;
                  Name : 
                  &lt;h:inputText id="name" value="#{CustomerMB.name}" 
                      size="20" required="true"
                      label="Name" &gt;
                  &lt;/h:inputText&gt;
  
                  &lt;h:message for="name" style="color:red" /&gt;
  
                  Address : 
                  &lt;h:inputTextarea id="address" value="#{CustomerMB.address}" 
                      cols="30" rows="10" required="true"
                      label="Address" &gt;
                  &lt;/h:inputTextarea&gt;
  
                  &lt;h:message for="address" style="color:red" /&gt;
  
  created Date : 
                  &lt;h:inputTextarea id="createdDate" value="#{CustomerMB.createdDate}" 
                      size="20" required="true"
                      label="createdDate" &gt;
                  &lt;/h:inputTextarea&gt;
  
              &lt;/h:panelGrid&gt;
  
              &lt;h:commandButton value="Submit" action="#{CustomerMB.addCustomer()}" /&gt;
  
          &lt;/h:form&gt;
  
      &lt;/h:body&gt;
  
  &lt;/html&gt;
  </code></pre>
  
  <p>when i run the default.xhtml:
  i can not see the records in the table.
  <img src="https://i.stack.imgur.com/8InSF.jpg" alt="enter image description here"></p>
  
  <p>when i click the submit button i have these errors:</p>
  
  <pre><code>SEVERE: org.hibernate.HibernateException: No Session found for current thread
  javax.faces.el.EvaluationException: org.hibernate.HibernateException: No Session found for current thread
      at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
      at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
      at javax.faces.component.UICommand.broadcast(UICommand.java:311)
      at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
      at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
      at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
      at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
      at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
  Caused by: org.hibernate.HibernateException: No Session found for current thread
      at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:97)
      at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:1041)
      at dao.CustomerDaoImpl.addCustomer(CustomerDaoImpl.java:18)
      at bo.CustomerBoImpl.addCustomer(CustomerBoImpl.java:23)
      at managedbean.Customermanagedbean.addCustomer(Customermanagedbean.java:70)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.apache.el.parser.AstValue.invoke(AstValue.java:264)
      at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
      at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
      at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84)
      ... 24 more
  
  Jul 02, 2012 4:40:48 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute
  WARNING: #{CustomerMB.addCustomer()}: org.hibernate.HibernateException: No Session found for current thread
  javax.faces.FacesException: #{CustomerMB.addCustomer()}: org.hibernate.HibernateException: No Session found for current thread
      at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:114)
      at javax.faces.component.UICommand.broadcast(UICommand.java:311)
      at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:781)
      at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1246)
      at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:77)
      at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
      at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:114)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:308)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
      at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
      at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
      at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
      at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
      at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
  Caused by: javax.faces.el.EvaluationException: org.hibernate.HibernateException: No Session found for current thread
      at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:98)
      at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:98)
      ... 23 more
  Caused by: org.hibernate.HibernateException: No Session found for current thread
      at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:97)
      at org.hibernate.internal.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:1041)
      at dao.CustomerDaoImpl.addCustomer(CustomerDaoImpl.java:18)
      at bo.CustomerBoImpl.addCustomer(CustomerBoImpl.java:23)
      at managedbean.Customermanagedbean.addCustomer(Customermanagedbean.java:70)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at org.apache.el.parser.AstValue.invoke(AstValue.java:264)
      at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
      at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:102)
      at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:84)
      ... 24 more
  </code></pre>