<style>
/* Changing the layout to use less space for mobiles */
@media screen and (max-device-width: 480px), screen and (-webkit-min-device-pixel-ratio: 2) {
    #email-body { min-width: 30em !important; }
    #email-page { padding: 8px !important; }
    #email-banner { padding: 8px 8px 0 8px !important; }
    #email-avatar { margin: 1px 8px 8px 0 !important; padding: 0 !important; }
    #email-fields { padding: 0 8px 8px 8px !important; }
    #email-gutter { width: 0 !important; }
}
</style>
<div id="email-body">
<table id="email-wrap" align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#f0f0f0;color:#000000;width:100%;">
    <tr valign="top">
        <td id="email-page" style="padding:16px !important;">
            <table align="center" border="0" cellpadding="0" cellspacing="0" style="background-color:#ffffff;border:1px solid #bbbbbb;color:#000000;width:100%;">
                <tr valign="top">
                    <td bgcolor="#3e4c4e" style="background-color:#3e4c4e;color:#ffffff;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;line-height:1;"><img src="https://www.jboss.org/dms/hibernate/images/jira/jiraheader_hibernate.png" alt="" style="vertical-align:top;" /></td>
                </tr><tr valign="top">
    <td id="email-banner" style="padding:32px 32px 0 32px;">
        
                
        
        
            <table align="left" border="0" cellpadding="0" cellspacing="0" width="100%" style="width:100%;">
    <tr valign="top">
        <td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;padding:0;">
                                        <img id="email-avatar" src="https://hibernate.onjira.com/secure/useravatar?avatarId=10162" alt="" height="48" width="48" border="0" align="left" style="padding:0;margin: 0 16px 16px 0;" />
                        <div id="email-action" style="padding: 0 0 8px 0;font-size:12px;line-height:18px;">
                                    <a class="user-hover" rel="ekupcik" id="email_ekupcik" href="https://hibernate.onjira.com/secure/ViewProfile.jspa?name=ekupcik" style="color:#6c797f;">Emanuel Kupcik</a>
     created <img src="https://hibernate.onjira.com/images/icons/bug.gif" height="16" width="16" border="0" align="absmiddle" alt="Bug"> <a style='color:#6c797f;text-decoration:none;' href='https://hibernate.onjira.com/browse/HHH-7801'>HHH-7801</a>
            </div>
                        <div id="email-summary" style="font-size:16px;line-height:20px;padding:2px 0 16px 0;">
                <a style='color:#6c797f;text-decoration:none;' href='https://hibernate.onjira.com/browse/HHH-7801'><strong>HHH-7698 causes AbstractMethodError because of JDK 1.6 API</strong></a>
            </div>
                    </td>
    </tr>
</table>
    </td>
</tr>
<tr valign="top">
    <td id="email-fields" style="padding:0 32px 32px 32px;">
        <table border="0" cellpadding="0" cellspacing="0" style="padding:0;text-align:left;width:100%;" width="100%">
            <tr valign="top">
                <td id="email-gutter" style="width:64px;white-space:nowrap;"></td>
                <td>
                    <table border="0" cellpadding="0" cellspacing="0" width="100%">
                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Issue Type:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                <img src="https://hibernate.onjira.com/images/icons/bug.gif" height="16" width="16" border="0" align="absmiddle" alt="Bug">        Bug
    </td>
</tr>                                                <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Assignee:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                    Unassigned            </td>
</tr>                                                <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Components:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                    core            </td>
</tr>
                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Created:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
        14/Nov/12 8:43 AM
    </td>
</tr>                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Description:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
        <p style='margin-top:0;margin-bottom:10px;'>After updating from 4.1.5 to 4.1.8 we get an AbstractMethodError</p>

<p style='margin-top:0;margin-bottom:10px;'>java.lang.AbstractMethodError: com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.setBinaryStream(ILjava/io/InputStream;J)V<br/>
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br/>
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br/>
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br/>
        at java.lang.reflect.Method.invoke(Method.java:597)<br/>
        at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122)<br/>
        at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)<br/>
        at $Proxy75.setBinaryStream(Unknown Source)<br/>
        at org.hibernate.type.descriptor.sql.BlobTypeDescriptor$4$1.doBind(BlobTypeDescriptor.java:163)<br/>
        at org.hibernate.type.descriptor.sql.BlobTypeDescriptor$1$1.doBind(BlobTypeDescriptor.java:86)<br/>
        at org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:92)<br/>
        at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:280)<br/>
        at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:275)<br/>
        at org.hibernate.type.AbstractSingleColumnStandardBasicType.nullSafeSet(AbstractSingleColumnStandardBasicType.java:57)<br/>
        at org.hibernate.persister.entity.AbstractEntityPersister.dehydrate(AbstractEntityPersister.java:2747)<br/>
        at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3025)<br/>
        at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:3469)<br/>
        at org.hibernate.action.internal.EntityInsertAction.execute(EntityInsertAction.java:88)<br/>
        at org.hibernate.engine.spi.ActionQueue.execute(ActionQueue.java:362)<br/>
        at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:354)<br/>
        at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:275)<br/>
        at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:326)<br/>
        at org.hibernate.event.internal.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:52)<br/>
        at org.hibernate.internal.SessionImpl.flush(SessionImpl.java:1213)<br/>
        at org.hibernate.internal.SessionImpl.managedFlush(SessionImpl.java:402)<br/>
        at org.hibernate.engine.transaction.internal.jdbc.JdbcTransaction.beforeTransactionCommit(JdbcTransaction.java:101)<br/>
        at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.commit(AbstractTransactionImpl.java:175)</p>


