Re: dumpy goodness

2007-11-14 Thread Brian Kotek
That's the first time you mentioned any of this, so I was going on your
previous statement that the code was "causing a loop to create the error
over and over again".

In any event, if you try to serialize a gigantic struct, that will generate
a really gigantic string. So if you keep reserializing it, or if the struct
is very large and nested with lots of data, that string could easily end up
triggering an out of memory error. I've seen the same thing happen trying to
build up very large XML strings.

On Nov 13, 2007 8:02 PM, Brad Wood <[EMAIL PROTECTED]> wrote:

> I didn't pull that number out of thin air.  I counted the errors.
> The proc was looping over accounting line items and concatenating their
> invoice codes together for display.  Usually there are no more than 5
> items to iterate over.  Due to some poorly configured pricing setup on a
> test order, there were 439 items being looped over.  The field holding
> the concatenation was a varchar(255).  The average item code was 8
> characters long, meaning it would have began erroring after the 32nd
> item leaving exactly 407 items which would have errored with "string or
> binary data would be truncated".  So I think 400 is a pretty darn good
> guess.
>
> When I ran the proc in query analyzer I confirmed that was about the
> number of errors being returned.
>
> ~Brad
>
> ===
>
> You're saying this as if you didn't just pull the number 400 out of thin
> air.
>
> 

~|
Get involved in the latest ColdFusion discussions, product
development sharing, and articles on the Adobe Labs wiki.
http://labs/adobe.com/wiki/index.php/ColdFusion_8

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293281
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4


RE: dumpy goodness

2007-11-13 Thread Dave Watts
> Ahh-- thanks for the explanation.  So I take it that the 
> maximum amount of memory is allocated to each thread whether 
> it needs it or not and that's all it gets whether it needs 
> more or not.  Wouldn't this be the opposite of how Windows 
> works-- where each process is only given what it needs at 
> first, but a process can ask for more memory from the OS?

A fixed amount of memory is allocated to all Java threads. There's no
maximum or minimum per thread. The same is basically true in Windows:

http://msdn2.microsoft.com/en-us/library/ms686774.aspx

While Windows programs can ask the OS for more memory, that's heap memory,
not stack.

> So, if I allow for 15 concurrent threads to execute, then I 
> would need for the heap size to be at least 15 times the 
> stack size?  I'm sure it's more complicated than that though...

No, the heap size is unrelated to the stack size. I would expect it to be
significantly larger than the stack size per thread, because objects are
stored in the heap. All the variables your programs create, among other
things - that's all on the heap. In Java, primitive types are stored in the
stack, but if I recall correctly, all CF's variables are actually Java
objects.

Dave Watts, CTO, Fig Leaf Software
http://www.figleaf.com/

Fig Leaf Software provides the highest caliber vendor-authorized
instruction at our training centers in Washington DC, Atlanta,
Chicago, Baltimore, Northern Virginia, or on-site at your location.
Visit http://training.figleaf.com/ for more information!


~|
Enterprise web applications, build robust, secure 
scalable apps today - Try it now ColdFusion Today
ColdFusion 8 beta - Build next generation apps

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293269
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4


RE: dumpy goodness

2007-11-13 Thread Brad Wood
I didn't pull that number out of thin air.  I counted the errors.
The proc was looping over accounting line items and concatenating their
invoice codes together for display.  Usually there are no more than 5
items to iterate over.  Due to some poorly configured pricing setup on a
test order, there were 439 items being looped over.  The field holding
the concatenation was a varchar(255).  The average item code was 8
characters long, meaning it would have began erroring after the 32nd
item leaving exactly 407 items which would have errored with "string or
binary data would be truncated".  So I think 400 is a pretty darn good
guess.

When I ran the proc in query analyzer I confirmed that was about the
number of errors being returned.

~Brad

===

You're saying this as if you didn't just pull the number 400 out of thin
air. 

~|
Create robust enterprise, web RIAs.
Upgrade to ColdFusion 8 and integrate with Adobe Flex
http://www.adobe.com/products/coldfusion/flex2/?sdid=RVJP

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293260
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4


RE: dumpy goodness

