empire-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jon Frias (JIRA)" <empire-db-...@incubator.apache.org>
Subject [jira] [Commented] (EMPIREDB-147) BLOB datatype under empire 2.3.1-SNAPSHOT
Date Wed, 20 Jun 2012 09:31:45 GMT

    [ https://issues.apache.org/jira/browse/EMPIREDB-147?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13397375#comment-13397375
] 

Jon Frias commented on EMPIREDB-147:
------------------------------------

Solved by overriding getResultValue method in the driver like this (suggested by Vladimir
Lahoda):

    ...  driver = new DBDatabaseDriverPostgreSQL(){

                       @Override
                       public Object getResultValue(ResultSet rset,
int columnIndex, DataType dataType) throws SQLException {
                           if (dataType == DataType.BLOB){
                               InputStream is =
rset.getBinaryStream(columnIndex);
                               if (is == null){
                                   return new byte[]{};
                               }
                               try{
                                   return ByteStreams.toByteArray(is);
 //Google Guava utility method
                               }catch (Exception e) {
                                   LOG.log(Level.SEVERE, "",e);  //JDK logging
                                   return new byte[]{};
                               }
                               finally{
                                   if (is != null)
                                       try {
                                           is.close();
                                       } catch (Exception e) {}
                               }
                           } else{
                               return super.getResultValue(rset,
columnIndex, dataType);
                           }
                       }

                   };

                
> BLOB datatype under empire 2.3.1-SNAPSHOT
> -----------------------------------------
>
>                 Key: EMPIREDB-147
>                 URL: https://issues.apache.org/jira/browse/EMPIREDB-147
>             Project: Empire-DB
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: empire-db-2.3.1
>         Environment: windows xp x64, using java 1.6.25, eclipse Id, postgreSQL database
>            Reporter: Jon Frias
>              Labels: feature
>             Fix For: empire-db-2.1.0-incubating
>
>
> Hi all, 
> I am using the version 2.3.1-SNAPSHOT in my code and I found the following bug:
> I have a datatable with 3 data fields (Integer, String and BLOB).
> The database is created correctly with different data types, but when I am trying to
get the information from the datatable executing commands, the following error is returned:
> 140 [main] INFO org.apache.empire.exceptions.EmpireException - An Error occured. Message
is: The database operation failed. Native error is: Bad value for type long : \x01000100
> The code I am using is the following (the BLOB data tye field is called "Information"):
> /**
> 	 * Gets the address books.
> 	 *
> 	 * @return the address books
> 	 */
> 	public List<addressBookBean> getAddressBooks(){
> 		List<addressBookBean> myABs = new ArrayList<addressBookBean>();
> 				
> 		DBCommand cmd = db.createCommand();
> 		cmd.select(db.ADDRESSBOOK.ADDRESS_BOOK_ID, db.ADDRESSBOOK.LOCATION, db.ADDRESSBOOK.INFORMATION);
> 		
> 		DBReader reader = new DBReader();
> 		reader.open(cmd, conn);
> 		while(reader.moveNext()){
> 			myABs.add(new addressBookBean(
> 					reader.getInt(db.ADDRESSBOOK.ADDRESS_BOOK_ID),
> 					reader.getString(db.ADDRESSBOOK.LOCATION), 
> 					(byte[]) reader.getValue(db.ADDRESSBOOK.INFORMATION)));
> 		}
> 		
> 		return myABs;
> 	}
> Thanks a lot for your time and if any further information is required, don't hesitate
and let me know.
> Best Regards,
> Jon
> PS: I opened an issue about a bug with the BLOB data type when the sql script is generated
for creating the database. the error message was very similar and it was totally fixed. Maybe
it can help. The issue is the following: 
> https://issues.apache.org/jira/browse/EMPIREDB-146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13288425#comment-13288425

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message