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

Reply via email to