MethodHandles.Lookup lookup = MethodHandles.lookup(); MethodType mt = MethodType.methodType(boolean.class, int.class); MethodHandle handle = lookup.findVirtual(Connection.class, "isValid", mt);
// ... boolean isValid = (boolean) handle.invokeExact(connection, timeout); The findVirtual() call above will throw NoSuchMethodException if it doesn't exist. This is basically the same thing as traditional reflection, but more direct. On 29 March 2017 at 13:09, Gary Gregory <garydgreg...@gmail.com> wrote: > On Wed, Mar 29, 2017 at 8:28 AM, Matt Sicker <boa...@gmail.com> wrote: > > > Using a MethodHandle lookup ahead of time to create a fast invocation > proxy > > and using that where available would make sense. I don't like the idea of > > catching errors like that. > > > > Hi Matt, > > Thank you for the tip. Do you have an example handy? (short on time today, > scrambling like a madman, otherwise I'd hack around) > > Gary > > > > > > On 29 March 2017 at 01:53, Gary Gregory <garydgreg...@gmail.com> wrote: > > > > > Hi All: > > > > > > The method: > > > > > > org.apache.commons.dbcp2.DelegatingConnection.isValid(int) > > > > > > delegates to a JDBC method that is marked "@since 1.6" in the JDBC > > Javadoc. > > > > > > I am dealing with an old JDBC driver that throws an AbstractMethodError > > > when this method is called. > > > > > > How can I workaround this? Should we add some mode to DBCP2 to deal > with > > > pre-1.6 JDBC drivers? If so how? Catch the AME specifically and > return... > > > what? > > > > > > Gary > > > > > > -- > > > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > > > Java Persistence with Hibernate, Second Edition > > > <https://www.amazon.com/gp/product/1617290459/ref=as_li_ > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& > > > linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2 > b8> > > > > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= > > > 1617290459> > > > JUnit in Action, Second Edition > > > <https://www.amazon.com/gp/product/1935182021/ref=as_li_ > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& > > > linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de4 > > 18%22 > > > > > > > > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= > > > 1935182021> > > > Spring Batch in Action > > > <https://www.amazon.com/gp/product/1935182951/ref=as_li_ > > > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951& > > > linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B% > > > 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= > > > 1935182951> > > > Blog: http://garygregory.wordpress.com > > > Home: http://garygregory.com/ > > > Tweet! http://twitter.com/GaryGregory > > > > > > > > > > > -- > > Matt Sicker <boa...@gmail.com> > > > > > > -- > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org > Java Persistence with Hibernate, Second Edition > <https://www.amazon.com/gp/product/1617290459/ref=as_li_ > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1617290459& > linkCode=as2&tag=garygregory-20&linkId=cadb800f39946ec62ea2b1af9fe6a2b8> > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= > 1617290459> > JUnit in Action, Second Edition > <https://www.amazon.com/gp/product/1935182021/ref=as_li_ > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182021& > linkCode=as2&tag=garygregory-20&linkId=31ecd1f6b6d1eaf8886ac902a24de418%22 > > > > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= > 1935182021> > Spring Batch in Action > <https://www.amazon.com/gp/product/1935182951/ref=as_li_ > tl?ie=UTF8&camp=1789&creative=9325&creativeASIN=1935182951& > linkCode=%7B%7BlinkCode%7D%7D&tag=garygregory-20&linkId=%7B% > 7Blink_id%7D%7D%22%3ESpring+Batch+in+Action> > <http:////ir-na.amazon-adsystem.com/e/ir?t=garygregory-20&l=am2&o=1&a= > 1935182951> > Blog: http://garygregory.wordpress.com > Home: http://garygregory.com/ > Tweet! http://twitter.com/GaryGregory > -- Matt Sicker <boa...@gmail.com>