Yep, anything is ok
On 10 July 2012 11:22, jon frias <[email protected]> wrote: > Hi Francis, > > Thank you for your email. > > How can I send you the testing-project? In a rar file or similar is ok for > you? > > Just let me know. > > Jon > > 2012/7/10 Francis De Brabandere <[email protected]> > >> Hi Jon, >> >> Sorry for the late reply, a 'testing-project' would be perfect if you >> still have it lying around. >> >> Francis >> >> On 20 June 2012 09:59, jon frias <[email protected]> wrote: >> > hello all, >> > >> > First of all, thank you all very much for your quick responses. >> > >> > I have tried the solution suggested by Vladimir and it works ok for me. >> The >> > BLOB fields are accessible and testing more actions like delete it on >> > cascade and other stuff and all it works also. >> > >> > @Francis: Do you want me to send you my "testing-project"? It is formed >> > just by 3 java classes (DBTables), another class for the main methods, >> and >> > the last one with the unit tests.If you want to check in detail what the >> > problem is, just let me know. >> > >> > As I said, thank you all for your support and best regards. >> > >> > Jon Frias >> > >> > >> > Forwarded message ---------- >> >> From: Vladimir Lahoda <[email protected]> >> >> Date: 2012/6/19 >> >> Subject: Re: empire db possible bug: blob data type is not working >> >> under queries execution commands >> >> To: [email protected] >> >> >> >> >> >> Hi, >> >> >> >> I encountered this problem too and the solution was to override the >> >> getResultValue method in the driver like this: >> >> >> >> ... 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); >> >> } >> >> } >> >> >> >> }; >> >> >> >> It works fine, but it is usable only for relatively small blobs that >> >> fit in memory. I think that for really large blobs it is not feasible >> >> to use the DBReader.getValue method anyway, in such case the resultset >> >> streaming API should be used directly. >> >> >> >> Regards, >> >> >> >> Vladimir >> >> >> >> On 19. 6. 2012, at 10:48, Francis De Brabandere wrote: >> >> >> >> > I can try to reproduce this on my machine but a simple (unit) test >> >> > that reproduces this would be welcome. >> >> > >> >> > Cheers, >> >> > Francis >> >> > >> >> > On 19 June 2012 10:34, Rainer Döbele <[email protected]> wrote: >> >> >> Hi Frias, >> >> >> >> >> >> >> >> >> >> >> >> unfortunately I am not able to verify your bug as I have no >> PostgreSQL >> >> database available. >> >> >> >> >> >> >> >> >> >> >> >> From your description I assume that you have declared your Column >> >> ADDRESSBOOK.INFORMATION as DataType.BLOB. >> >> >> >> >> >> As far as I can see from the PostgreSQL Driver, the BLOB data type is >> >> mapped to the PostgreSQL Type "bytea". >> >> >> >> >> >> I don't know what the difference between the PostgreSQL Type "long" >> and >> >> "bytea" is, but this might be the cause of the problem. >> >> >> >> >> >> >> >> >> >> >> >> If possible could you please set a breakpoint on the function >> >> getResultValue(...) in class >> >> org.apache.empire.db.postgresql.DBDatabaseDriverPostgreSQL. >> >> >> >> >> >> I assume that the method getBlob(columnIndex) on the JDBC ResultSet >> >> fails. >> >> >> >> >> >> We then need to find out, which other method must be used to retrieve >> >> the value of type long. >> >> >> >> >> >> >> >> >> >> >> >> Regards >> >> >> >> >> >> Rainer >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> from: Frias Inchausti, Jon [mailto:[email protected]] >> >> >> to: [email protected] >> >> >> re: empire db possible bug: blob data type is not working under >> queries >> >> execution commands >> >> >> >> >> >> >> >> >> >> >> >> Hi all, >> >> >> >> >> >> >> >> >> >> >> >> My name is Jon Frias and I am working under the version >> 2.3.1-SNAPSHOT >> >> of empire db and posgresql driver. (I have already created a bug issue, >> you >> >> can find it at: https://issues.apache.org/jira/browse/EMPIREDB-147 ) >> >> >> >> >> >> >> >> >> >> >> >> The possible bug I have detected is the following: >> >> >> >> >> >> When I execute a query on a data table which contains a blob data >> type, >> >> it returns this error message: >> >> >> >> >> >> >> >> >> >> >> >> 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 >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> For example: I have a data table with 3 data fields (Integer, String >> >> and BLOB). >> >> >> >> >> >> The database is created correctly with different data types. >> >> >> >> >> >> >> >> >> >> >> >> The code I use to execute a query command is the following: >> >> >> >> >> >> >> >> >> >> >> >> /** >> >> >> * 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 >> >> >> >> >> >> >> >> >> >> >> >> Jon Frias Inchausti >> >> >> >> >> >> Investigador >> >> >> >> >> >> Researcher >> >> >> >> >> >> >> >> >> >> >> >> UNIDAD DE SISTEMAS INDUSTRIALES / >> >> >> >> >> >> INDUSTRIAL SYSTEMS UNIT >> >> >> >> >> >> >> >> >> >> >> >> División Industria y Transporte / >> >> >> >> >> >> Industry and Transport Division >> >> >> >> >> >> >> >> >> >> >> >> TECNALIA >> >> >> >> >> >> Paseo Mikeletegi 7 - Parque Tecnológico >> >> >> >> >> >> E-20009 Donostia - San Sebastián (Gipuzkoa, Spain) >> >> >> >> >> >> Telf Industry & Transport Division: (+34) 943 105115 or 902 760 002 >> >> >> >> >> >> Telf Tecnalia Research & Innovation: (+34) 946 430 850 or 902 760 >> 000 >> >> >> >> >> >> Fax: (+34) 946 460 900 or 901 706 009 >> >> >> >> >> >> [email protected] >> >> >> >> >> >> www.tecnalia.com >> >> >> >> >> >> >> >> >> >> >> >> cid:[email protected] <http://www.facebook.com/Tecnalia >> > >> >> cid:[email protected] <http://twitter.com/tecnalia> >> >> cid:[email protected] < >> >> http://www.flickr.com/photos/tecnalia/sets/> >> >> cid:[email protected] < >> >> http://www.linkedin.com/company/tecnalia-research-&-innovation> >> >> cid:[email protected] <http://www.slideshare.net/tecnalia> >> >> cid:[email protected] < >> http://www.youtube.com/user/tecnaliaTV> >> >> cid:[email protected] < >> >> http://www.tecnalia.com/rss.php?lang=es> >> >> >> >> >> >> cid:[email protected] <http://www.tecnalia.com/> >> >> >> >> >> >> Este mensaje puede contener información confidencial o privilegiada. >> Si >> >> no eres el destinatario de este mensaje, notifícaselo por favor al >> >> remitente y bórralo sin reenviarlo o guardarlo dado que está legalmente >> >> prohibido. >> >> >> >> >> >> Mezu honek daukan informazioa isilpekoa edo pribilegiatua izan >> daiteke. >> >> Zuri zuzendua ez badago emaiozu, mesedez, horren berri igorleari eta >> ezaba >> >> ezazu bidali edo gorde gabe, legalki debekatua dago eta. >> >> >> >> >> >> This message may contain confidential, proprietary or legally >> >> privileged information. If you are not the intended recipient of this >> >> message, please notify it to the sender and delete without resending or >> >> backing it, as it is legally prohibited. >> >> >> >> >> >> cid:[email protected] favor, piensa en el medio >> >> ambiente antes de imprimir este e-mail. >> >> >> >> >> >> Mesedez pentsatu ingurugiroan e-mail hau imprimatu baino lehen. >> >> >> >> >> >> Please, consider the environment before printing this e-mail. >> >> >> >> >> >> >> >> >> >> >> >>
