Re: [flexcoders] FDS/Hibernate - LazyInitializationException when writing AMF output

2007-02-16 Thread Dima Gutzeit
Hi,

You have to initialize the collections before AMF serializes them. The 
problem occurs since you closing Hibernate session without first 
initializing the arrays, and since you are using lazy initialization the 
problem arise.

You have two options :

1. Use lazy=false
2. Better one, is calling /Hibernate.initialize(your_array_reference);/ 
before you close the Hibernate session.

Regards,
Dima Gutzeit.

parkerwhirlow wrote:
>
> Hi again =)
>
> I've just started getting this exception inconsistently... sometimes
> it happens 3 times in a row, other times I can go all afternoon
> without getting it. Once the exception occurs, it will occur every
> time the client loads until FDS is restarted.
>
> Note this occurs on multiple collections. I tried setting the
> "offending" collection to lazy=false (in Hibernate), and the exception
> occurred on a different collection. I can't set every one of my
> collections to lazy=false. Especially since at this point, they HAVE
> to be lazy for the updateItem via hierarchical values to almost work.
>
> I also noticed that the collection does not necessarily need to have
> any items in it. (And possibly is caused specifically by NOT having
> any items in it, I can't tell for sure). The collection referenced in
> the exception below has no values, and there's another collection in
> that same class with values that doesn't seem to cause the exception.
>
> See below the hibernate mapping, and exception output when this
> occurs. (Note there are no FDS managed associations for this collection)
>
> Thanks for any insight you have as to what is causing this.
>
> PW
> _
>
> 
> 
> 
> 
>  inverse="false"
> cascade="all-delete-orphan" >
> 
> 
> 
> 
> 
> ...
> 
>
> 10:19:42,093 WARN ProxyWarnLog - Narrowing proxy to class
> config.test.Adult - this operation breaks ==
> 10:19:44,687 ERROR LazyInitializationException - failed to lazily
> initialize a collection of role: config.test.Adult.children, no
> session or session was closed
> org.hibernate.LazyInitializationException: failed to lazily initialize
> a collection of role: config.test.Adult.children, no session or
> session was closed
> at
> org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
> at
> org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.j
> ava:350)
> at
> org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:97)
> at
> org.hibernate.collection.PersistentSet.size(PersistentSet.java:139)
> at java.util.ArrayList.(ArrayList.java:133)
> at
> flex.messaging.io.ArrayCollection.(ArrayCollection.java:44)
> at
> flex.messaging.io.amf.Amf3Output.writeArrayCollection(Amf3Output.java:407)
> at
> flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:147)
> at
> flex.messaging.io.amf.Amf3Output.writeObjectProperty(Amf3Output.java:215)
> at
> flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:495)
> at
> flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:467)
> at
> flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:165)
> at
> flex.messaging.io.amf.Amf3Output.writeObjectArray(Amf3Output.java:730)
> at
> flex.messaging.io.amf.Amf3Output.writeAMFArray(Amf3Output.java:386)
> at
> flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:151)
> at
> flex.messaging.io.ArrayCollection.writeExternal(ArrayCollection.java:97)
> at
> flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:485)
> at
> flex.messaging.io.amf.Amf3Output.writeArrayCollection(Amf3Output.java:414)
> at
> flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:147)
> at
> flex.messaging.io.amf.Amf3Output.writeObjectProperty(Amf3Output.java:215)
> at
> flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:495)
> at
> flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:467)
> at
> flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:165)
> at
> flex.messaging.io.amf.Amf3Output.writeObjectArray(Amf3Output.java:730)
> at
> flex.messaging.io.amf.Amf3Output.writeAMFArray(Amf3Output.java:386)
> at
> flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:151)
> at
> flex.messaging.io.ArrayCollection.writeExternal(ArrayCollection.java:97)
> at
> flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:485)
> at
> flex.messaging.io.amf.Amf3Output.writeArrayCollection(Amf3Output.java:414)
> at
> flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:147)
> at
> flex.messaging.io.amf.Amf3Output.writeObjectProperty(Amf3Output.java:215)
> at
> flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:495)
> at
> flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:467)
> at
> flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:165)
> at
> flex.messaging.io.amf.Amf3Output.writeObjectArray(Amf3Outpu

[flexcoders] FDS/Hibernate - LazyInitializationException when writing AMF output

2007-02-16 Thread parkerwhirlow
Hi again =)

