openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Dick <michael.d.d...@gmail.com>
Subject Re: svn commit: r782338 - in /openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc: meta/strats/ sql/
Date Tue, 16 Jun 2009 18:04:37 GMT
I don't have a Java 6 configuration for MySQL, but I do run Sun JDK 5&6 and
IBM SDK 5&6 with Derby every night. These builds are passing now.

-mike

On Tue, Jun 16, 2009 at 12:52 PM, Craig L Russell <Craig.Russell@sun.com>wrote:

> Hi,
>
> Has this change been tested with JDK 5 and JDK 6? I thought the reason for
> the reflection stuff was the incompatibility between JDBC3 and JDBC4 so you
> couldn't write the same code for both platforms.
>
> I might (probably?) have missed the discussion on how to resolve
> http://issues.apache.org/jira/browse/OPENJPA-5 which is central to this
> issue.
>
> Craig
>
>
> On Jun 7, 2009, at 1:13 AM, mtylenda@apache.org wrote:
>
>  Author: mtylenda
>> Date: Sun Jun  7 08:13:41 2009
>> New Revision: 782338
>>
>> URL: http://svn.apache.org/viewvc?rev=782338&view=rev
>> Log:
>> OPENJPA-1122: Remove JDBC 3 related reflection from DBDictionary
>>
>> Modified:
>>
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.java
>>
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.java
>>
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.java
>>
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.java
>>
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
>>
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/OracleDictionary.java
>>
>> Modified:
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.java
>> URL:
>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.java?rev=782338&r1=782337&r2=782338&view=diff
>>
>> ==============================================================================
>> ---
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.java
>> (original)
>> +++
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedBlobFieldStrategy.java
>> Sun Jun  7 08:13:41 2009
>> @@ -18,6 +18,7 @@
>>  */
>> package org.apache.openjpa.jdbc.meta.strats;
>>
>> +import java.sql.Blob;
>> import java.sql.ResultSet;
>> import java.sql.SQLException;
>>
>> @@ -89,7 +90,7 @@
>>        DBDictionary dict)
>>        throws SQLException {
>>        byte[] b = (byte[]) sm.setImplData(field.getIndex(), null);
>> -        Object blob = rs.getBlob(1);
>> +        Blob blob = rs.getBlob(1);
>>        dict.putBytes(blob, b);
>>    }
>>
>>
>> Modified:
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.java
>> URL:
>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.java?rev=782338&r1=782337&r2=782338&view=diff
>>
>> ==============================================================================
>> ---
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.java
>> (original)
>> +++
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedByteArrayFieldStrategy.java
>> Sun Jun  7 08:13:41 2009
>> @@ -19,6 +19,7 @@
>> package org.apache.openjpa.jdbc.meta.strats;
>>
>> import java.lang.reflect.Array;
>> +import java.sql.Blob;
>> import java.sql.ResultSet;
>> import java.sql.SQLException;
>>
>> @@ -72,7 +73,7 @@
>>    protected void putData(OpenJPAStateManager sm, ResultSet rs,
>>        DBDictionary dict)
>>        throws SQLException {
>> -        Object blob = rs.getBlob(1);
>> +        Blob blob = rs.getBlob(1);
>>        dict.putBytes(blob,
>> PrimitiveWrapperArrays.toByteArray(sm.fetchObject
>>            (field.getIndex())));
>>    }
>> @@ -80,7 +81,7 @@
>>    protected Object load(Column col, Result res, Joins joins)
>>        throws SQLException {
>>        return PrimitiveWrapperArrays.toObjectValue(field,
>> -            (byte[]) res.getBytes(col, joins));
>> +            res.getBytes(col, joins));
>>    }
>>
>>    public void map(boolean adapt) {
>>
>> Modified:
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.java
>> URL:
>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.java?rev=782338&r1=782337&r2=782338&view=diff
>>
>> ==============================================================================
>> ---
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.java
>> (original)
>> +++
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedCharArrayFieldStrategy.java
>> Sun Jun  7 08:13:41 2009
>> @@ -23,6 +23,7 @@
>> import java.io.IOException;
>> import java.io.Reader;
>> import java.lang.reflect.Array;
>> +import java.sql.Clob;
>> import java.sql.ResultSet;
>> import java.sql.SQLException;
>>
>> @@ -77,7 +78,7 @@
>>    protected void putData(OpenJPAStateManager sm, ResultSet rs,
>>        DBDictionary dict)
>>        throws SQLException {
>> -        Object clob = rs.getClob(1);
>> +        Clob clob = rs.getClob(1);
>>        dict.putChars(clob, PrimitiveWrapperArrays.
>>            toCharArray(sm.fetchObject(field.getIndex())));
>>    }
>>
>> Modified:
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.java
>> URL:
>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.java?rev=782338&r1=782337&r2=782338&view=diff
>>
>> ==============================================================================
>> ---
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.java
>> (original)
>> +++
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/meta/strats/MaxEmbeddedClobFieldStrategy.java
>> Sun Jun  7 08:13:41 2009
>> @@ -18,6 +18,7 @@
>>  */
>> package org.apache.openjpa.jdbc.meta.strats;
>>
>> +import java.sql.Clob;
>> import java.sql.ResultSet;
>> import java.sql.SQLException;
>>
>> @@ -66,7 +67,7 @@
>>    protected void putData(OpenJPAStateManager sm, ResultSet rs,
>>        DBDictionary dict)
>>        throws SQLException {
>> -        Object clob = rs.getClob(1);
>> +        Clob clob = rs.getClob(1);
>>        dict.putString(clob, sm.fetchString(field.getIndex()));
>>    }
>>
>>
>> Modified:
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
>> URL:
>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java?rev=782338&r1=782337&r2=782338&view=diff
>>
>> ==============================================================================
>> ---
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
>> (original)
>> +++
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DBDictionary.java
>> Sun Jun  7 08:13:41 2009
>> @@ -28,8 +28,6 @@
>> import java.io.Reader;
>> import java.io.StringReader;
>> import java.io.Writer;
>> -import java.lang.reflect.InvocationTargetException;
>> -import java.lang.reflect.Method;
>> import java.math.BigDecimal;
>> import java.math.BigInteger;
>> import java.sql.Array;
>> @@ -394,11 +392,6 @@
>>    // first time it happens we can warn the user
>>    private Set _precisionWarnedTypes = null;
>>
>> -    // cache lob methods
>> -    private Method _setBytes = null;
>> -    private Method _setString = null;
>> -    private Method _setCharStream = null;
>> -
>>    // batchLimit value:
>>    // -1 = unlimited
>>    // 0  = no batch
>> @@ -1421,55 +1414,27 @@
>>    /**
>>     * Invoke the JDK 1.4 <code>setBytes</code> method on the given BLOB
>> object.
>>     */
>> -    public void putBytes(Object blob, byte[] data)
>> +    public void putBytes(Blob blob, byte[] data)
>>        throws SQLException {
>> -        if (_setBytes == null) {
>> -            try {
>> -                _setBytes = blob.getClass().getMethod("setBytes",
>> -                    new Class[]{ long.class, byte[].class });
>> -            } catch (Exception e) {
>> -                throw new StoreException(e);
>> -            }
>> -        }
>> -        invokePutLobMethod(_setBytes, blob,
>> -            new Object[]{ Numbers.valueOf(1L), data });
>> +        blob.setBytes(1L, data);
>>    }
>>
>>    /**
>>     * Invoke the JDK 1.4 <code>setString</code> method on the given CLOB
>>     * object.
>>     */
>> -    public void putString(Object clob, String data)
>> +    public void putString(Clob clob, String data)
>>        throws SQLException {
>> -        if (_setString == null) {
>> -            try {
>> -                _setString = clob.getClass().getMethod("setString",
>> -                    new Class[]{ long.class, String.class });
>> -            } catch (Exception e) {
>> -                throw new StoreException(e);
>> -            }
>> -        }
>> -        invokePutLobMethod(_setString, clob,
>> -            new Object[]{ Numbers.valueOf(1L), data });
>> +        clob.setString(1L, data);
>>    }
>>
>>    /**
>>     * Invoke the JDK 1.4 <code>setCharacterStream</code> method on the
>> given
>>     * CLOB object.
>>     */
>> -    public void putChars(Object clob, char[] data)
>> +    public void putChars(Clob clob, char[] data)
>>        throws SQLException {
>> -        if (_setCharStream == null) {
>> -            try {
>> -                _setCharStream = clob.getClass().getMethod
>> -                    ("setCharacterStream", new Class[]{ long.class });
>> -            } catch (Exception e) {
>> -                throw new StoreException(e);
>> -            }
>> -        }
>> -
>> -        Writer writer = (Writer) invokePutLobMethod(_setCharStream, clob,
>> -            new Object[]{ Numbers.valueOf(1L) });
>> +        Writer writer = clob.setCharacterStream(1L);
>>        try {
>>            writer.write(data);
>>            writer.flush();
>> @@ -1479,24 +1444,6 @@
>>    }
>>
>>    /**
>> -     * Invoke the given LOB method on the given target with the given
>> data.
>> -     */
>> -    private static Object invokePutLobMethod(Method method, Object
>> target,
>> -        Object[] args)
>> -        throws SQLException {
>> -        try {
>> -            return method.invoke(target, args);
>> -        } catch (InvocationTargetException ite) {
>> -            Throwable t = ite.getTargetException();
>> -            if (t instanceof SQLException)
>> -                throw(SQLException) t;
>> -            throw new StoreException(t);
>> -        } catch (Exception e) {
>> -            throw new StoreException(e);
>> -        }
>> -    }
>> -
>> -    /**
>>     * Warn that a particular value could not be stored precisely.
>>     * After the first warning for a particular type, messages
>>     * will be turned into trace messages.
>>
>> Modified:
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/OracleDictionary.java
>> URL:
>> http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/OracleDictionary.java?rev=782338&r1=782337&r2=782338&view=diff
>>
>> ==============================================================================
>> ---
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/OracleDictionary.java
>> (original)
>> +++
>> openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/OracleDictionary.java
>> Sun Jun  7 08:13:41 2009
>> @@ -949,7 +949,7 @@
>>     * vendor-specific class; for example Weblogic wraps oracle thin driver
>>     * lobs in its own interfaces with the same methods.
>>     */
>> -    public void putBytes(Object blob, byte[] data)
>> +    public void putBytes(Blob blob, byte[] data)
>>        throws SQLException {
>>        if (blob == null)
>>            return;
>> @@ -970,7 +970,7 @@
>>     * vendor-specific class; for example Weblogic wraps oracle thin driver
>>     * lobs in its own interfaces with the same methods.
>>     */
>> -    public void putString(Object clob, String data)
>> +    public void putString(Clob clob, String data)
>>        throws SQLException {
>>        if (_putString == null) {
>>            try {
>> @@ -989,7 +989,7 @@
>>     * vendor-specific class; for example Weblogic wraps oracle thin driver
>>     * lobs in its own interfaces with the same methods.
>>     */
>> -    public void putChars(Object clob, char[] data)
>> +    public void putChars(Clob clob, char[] data)
>>        throws SQLException {
>>        if (_putChars == null) {
>>            try {
>>
>>
>>
> Craig L Russell
> Architect, Sun Java Enterprise System http://db.apache.org/jdo
> 408 276-5638 mailto:Craig.Russell@sun.com
> P.S. A good JDO? O, Gasp!
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message