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