I've just started getting this exception inconsistently... sometimes
it happens 3 times in a row, other times I can go all afternoon
without getting it. Once the exception occurs, it will occur every
time the client loads until FDS is restarted.

Note this occurs on multiple collections. I tried setting the
"offending" collection to lazy=false (in Hibernate), and the exception
occurred on a different collection. I can't set every one of  my
collections to lazy=false. Especially since at this point, they HAVE
to be lazy for the updateItem via hierarchical values to almost work.

I also noticed that the collection does not necessarily need to have
any  items in it. (And possibly is caused specifically by NOT having
any items in it, I can't tell for sure). The collection referenced in
the exception below has no values, and there's another collection in
that same class with values that doesn't seem to cause the exception.

See below the hibernate mapping, and exception output when this
occurs. (Note there are no FDS managed associations for this collection)

Thanks for any insight you have as to what is causing this.

PW
_








   



...



10:19:42,093  WARN ProxyWarnLog - Narrowing proxy to class
config.test.Adult - this operation breaks ==
10:19:44,687 ERROR LazyInitializationException - failed to lazily
initialize a collection of role: config.test.Adult.children, no
session or session was closed
org.hibernate.LazyInitializationException: failed to lazily initialize
a collection of role: config.test.Adult.children, no session or
session was closed
at
org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationException(AbstractPersistentCollection.java:358)
at
org.hibernate.collection.AbstractPersistentCollection.throwLazyInitializationExceptionIfNotConnected(AbstractPersistentCollection.j
ava:350)
at
org.hibernate.collection.AbstractPersistentCollection.readSize(AbstractPersistentCollection.java:97)
at
org.hibernate.collection.PersistentSet.size(PersistentSet.java:139)
at java.util.ArrayList.(ArrayList.java:133)
at
flex.messaging.io.ArrayCollection.(ArrayCollection.java:44)
at
flex.messaging.io.amf.Amf3Output.writeArrayCollection(Amf3Output.java:407)
at
flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:147)
at
flex.messaging.io.amf.Amf3Output.writeObjectProperty(Amf3Output.java:215)
at
flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:495)
at
flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:467)
at
flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:165)
at
flex.messaging.io.amf.Amf3Output.writeObjectArray(Amf3Output.java:730)
at
flex.messaging.io.amf.Amf3Output.writeAMFArray(Amf3Output.java:386)
at
flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:151)
at
flex.messaging.io.ArrayCollection.writeExternal(ArrayCollection.java:97)
at
flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:485)
at
flex.messaging.io.amf.Amf3Output.writeArrayCollection(Amf3Output.java:414)
at
flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:147)
at
flex.messaging.io.amf.Amf3Output.writeObjectProperty(Amf3Output.java:215)
at
flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:495)
at
flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:467)
at
flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:165)
at
flex.messaging.io.amf.Amf3Output.writeObjectArray(Amf3Output.java:730)
at
flex.messaging.io.amf.Amf3Output.writeAMFArray(Amf3Output.java:386)
at
flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:151)
at
flex.messaging.io.ArrayCollection.writeExternal(ArrayCollection.java:97)
at
flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:485)
at
flex.messaging.io.amf.Amf3Output.writeArrayCollection(Amf3Output.java:414)
at
flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:147)
at
flex.messaging.io.amf.Amf3Output.writeObjectProperty(Amf3Output.java:215)
at
flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:495)
at
flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:467)
at
flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:165)
at
flex.messaging.io.amf.Amf3Output.writeObjectArray(Amf3Output.java:730)
at
flex.messaging.io.amf.Amf3Output.writeAMFArray(Amf3Output.java:386)
at
flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:151)
at
flex.messaging.io.amf.Amf3Output.writeObjectProperty(Amf3Output.java:215)
at
flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:495)
at
flex.messaging.io.am