2007-11-13 Thread Brad Wood
Ahh-- thanks for the explanation.  So I take it that the maximum amount
of memory is allocated to each thread whether it needs it or not and
that's all it gets whether it needs more or not.  Wouldn't this be the
opposite of how Windows works-- where each process is only given what it
needs at first, but a process can ask for more memory from the OS?

So, if I allow for 15 concurrent threads to execute, then I would need
for the heap size to be at least 15 times the stack size?  I'm sure it's
more complicated than that though...

~Brad

-Original Message-
From: James Holmes [mailto:[EMAIL PROTECTED] 
Sent: Monday, November 12, 2007 6:33 PM
To: CF-Talk
Subject: Re: dumpy goodness

Stack is the memory each thread gets to itself out of the heap and a
recursive function called many times (or a lot of other nested calls)
will overflow the stack as you are seeing. Beware of increasing the
stack - each thread takes this memory and if, for example, you double
the stack size you will instantly double the memory requirement of
your application for a given number of threads (which is fine as long
as you can increase the heap size accordingly).

~|
ColdFusion 8 - Build next generation apps
today, with easy PDF and Ajax features - download now
http://download.macromedia.com/pub/labs/coldfusion/cf8_beta_whatsnew_052907.pdf

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293259
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4


RE: dumpy goodness

2007-11-12 Thread Dave Watts
> Even if I am talking about a structure nested 
> 400 levels deep, how big is that really?

Bigger than is required by most programs, I suspect.

> Heck, I could manually output a small structure 
> 400 times with pen and paper in less time than 
> half an hour. 

Could you also serialize/deserialize the WDDX in half an hour? That might make 
a mildly entertaining Youtube video.

> Furthermore, call me crazy but I expect a well 
> coded application to be aware of its limits and 
> bow out gracefully rather than error.

You are crazy.

ColdFusion is better thought of as an application server - a glorified compiler 
- not an application in its own right. If it encounters an error, its job is to 
fail and report the error.

It's your job, as an application programmer, to make your applications fail 
gracefully, not the compiler's job.

> I assume you are _not_ referring to the heap 
> size?

Your assumption is correct.

Dave Watts, CTO, Fig Leaf Software 



~|
Create robust enterprise, web RIAs.
Upgrade to ColdFusion 8 and integrate with Adobe Flex
http://www.adobe.com/products/coldfusion/flex2/?sdid=RVJP

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293181
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4


Re: dumpy goodness

2007-11-12 Thread Brian Kotek
On Nov 12, 2007 6:46 PM, Brad Wood <[EMAIL PROTECTED]> wrote:

>
> Naturally most everything has a limit, but I guess I would have expected
> the limits of CF to not be so limited.  Even if I am talking about a
> structure nested 400 levels deep, how big is that really?  With modern
> computers and programming languages how long should it actually take to
> recurse 400 levels?  It ran for up to half an hour without returning
> before I killed it.  Heck, I could manually output a small structure 400
> times with pen and paper in less time than half an hour.  Furthermore,
> call me crazy but I expect a well coded application to be aware of its
> limits and bow out gracefully rather than error.


You're saying this as if you didn't just pull the number 400 out of thin
air. Do you actually have any idea how large the variable you were
attempting to dump actually was? If the error was causing infinite
recursion, I would expect nothing BUT an out of memory error. What else
could happen?


~|
ColdFusion is delivering applications solutions at at top companies 
around the world in government.  Find out how and where now
http://www.adobe.com/cfusion/showcase/index.cfm?event=finder&productID=1522&loc=en_us

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293176
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4


Re: dumpy goodness

2007-11-12 Thread James Holmes
Stack is the memory each thread gets to itself out of the heap and a
recursive function called many times (or a lot of other nested calls)
will overflow the stack as you are seeing. Beware of increasing the
stack - each thread takes this memory and if, for example, you double
the stack size you will instantly double the memory requirement of
your application for a given number of threads (which is fine as long
as you can increase the heap size accordingly).

On Nov 13, 2007 8:46 AM, Brad Wood <[EMAIL PROTECTED]> wrote:
> > There are always limits. Why should this be any different?
>
> Naturally most everything has a limit, but I guess I would have expected
> the limits of CF to not be so limited.  Even if I am talking about a
> structure nested 400 levels deep, how big is that really?  With modern
> computers and programming languages how long should it actually take to
> recurse 400 levels?  It ran for up to half an hour without returning
> before I killed it.  Heck, I could manually output a small structure 400
> times with pen and paper in less time than half an hour.  Furthermore,
> call me crazy but I expect a well coded application to be aware of its
> limits and bow out gracefully rather than error.
>
> > I would guess that, like most other memory allocation in Java, you can
> probably increase the stack size in jvm.config.
>
> Hmmm, that's an interesting idea to play with.  I assume you are _not_
> referring to the heap size?
>
> ~Brad
>
> 

~|
ColdFusion is delivering applications solutions at at top companies 
around the world in government.  Find out how and where now
http://www.adobe.com/cfusion/showcase/index.cfm?event=finder&productID=1522&loc=en_us

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293175
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


RE: dumpy goodness

2007-11-12 Thread Brad Wood
> There are always limits. Why should this be any different?

Naturally most everything has a limit, but I guess I would have expected
the limits of CF to not be so limited.  Even if I am talking about a
structure nested 400 levels deep, how big is that really?  With modern
computers and programming languages how long should it actually take to
recurse 400 levels?  It ran for up to half an hour without returning
before I killed it.  Heck, I could manually output a small structure 400
times with pen and paper in less time than half an hour.  Furthermore,
call me crazy but I expect a well coded application to be aware of its
limits and bow out gracefully rather than error.  

> I would guess that, like most other memory allocation in Java, you can
probably increase the stack size in jvm.config.

Hmmm, that's an interesting idea to play with.  I assume you are _not_
referring to the heap size?

~Brad

~|
ColdFusion 8 - Build next generation apps
today, with easy PDF and Ajax features - download now
http://download.macromedia.com/pub/labs/coldfusion/cf8_beta_whatsnew_052907.pdf

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293171
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


RE: dumpy goodness

2007-11-12 Thread Mark A Kruger
Brad,

Regarding WDDX I have some (admittedly hazy) recollection as to its origin
and development that I gained from using it to port stock quotes from CF to
Java, ASP, Perl and PHP. Here's what I remember - but take it with a grain
of salt since I'm pulling this out of my a...erear. 

WDDX is a pretty old standard going all the way back to CF 4. It was
originally developed by the Allaire guy (an fellow who's name escapes me - I
had great difficulty pronouncing it anyway:) who was responsible for most of
the CF original engine. He used it in an ingenious fashion to marshal data
back and forth between various internal modules of CF and decided it should
be exposed externally so he implemented CFWDDX. 

Since it's original intent was superseded by advances in serialization I
suspect that it is not longer used like that internal. It has not changed a
great deal from those days. Certainly the standard is the same since the
late 90s. It is a very useful and light weight way to retain objects in a
flat format (exactly as you are using it) but I would not expect it to get
much attention from the current development effort of CF. I suspect it's
left in there as a legacy and I'm guessing that it frustrates some of the
Java gurus tasked with porting the CF code from the old C++ days... It's
just a guess :) 

