openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Walter Rugora <m...@sudus.eu>
Subject Re: Suddenly byte-array returns NULL
Date Sun, 29 May 2011 02:51:41 GMT
Dear Rick,

Thanks for your response!!

It is OpenJPA 2.1 and derby version 10.3.2.1 (comes with javadb on
Ubuntu). But I have to admit that the project was running on OpenJPA
1.2.x once and that a different derby version was used as well.
I now did a consistency check against all tables with derby ij, as well
I compressed them all ... all good.
Unfortunately I cannot recall if the image-field issue appeared as soon
as I swap OpenJPA version or database. But I just tried it with OpenJPA
1.2 again and NULL is still returned for the image. Beside the image
member of that entity class I have other members and they all get read
out properly.

Appreciate any kind of help!!

Thanks,
Walter

On Sat, 2011-05-28 at 07:10 -0500, Rick Curtis wrote:
> What version of OpenJPA and what DB are you running against?
> 
> On Sat, May 28, 2011 at 5:40 AM, Walter Rugora <mist@sudus.eu> wrote:
> 
> > Hi there,
> >
> > so far I never had issues to read out of an array of bytes to display an
> > image. Within the entity class the image field is specified as:
> >    @Lob
> >    private byte[] image;
> >
> > I read and write an image via:
> > public Image getImage() {
> >        Data.EM.refresh(this);
> >        InputStream in = new ByteArrayInputStream(this.image);
> >        BufferedImage bu = null;
> >        try {
> >            bu = javax.imageio.ImageIO.read(in);
> >        } catch (Exception e) {
> >        }
> >
> >        return bu;
> >    }
> >
> >    public void setImage(Image image) {
> >        try {
> >            BufferedImage bu = new BufferedImage(image.getWidth(null),
> > image.getHeight(null), BufferedImage.TYPE_INT_RGB);
> >            Graphics2D g2 = bu.createGraphics();
> >            g2.drawImage(image, 0, 0, null);
> >            ByteArrayOutputStream baos = new ByteArrayOutputStream();
> >            ImageIO.write(bu, "png", baos);
> >            this.image = baos.toByteArray();
> >            baos.close();
> >        } catch (IOException ex) {
> >
> > Logger.getLogger(Imagereference.class.getName()).log(Level.SEVERE, null,
> > ex);
> >        }
> >    }
> >
> > What is disturbing is that I suddenly cannot read the image from the
> > derby database via OpenJPA. What I get in return as soon as I invoke
> > getImage is an exception (Exception in thread "AWT-EventQueue-0"
> > java.lang.IndexOutOfBoundsException: Index: 0, Size: 0). When debugging
> > it shows that getImage (this.image is NULL) returns Null. However, when
> > I read out the data of the image column in the database table it is
> > clearly not null but filled with an array of bytes. Btw. all other
> > fields can be accessed without any problem via OpenJPA.
> >
> > Did someone experienced a similar problem?
> >
> > Thanks,
> > Walter
> >
> >
> 
> 



Mime
View raw message