It doesn't compile if you do that! :-)  Man this is frustrating. 
Even though it is a nested pojo, the attribute of the sibling object 
is a String.

--- In flexcoders@yahoogroups.com, "Peter Farland" <[EMAIL PROTECTED]> 
wrote:
> Hmm, do you need to add curly braces as I have below?
> 
> <mx:DataGridColumn columnName="{siblingObject.myValue}" 
headerText="myV"
> />
> 
> 
> 
> -----Original Message-----
> From: flexcoders@yahoogroups.com 
[mailto:[EMAIL PROTECTED] On
> Behalf Of Kevin Ewok
> Sent: Monday, June 13, 2005 5:00 PM
> To: flexcoders@yahoogroups.com
> Subject: [flexcoders] Re: Web browser crashing on remote method 
call
> 
> The 2 constructors for my MainPojo and SiblingPojo (for the Java 
> classes and AS classes) both had only a single empty constructor 
> like below. Again, thanks for your help.
> 
> AS---> public function SiblingPojo(){}
> Java-> public SiblingPojo(){}
> 
> --- In flexcoders@yahoogroups.com, "Peter Farland" <[EMAIL PROTECTED]> 
> wrote:
> > 
> > Can you post the constructor code for the AS representation of 
the 
> POJO
> > classes?
> > 
> > 
> >  
> > 
> > -----Original Message-----
> > From: flexcoders@yahoogroups.com 
> [mailto:[EMAIL PROTECTED] On
> > Behalf Of Kevin Ewok
> > Sent: Monday, June 13, 2005 4:14 PM
> > To: flexcoders@yahoogroups.com
> > Subject: [flexcoders] Re: Web browser crashing on remote method 
> call
> > 
> > yes. we're going to plan to stub it in as a constants until 2.0 
is 
> > released. However, I'm still having display problems. From the 
> > gateway debug, I can see that my MainPOJO and all of it's nested 
> > objects have data, yet it displays nothing in it's cell when I 
try 
> > to access it directly or via the labelFunc. I can see in the 
> > debugger that the item has the data. Really weird why it will 
not 
> > display. I removed the registered AS classes to let Flex handle 
> the 
> > serialization and instantion on it's own, but still no data.
> > 
> > Both of these DG calls render an empty cell.
> > 
> > <mx:DataGridColumn columnName="siblingObject.myValue" 
> > headerText="myV" />
> > 
> > ------------------------------------------------------
> > 
> > <mx:DataGridColumn headerText="C#" labelFunction="myLabelFunc" />
> > 
> > which calls this method......
> > 
> > function myLabelFunc(item) : String
> > {
> >    return item.getSiblingObject().getMyValue();
> > }
> > 
> > 
> > --- In flexcoders@yahoogroups.com, "Peter Farland" 
<[EMAIL PROTECTED]> 
> > wrote:
> > > 
> > > Unfortunately we did not remove statics from the Java Bean 
> > serialization
> > > rules of RemoteObject in Flex 1.5. It's a known issue and will 
> be 
> > fixed
> > > going forward. As a work around for now would it be possible 
to 
> > move the
> > > static final to another context? Such as a class called 
> > StaticConstants?
> > > 
> > > 
> > > 
> > > -----Original Message-----
> > > From: flexcoders@yahoogroups.com 
> > [mailto:[EMAIL PROTECTED] On
> > > Behalf Of Kevin Ewok
> > > Sent: Monday, June 13, 2005 11:49 AM
> > > To: flexcoders@yahoogroups.com
> > > Subject: [flexcoders] Re: Web browser crashing on remote 
method 
> > call
> > > 
> > > Pete-
> > >  Thanks for your help...I've finally identified the problem 
(but 
> > > still not the solution). Although I did have a reference of my 
> > > siblingPojo back to my MainPojo, commenting out that code did 
> not 
> > > solve the problem. However, my SiblingObject has an attribute 
> that 
> > > is part of a class with static variables. So to give you an 
> > example, 
> > > my SiblingPojo has an attribute like this:
> > > 
> > > private Status status = null;
> > > 
> > > When I construct my data objects in the back-end, I set this 
> > > variable using it's own static data:
> > > siblingPojo.setStatus(Status.CONFIRMED);
> > > 
> > > Here's the Java code of the class that the serialization is 
> > hanging 
> > > up on. This is a pretty standard j2ee design pattern. You'll 
see 
> > > that I only have a private constructor. This is what ensures 
> that 
> > > the variable data will be constant throughout the app. If I 
were 
> > to 
> > > add a public constructor, the class would not compile (since 
my 
> > > variable 'type' could technically never get 
instantiated)...I'm 
> > > guessing the serialzation is hanging b/c there is no public 
> empty  
> > > constructor? 
> > > 
> > > have you ever come across a situation like this before?
> > > 
> > > Thanks again for your help.
> > > 
> > > public class Status{
> > > 
> > >   private final String type;
> > > 
> > >   private Status(String type) {
> > >     this.type = type;
> > >   }
> > > 
> > >   public String toString() {
> > >     return type.toString();
> > >   }
> > > 
> > >   public static final Status UNASSIGNED = new Status("UNA");
> > >   public static final Status ASSIGNED = new Status("ASG");
> > >   public static final Status ACKNOWLEDGED = new Status("ACK");
> > > }
> > > 
> > > 
> > > 
> > > --- In flexcoders@yahoogroups.com, "Peter Farland" 
> <[EMAIL PROTECTED]> 
> > > wrote:
> > > > It sounds like you might be in an infinite loop somewhere on 
> the
> > > > client... a common way to get into such a loop is when 
> > processing 
> > > object
> > > > graphs with circular references.
> > > > 
> > > > From your MXML code listing below (i.e. it shows direct 
> binding 
> > of 
> > > the
> > > > RO result as a data provider) I don't see that you're doing 
any
> > > > recursive processing of the result so I'd propose that 
you've 
> > > discovered
> > > > a bug with DataGrid when bound to object graphs that have 
> > circular
> > > > references.
> > > > 
> > > > How, you might ask, would you have a circular reference in 
an 
> > > object
> > > > graph from a RemoteObject result? Without seeing any of the 
> code 
> > > for the
> > > > object graph I can only guess that somewhere in your sibling 
> > > instances
> > > > you have a pointer to a parent main object (or perhaps some 
> > > circular
> > > > dependency between sibs, whatever). 
> > > > 
> > > > When serializing objects over AMF the client and server will 
> > > attempt to
> > > > restore references between complex objects, for example, 
Just 
> > say 
> > > we
> > > > have two objects, A and B where B has a reference back to 
its 
> > > parent A:
> > > > 
> > > > A -> B -> A
> > > > 
> > > > RemoteObject will serialize the "A" property of B as a 
> reference 
> > > to the
> > > > instance A, rather than reserialize A again. This allows the 
> > > client and
> > > > server to support circularly referenced object graphs and 
> avoids
> > > > infinite recursion on serialization/deserialization. 
> > > > 
> > > > To prove that this is indeed happening you can turn on Debug 
> > level
> > > > logging for the RemoteObject gateway in the
> > > > /WEB-INF/flex/gateway.config.xml file, restart the flex 
> server, 
> > > and then
> > > > watch the server console for AMF traffic, you should be able 
> to 
> > > see the
> > > > "by-reference" serializaiton entries in the log.
> > > > 
> > > > Note that RemoteObject is doing the right thing here - it 
> might 
> > > just be
> > > > that DataGrid can't handle the circularity of the object 
graph.
> > > > 
> > > > Let me know what you find out.
> > > > 
> > > > Pete
> > > 
> > > 
> > > 
> > > 
> > > 
> > >  
> > > Yahoo! Groups Links
> > 
> > 
> > 
> > 
> >  
> > Yahoo! Groups Links
> 
> 
> 
> 
>  
> Yahoo! Groups Links





 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Reply via email to