openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Craig L Russell <Craig.Russ...@Sun.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:16:07 GMT
Hi Mike,

The code will work if you build from source and run on the same  
platform you compiled on.

But a binary distribution won't work (IIRC) if you run on a different  
platform than what the distribution was built with.

Do your tests compile on 6 and run on both 5 and 6?

Thanks,

Craig

On Jun 16, 2009, at 11:04 AM, Michael Dick wrote:

> 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!
>>
>>

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
View raw message