You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by th...@apache.org on 2003/05/09 20:54:14 UTC

cvs commit: db-ojb/src/java/org/apache/ojb/broker/platforms PlatformOracleImpl.java

thma        2003/05/09 11:54:14

  Modified:    src/java/org/apache/ojb/broker/platforms
                        PlatformOracleImpl.java
  Log:
  Adding Per-Olofs CLOB patch for Oracle thin driver
  
  Revision  Changes    Path
  1.13      +24 -1     db-ojb/src/java/org/apache/ojb/broker/platforms/PlatformOracleImpl.java
  
  Index: PlatformOracleImpl.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/broker/platforms/PlatformOracleImpl.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- PlatformOracleImpl.java	2 Apr 2003 07:45:33 -0000	1.12
  +++ PlatformOracleImpl.java	9 May 2003 18:54:14 -0000	1.13
  @@ -58,6 +58,9 @@
   import org.apache.ojb.broker.util.logging.LoggerFactory;
   
   import java.io.ByteArrayInputStream;
  +import java.io.InputStreamReader;
  +import java.io.Reader;
  +import java.io.StringReader;
   import java.lang.reflect.Field;
   import java.security.AccessController;
   import java.security.PrivilegedAction;
  @@ -125,6 +128,26 @@
               // workaround: Oracle thin driver problem when expecting long
               ps.setLong(index, ((Integer) value).intValue());
           }
  +        
  +        else if (sqlType == Types.CLOB)
  +        {
  +            Reader reader = null;
  +            int length = 0;
  +            if (value instanceof String)
  +            {
  +                reader = new StringReader((String) value);
  +                length = (((String) value)).length();
  +            }
  +            else if (value instanceof byte[])
  +            {
  +                byte buf[] = (byte[]) value;
  +                ByteArrayInputStream inputStream = new ByteArrayInputStream(buf);
  +                reader = new InputStreamReader(inputStream);
  +            }
  +
  +            ps.setCharacterStream(index, reader, length);
  +        }
  +        
           else
           {
               super.setObjectForStatement(ps, index, value, sqlType);