Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * IronJacamar, a Java EE Connector Architecture implementation
   * Copyright 2011, Red Hat Inc, and individual contributors
   * as indicated by the @author tags. See the copyright.txt file in the
   * distribution for a full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.jboss.jca.core.recovery;
 
 
 
 
Default implementation of a recovery plugin.

Author(s):
Stefano Maestri
Jesper Pedersen
 
 public class DefaultRecoveryPlugin implements RecoveryPlugin
 {
   
Log instance
 
    private static CoreLogger log = Logger.getMessageLogger(CoreLogger.classDefaultRecoveryPlugin.class.getName());

   
The bundle
 
    private static CoreBundle bundle = Messages.getBundle(CoreBundle.class);
   
   
Constructor
 
    public DefaultRecoveryPlugin()
    {
    }

   
 
    @Override
    public boolean isValid(Object cthrows ResourceException
    {
       if (c != null)
       {
          try
          {
             Method method = c.getClass().getMethod("isValid"new Class[] {int.class});
             SecurityActions.setAccessible(methodtrue);
             Boolean b = (Boolean)method.invoke(cnew Object[] {Integer.valueOf(5)});
             return b.booleanValue();
          }
          catch (Throwable t)
          {
             .debugf("No isValid(int) method defined on connection interface (%s)"c.getClass().getName());
          }
       }
 
       return false;
    }

   
 
    @Override
    public void close(Object cthrows ResourceException
    {
       if (c != null)
       {
          if (c instanceof javax.resource.cci.Connection)
          {
             try
             {
                javax.resource.cci.Connection cci = (javax.resource.cci.Connection)c;
                cci.close();
             }
             catch (ResourceException re)
             {
                .exceptionDuringConnectionClose(re);
                throw new ResourceException(.errorDuringConnectionClose(), re);
             }
         }
         else
         {
            try
            {
               Method method = c.getClass().getMethod("close", (Class<?>[])null);
               SecurityActions.setAccessible(methodtrue);
               method.invoke(c, (Object[])null);
            }
            catch (Throwable t)
            {
               .debug("Error during connection close()"t);
               throw new ResourceException(.errorDuringConnectionClose(), t);
            }
         }
      }
   }
New to GrepCode? Check out our FAQ X