<p style='margin-top:0;margin-bottom:10px;'>After having a closer look at the code I think i have figured out what causes this. The code tries to call PrepareStatement.setBinaryStream(int, InputStream, long). This method was added in JDK1.6 but C3P0 implements just the JDK1.5 API and there it just exists as (int, InputStream, int). But as far as I know Hibernate doesn't require JDK 1.6</p>

<p style='margin-top:0;margin-bottom:10px;'>The first idea was that BlobTypeDescriptor was changed. But that was not true. </p>

<div class="code panel" style="border-width: 1px;"><div class="codeContent panelContent">
<pre class="code-java"><span class="code-keyword">public</span> <span class="code-keyword">static</span> <span class="code-keyword">final</span> BlobTypeDescriptor STREAM_BINDING =
                        <span class="code-keyword">new</span> BlobTypeDescriptor() {
                                @Override
                <span class="code-keyword">public</span> &lt;X&gt; BasicBinder&lt;X&gt; getBlobBinder(<span class="code-keyword">final</span> JavaTypeDescriptor&lt;X&gt; javaTypeDescriptor) {
                                        <span class="code-keyword">return</span> <span class="code-keyword">new</span> BasicBinder&lt;X&gt;( javaTypeDescriptor, <span class="code-keyword">this</span> ) {
                                                @Override
                                                <span class="code-keyword">protected</span> void doBind(PreparedStatement st, X value, <span class="code-object">int</span> index, WrapperOptions options)
                                                                <span class="code-keyword">throws</span> SQLException {
                                                        <span class="code-keyword">final</span> BinaryStream binaryStream = javaTypeDescriptor.unwrap( value, BinaryStream.class, options );
                                                        st.setBinaryStream( index, binaryStream.getInputStream(), binaryStream.getLength() );
                                                }
                                        };
                                }

                                @Override
                <span class="code-keyword">public</span> &lt;X&gt; BasicExtractor&lt;X&gt; getBlobExtractor(<span class="code-keyword">final</span> JavaTypeDescriptor&lt;X&gt; javaTypeDescriptor) {
                                        <span class="code-keyword">return</span> <span class="code-keyword">new</span> BasicExtractor&lt;X&gt;( javaTypeDescriptor, <span class="code-keyword">this</span> ) {
                                                @Override
                                                <span class="code-keyword">protected</span> X doExtract(ResultSet rs, <span class="code-object">String</span> name, WrapperOptions options) <span class="code-keyword">throws</span> SQLException {
                                                        <span class="code-keyword">return</span> javaTypeDescriptor.wrap( rs.getBinaryStream( name ), options );
                                                }
                                        };
                                }
                        };</pre>
</div></div>

<p style='margin-top:0;margin-bottom:10px;'>But after some time I figure out that signature of BinaryStream.getLength() was changed so that it returns an long instead of an int now. When you compile BlobTypeDescriptor  with the new BinaryStream class that works well but it means that it will try to call a different JDBC API now. And this API doesn't exist in JDK 1.5 yet.</p>

<p style='margin-top:0;margin-bottom:10px;'>This is a smilar problem like in <a href="https://hibernate.onjira.com/browse/HHH-7778" title="Hibernate does not work anymore with c3p0">HHH-7778</a></p>
    </td>
</tr>
                                                <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Environment:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
        Hibernate 4.1.8, c3p0, MSSQL
    </td>
</tr>
                                                <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Project:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
        <a style="color:#6c797f;" href="https://hibernate.onjira.com/browse/HHH">Hibernate ORM</a>
    </td>
</tr>                                                <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Priority:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                <img src="https://hibernate.onjira.com/images/icons/priority_critical.gif" height="16" width="16" border="0" align="absmiddle" alt="Critical">        Critical
    </td>
</tr>                        <tr valign="top">
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 10px 10px 0;white-space:nowrap;">
        <strong style="font-weight:normal;color:#505050;">Reporter:</strong>
    </td>
    <td style="color:#000000;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:12px;padding:0 0 10px 0;width:100%;">
                                        <a class="user-hover" rel="ekupcik" id="email_ekupcik" href="https://hibernate.onjira.com/secure/ViewProfile.jspa?name=ekupcik" style="color:#6c797f;">Emanuel Kupcik</a>
                </td>
</tr>                                                    
    
    
                        </table>
                </td>
            </tr>
        </table>
    </td>
</tr>













            </table>
        </td><!-- End #email-page -->
    </tr>
    <tr valign="top">
        <td style="color:#505050;font-family:Arial,FreeSans,Helvetica,sans-serif;font-size:10px;line-height:14px;padding: 0 16px 16px 16px;text-align:center;">
            This message is automatically generated by JIRA.<br />
            If you think it was sent incorrectly, please contact your JIRA administrators<br />
            For more information on JIRA, see: <a style='color:#6c797f;' href='http://www.atlassian.com/software/jira'>http://www.atlassian.com/software/jira</a>
        </td>
    </tr>
</table><!-- End #email-wrap -->
</div><!-- End #email-body -->