Maybe Ben Forta or one of the other gurus who sometimes monitor this list
can shed some lite on it or correct my foggy recollection.

I like what you are doing with WDDX and I get the idea - I just think that
WDDX itself might be a weak link in the chain. Having said that - the case
you mentioned where an SP is throwing multiple nested errors certainly must
be an exception. In most cases I think it would work quite well.

-Mark

-Original Message-
From: Brad Wood [mailto:[EMAIL PROTECTED] 
Sent: Monday, November 12, 2007 2:20 PM
To: CF-Talk
Subject: RE: dumpy goodness

> My guess would be that the SQL code behind the error is quite large

That much did turn out to be true.


> pushes WDDX beyond it's buffer limit. In the old days you couldn't
build a
> packet bigger than 64k (or something like that). 


That sort of makes sense (but not really-- I would have expected  more from
CF than that).  That wouldn't explain why dumping it gave me a 500 NULL
unless it was SUUPER huge.  I've dumped some meaty result sets before
without trouble.  I guess the different was how far it was
nested-- several hundred levels deep.  The individual structs weren't too
big probably-- just deep.


> Out of curiosity - what is the purpose of serializing the cfcatch
object?

Like I said-- for error logging.  We have a pretty cool system of CFC's for
logging errors as well as other processes in our system.  We log Java errors
(from our Java team's apps), CF errors, and JS errors (via JavaScript try
catches that call an error logging web service).  We capture who did it,
when they did it, what server they were on, what version of browser they
were using, the full cfcatch object (or JavaScript error object), the form
and url scope and a couple of other things.  A scheduled job E-mails out all
of our application's errors every 15 minutes to a group of people to monitor
them and put in bug fixes if necessary.  That way we can report on who is
getting errors, what they are, and when.  
Since cfcatch is a complex object, it needs to be serialized for storage in
the database.

~Brad



~|
ColdFusion is delivering applications solutions at at top companies 
around the world in government.  Find out how and where now
http://www.adobe.com/cfusion/showcase/index.cfm?event=finder&productID=1522&loc=en_us

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293169
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


RE: dumpy goodness

2007-11-12 Thread Dave Watts
> I'm just left with the question of-- Why couldn't CF handle 
> it?  Is there a limit to how deep structures can be nested?  
> I'm still inclined to think that the 
> "java.lang.StackOverflowError" is more of a bug.  Yes, yes-- 
> had better SQL error handling been in place, my errors 
> wouldn't have been so
> large-- but who's to say I won't run into this again and have 
> a good reason for it?
> 
> Thoughts?

There are always limits. Why should this be any different?

I would guess that, like most other memory allocation in Java, you can
probably increase the stack size in jvm.config.

Dave Watts, CTO, Fig Leaf Software
http://www.figleaf.com/

Fig Leaf Software provides the highest caliber vendor-authorized
instruction at our training centers in Washington DC, Atlanta,
Chicago, Baltimore, Northern Virginia, or on-site at your location.
Visit http://training.figleaf.com/ for more information!


~|
Enterprise web applications, build robust, secure 
scalable apps today - Try it now ColdFusion Today
ColdFusion 8 beta - Build next generation apps

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293168
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


RE: dumpy goodness

2007-11-12 Thread Brad Wood
> My guess would be that the SQL code behind the error is quite large 

That much did turn out to be true.


> pushes WDDX beyond it's buffer limit. In the old days you couldn't
build a
> packet bigger than 64k (or something like that). 


That sort of makes sense (but not really-- I would have expected  more
from CF than that).  That wouldn't explain why dumping it gave me a 500
NULL unless it was SUUPER huge.  I've dumped some meaty result sets
before without trouble.  I guess the different was how far it was
nested-- several hundred levels deep.  The individual structs weren't
too big probably-- just deep.


> Out of curiosity - what is the purpose of serializing the cfcatch
object?

Like I said-- for error logging.  We have a pretty cool system of CFC's
for logging errors as well as other processes in our system.  We log
Java errors (from our Java team's apps), CF errors, and JS errors (via
JavaScript try catches that call an error logging web service).  We
capture who did it, when they did it, what server they were on, what
version of browser they were using, the full cfcatch object (or
JavaScript error object), the form and url scope and a couple of other
things.  A scheduled job E-mails out all of our application's errors
every 15 minutes to a group of people to monitor them and put in bug
fixes if necessary.  That way we can report on who is getting errors,
what they are, and when.  
Since cfcatch is a complex object, it needs to be serialized for storage
in the database.

~Brad

~|
Get involved in the latest ColdFusion discussions, product
development sharing, and articles on the Adobe Labs wiki.
http://labs/adobe.com/wiki/index.php/ColdFusion_8

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293149
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


RE: dumpy goodness

2007-11-12 Thread Mark A Kruger
My guess would be that the SQL code behind the error is quite large and
pushes WDDX beyond it's buffer limit. In the old days you couldn't build a
packet bigger than 64k (or something like that). I'm not sure if that is
still a limitation but I suspect it is. Try dumping each of the individual
cfcatch keys instead (cfcatch.type, cfcatch.message, cfcatch.detail etc).
Out of curiosity - what is the purpose of serializing the cfcatch object?

-Mark

-Original Message-
From: Brad Wood [mailto:[EMAIL PROTECTED] 
Sent: Monday, November 12, 2007 11:45 AM
To: CF-Talk
Subject: dumpy goodness

Something a little weird this morning.  We use Fusebox and have a site-wide
error handler which takes the cfcatch object, wddx's it and logs it to our
database.  This usually only takes a second or two to process.

 

This morning SeeFusion E-mailed me about some long running requests.  I
looked into it and a user kept refreshing a page which was calling an
erroring stored proc-- "string or binary data would be truncated".  No
biggie- we get that error often if some lazy SQL programmer doesn't check
the column sizes of his temp tables.  

 

This was the weird thing though-the pages would run for up to half an hour
processing this line of code:

 



 

And when I tried to E-mail myself the cfcatch object by dropping a cfdump
into a cfmail, I would immediately get a "500 NULL" reply.

I've only gotten those when trying to serialize incredibly huge structures.
My guess is, the cfcatch object is hideously huge-but how?
Why?"  Since when?

 

Since I can't look at it, I don't know what's in it.  I can cfloop over it
as a collection and output the key names, but I think I have some sort of
endless nesting which would take a recursive function to get at and would
probably error just like the cfdump did.  Funny thing is-memory usage isn't
high at all.  Not even remotely.

 

A quick look at my server.log file showed this error:

 

java.lang.StackOverflowError

 

Ok, go figure.  A glance at the SeeFusion stack trace showed this:

 

The top of the trace said this:

 

"jrpp-94" runnable

- locked <283> (a sun.misc.Launcher$ExtClassLoader)

- locked <284> (a sun.misc.Launcher$AppClassLoader)

- locked <272> (a java.lang.Class)

at java.lang.ClassLoader.loadClass(ClassLoader.java:286)

at java.lang.ClassLoader.loadClass(ClassLoader.java:282)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)

at java.lang.ClassLoader.loadClass(ClassLoader.java:235)

at java.beans.Introspector.instantiate(Introspector.java:1466)

at
java.beans.Introspector.findExplicitBeanInfo(Introspector.java:406)

at java.beans.Introspector.(Introspector.java:355)

at java.beans.Introspector.getBeanInfo(Introspector.java:220)

at java.beans.Introspector.getBeanInfo(Introspector.java:206)

at
coldfusion.wddx.BeanSerializer.writeObject(BeanSerializer.java:48)

at
coldfusion.wddx.WddxOutputStream.writeObject(WddxOutputStream.java:310)

at
coldfusion.wddx.BeanSerializer.writeObject(BeanSerializer.java:40)

 

and was followed by *800* lines this:

 

at
coldfusion.wddx.BeanSerializer.writeObject(BeanSerializer.java:120)

at
coldfusion.wddx.WddxOutputStream.writeObject(WddxOutputStream.java:310)

 

Any ideas on how I can determine what is causing an error detail structure
so large it can't be serialized, or dumped without a stack overflow?  Is
that a bug in CF?

How come this has never happened before that I have ever seen until today?
I can reproduce it on more than one server.

 

~Brad





~|
Get involved in the latest ColdFusion discussions, product
development sharing, and articles on the Adobe Labs wiki.
http://labs/adobe.com/wiki/index.php/ColdFusion_8

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293142
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


Re: dumpy goodness

2007-11-12 Thread Brian Kotek
You probably have some kind of nested circular reference in what is being
dumped, which essentially will generate an infinite loop.

On Nov 12, 2007 12:45 PM, Brad Wood <[EMAIL PROTECTED]> wrote:

> Something a little weird this morning.  We use Fusebox and have a
> site-wide error handler which takes the cfcatch object, wddx's it and
> logs it to our database.  This usually only takes a second or two to
> process.
>
>
>
> This morning SeeFusion E-mailed me about some long running requests.  I
> looked into it and a user kept refreshing a page which was calling an
> erroring stored proc-- "string or binary data would be truncated".  No
> biggie- we get that error often if some lazy SQL programmer doesn't
> check the column sizes of his temp tables.
>
>
>
> This was the weird thing though-the pages would run for up to half an
> hour processing this line of code:
>
>
>
> 
>
>
>
> And when I tried to E-mail myself the cfcatch object by dropping a
> cfdump into a cfmail, I would immediately get a "500 NULL" reply.
>
> I've only gotten those when trying to serialize incredibly huge
> structures.  My guess is, the cfcatch object is hideously huge-but how?
> Why?"  Since when?
>
>
>
> Since I can't look at it, I don't know what's in it.  I can cfloop over
> it as a collection and output the key names, but I think I have some
> sort of endless nesting which would take a recursive function to get at
> and would probably error just like the cfdump did.  Funny thing
> is-memory usage isn't high at all.  Not even remotely.
>
>
>
> A quick look at my server.log file showed this error:
>
>
>
> java.lang.StackOverflowError
>
>
>
> Ok, go figure.  A glance at the SeeFusion stack trace showed this:
>
>
>
> The top of the trace said this:
>
>
>
> "jrpp-94" runnable
>
>- locked <283> (a sun.misc.Launcher$ExtClassLoader)
>
>- locked <284> (a sun.misc.Launcher$AppClassLoader)
>
>- locked <272> (a java.lang.Class)
>
>at java.lang.ClassLoader.loadClass(ClassLoader.java:286)
>
>at java.lang.ClassLoader.loadClass(ClassLoader.java:282)
>
>at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
>
>at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
>
>at java.beans.Introspector.instantiate(Introspector.java:1466)
>
>at
> java.beans.Introspector.findExplicitBeanInfo(Introspector.java:406)
>
>at java.beans.Introspector.(Introspector.java:355)
>
>at java.beans.Introspector.getBeanInfo(Introspector.java:220)
>
>at java.beans.Introspector.getBeanInfo(Introspector.java:206)
>
>at
> coldfusion.wddx.BeanSerializer.writeObject(BeanSerializer.java:48)
>
>at
> coldfusion.wddx.WddxOutputStream.writeObject(WddxOutputStream.java:310)
>
>at
> coldfusion.wddx.BeanSerializer.writeObject(BeanSerializer.java:40)
>
>
>
> and was followed by *800* lines this:
>
>
>
>at
> coldfusion.wddx.BeanSerializer.writeObject(BeanSerializer.java:120)
>
>at
> coldfusion.wddx.WddxOutputStream.writeObject(WddxOutputStream.java:310)
>
>
>
> Any ideas on how I can determine what is causing an error detail
> structure so large it can't be serialized, or dumped without a stack
> overflow?  Is that a bug in CF?
>
> How come this has never happened before that I have ever seen until
> today?  I can reproduce it on more than one server.
>
>
>
> ~Brad
>
>
>
> 

~|
Enterprise web applications, build robust, secure 
scalable apps today - Try it now ColdFusion Today
ColdFusion 8 beta - Build next generation apps

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293137
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4


RE: dumpy goodness

2007-11-12 Thread Brad Wood
Update on this.  I ran the proc which was erroring in query analyzer and
found there was not just one "string or binary data would be truncated"
error-- There was several HUNDRED nested errors being returned.  Looks
like some bad data on this order (in large amounts) and lack of  SQL
try/catches (proc was originally developed in SQL Server 2000) was
causing a loop to create that error over and over again.

So, I guess this clears up why my error object was so big.  I'm just
left with the question of-- Why couldn't CF handle it?  Is there a limit
to how deep structures can be nested?  I'm still inclined to think that
the "java.lang.StackOverflowError" is more of a bug.  Yes, yes-- had
better SQL error handling been in place, my errors wouldn't have been so
large-- but who's to say I won't run into this again and have a good
reason for it?

Thoughts?

CFMX 7.0.2 Standard Linux.

~Brad

-Original Message-
From: Brad Wood [mailto:[EMAIL PROTECTED] 
Sent: Monday, November 12, 2007 11:45 AM
To: CF-Talk
Subject: dumpy goodness

Something a little weird this morning.  We use Fusebox and have a
site-wide error handler which takes the cfcatch object, wddx's it and
logs it to our database.  This usually only takes a second or two to
process.

 

~|
Get the answers you are looking for on the ColdFusion Labs
Forum direct from active programmers and developers.
http://www.adobe.com/cfusion/webforums/forum/categories.cfm?forumid-72&catid=648

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:293135
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4