Hello again,

I found a workaround for this bug :  I just changed my Graph class to

public class Graph implements Serializable {
  public Object datas;

  public void setDatas(byte[] datas) {
    this.datas = datas.clone();
  }

  public byte[] getDatas() {
   return (byte[])datas;
  }
}

And it works fine !!

Laurent

----- Original Message -----
From: "Vidur Dhanda" <[EMAIL PROTECTED]>
To: "Orion-Interest" <[EMAIL PROTECTED]>
Sent: Tuesday, November 28, 2000 1:38 PM
Subject: Re: Error in ORList (Re: byte array OR mapping...)


> I had posted something similar as a bug (sorry, can't recall the number;
if you
> want I can try and look) and received a message several days ago that it
had
> been fixed in 1.4.5.  Perhaps, when that version comes out your error will
also
> go away.
>
> Vidur
>
> Laurent Cornelis wrote:
>
> > Yes I know that a byte is a primitive, but byte array (byte[]) is an
object.
> > In my Entity Bean, this array represent a graphic (a jpg), one of my
entity
> > bean can have more than one graphic (I represent it now with a List of
> > Graph).
> >
> > ------------
> >
> > I changed my EJB to :
> >
> > public class ResultBean implements EntityBean {
> >
> >   [...]
> >
> >   public String id;
> >   [...]
> >   public List graphs;
> >   [...]
> > }
> >
> > ------------
> >
> > Here is my Graph Object :
> >
> > public class Graph implements Serializable {
> >   public byte[] datas;
> > }
> >
> > ------------
> >
> > And in my orion-ejb-jar.xml :
> >
> > <cmp-field-mapping name="graphs">
> >     <list-mapping table="graphics">
> >      <value-mapping type="ubiquity.rapids.ejb.result.Graph">
> >       <cmp-field-mapping>
> >        <fields />
> >       </cmp-field-mapping>
> >      </value-mapping>
> >    </list-mapping>
> > </cmp-field-mapping>
> >
> > ------------------
> >
> > Now, when I deploy :
> >
> > <snip>
> >
> > Auto-creating table: create table results (id CHAR(255) not null primary
> > key, matlabCommand CHAR(255) null, numericResult BINARY null,
graphCommand
> > CHAR(255) null, generatedOn timestamp null, producedBy CHAR(255) null)
> >
> > Orion Launcher create table results (id CHAR(255) not null primary key,
> > matlabCommand CHAR(255) null, numericResult BINARY null, graphCommand
> > CHAR(255) null, generatedOn timestamp null, producedBy CHAR(255) null)
> >
> > Auto-creating table: create table graphics (id CHAR(255) not null, datas
> > BINARY null)
> >
> > Orion Launcher create table graphics (id CHAR(255) not null, datas
BINARY
> > null)
> >
> > Found 7 syntax errors in "C:/orion/Graph_ORList20.java":
> >
> >     33.                                         [B __fieldTemp21;
> >                                                 <>
> >
> > *** Syntax: Unexpected symbol ignored
> >
> >     92.
> > if((([B)null) == null) insertAllStatement.setNull(1,
> > java.sql.Types.LONGVARBINARY);
> >                                                                      <>
> >
> > *** Syntax: Unexpected symbol ignored
> >
> >     93.                                                         else
> > insertAllStatement.setBinaryStream(1, new
> > java.io.ByteArrayInputStream((([B)null)), (([B)null).length);
> >                                                              <>
> >
> > *** Syntax: Unexpected symbol ignored
> >
> >     93.                                                         else
> > insertAllStatement.setBinaryStream(1, new
> > java.io.ByteArrayInputStream((([B)null)), (([B)null).length);
> >
> > <>
> >
> > *** Syntax: Unexpected symbol ignored
> >
> >    117.
> > if((([B)null) == null) insertAllStatement.setNull(1,
> > java.sql.Types.LONGVARBINARY);
> >                                                                      <>
> >
> > *** Syntax: Unexpected symbol ignored
> >
> >    118.                                                         else
> > insertAllStatement.setBinaryStream(1, new
> > java.io.ByteArrayInputStream((([B)null)), (([B)null).length);
> >
> >                                                               <>
> >
> > *** Syntax: Unexpected symbol ignored
> >
> >    118.                                                         else
> > insertAllStatement.setBinaryStream(1, new
> > java.io.ByteArrayInputStream((([B)null)), (([B)null).length);
> >
> > <>
> >
> > *** Syntax: Unexpected symbol ignored
> > Error compiling
file:/C:/orion/applications/rapids/rapids-ejb-result.jar:
> > Error in source
> >
> > </snip>
> >
> > -----------------
> >
> > All these errors in Graph_ORList20.java are just because Orion generate
[B
> > insteed of byte[], so the compiler don't understand it... My question is
:
> > Can I write my own Graph_ORList and tell Orion where it is or how can I
> > correct this error ? (Is this an Orion bug ??)
> >
> > Thanks
> >
> > Laurent
> >
> > ----- Original Message -----
> > From: "Tim Drury" <[EMAIL PROTECTED]>
> > To: "Orion-Interest" <[EMAIL PROTECTED]>
> > Sent: Monday, November 27, 2000 4:47 PM
> > Subject: RE: byte array OR mapping...
> >
> > > >
> > > > The '[B' is the String returned when I do
byte[].getClass().toString()
> > >
> > > I don't think you want to do that.  Firstly, a byte is not a class.
> > > byte is a primitive like int, float, char, etc. which are not classes
> > > in Java (maybe you are a Smalltalk programmer?).
> > >
> > > Second, getClass().toString() isn't correct; you should have used
> > > getClass().getName() to get the name of a class.  A Class is an
> > > object, and toString() usually returns a serialized version of
> > > that object (usually, not always).
> > >
> > > You should probably take your byte[] and place it in a class that
> > > implements java.io.Serializable.  Most of the database mappings
> > > support placing that into a blob:
> > >
> > > <type-mapping="java.io.Serializable" name="blob">
> > >
> > > -tim
> > >
>
> --
> Vidur Dhanda
> Active Solutions
> tel: 617/566-1252
> [EMAIL PROTECTED]
> www.active-solutions-inc.com
>
>
>


Reply via email to