That was it!!! I was actually creating a new instance of the cfc when I was
using <cfinvoke>. If I create a new instance using createObject() it also
works the way I intended. Thanks for all the help everyone!
BTW, do we know when this bug is expected to be fixed? It seems
like it's been around for a while.
Walt
-----Original Message-----
From: Nathan Dintenfass [SMTP:[EMAIL PROTECTED]
Sent: Thursday, July 03, 2003 2:03 AM
To: [EMAIL PROTECTED]
Subject: RE: [CFCDev] CFfile within a Component
One thing I think it's safe to say is that this is a page context bug
problem, not an issue between CFINVOKE and createObject(). That said, I
have found some strange behavior in a simple test I put together.
Attached are two files. One is a simple CFC designed to handle an upload
based loosely on the one Walter sent. The other is a test script that uses
the CFC.
The CFC always works when you have a fresh instance -- so, createObject() is
not your issue. However, the CFC SOMETIMES works with a persisted instance
and SOMETIMES does not. I could not believe it was happening, but on my
W2K, CFMXu3 server (using the JRun web server) I find inconsistent behavior,
even when repeating what seems like the exact same case multiple times. If
the request during which you upload the file is the request in which you
instantiate the CFC it works 100% of the time. It seems that if you
instantiate a "fresh" instance, then upload a file using that persisted,
unused instance, it works every time. After that, all bets are off.
I am no expert on the inner workings of CFMX or JVMs, but I suspect it has
something to do with the fact that a persisted CFC instance "holds on" to
the page context, and thus, the form scope. I can be merrily uploading
files with a persisted instance and suddenly I start getting null pointer
exceptions. I figured once they started they would not go away, but that
too did not seem to be true. Perhaps it is too late and more eyes will
expose a silly error in my test case, but I'd be curious to hear if others
have similar experiences.
My suggestion is that when doing file uploads in CFC methods you simply
create a new instance of that CFC during the request in which you are doing
your upload -- that should be fool-proof.
Also, I've seen this mentioned in other public forums, so I think it's safe
to say that there are rumors that Red Sky just might possibly fix the page
context problems once and for all ;)
- Nathan
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Behalf Of Sparrow-Hood, Walter
> Sent: Wednesday, July 02, 2003 8:57 PM
> To: [EMAIL PROTECTED]
> Subject: RE: [CFCDev] CFfile within a Component
>
>
> Not sure my last reply was clear:
>
> The error is not happening on the creatObject() but on a method call. But
> it only happens when I use obj.myObj.myMethod not when I use <cfInvoke> on
> the exact same method!
>
>
> Doing form = arguments.form didn't seem to make a difference.
>
>
>
>
>
> -----Original Message-----
> From: Nathan Dintenfass [SMTP:[EMAIL PROTECTED]
> Sent: Wednesday, July 02, 2003 11:10 PM
> To: [EMAIL PROTECTED]
> Subject: RE
> When you call createObject() and set your session variable, are
> you finding
> the error occurs: [CFCDev] CFfile within a Component
>
> This is likely the page context bug.
> even on the request in which you call createObject()? If
> so, then the page context bug is less likely, but if the error is only
> happening on subsequent pages then it's almost definitely the page context
> bug.
>
> When you pass in FORM as an argument, try doing this inside your function
> that does the file upload (before calling CFFILE):
>
> form = arguments.form
>
>
>
>
>
>
> > -----Original Message-----
> > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> > Behalf Of Sparrow-Hood, Walter
> > Sent: Wednesday, July 02, 2003 8:04 PM
> > To: [EMAIL PROTECTED]
> > Subject: RE: [CFCDev] CFfile within a Component
> >
> >
> > It's passes into the method as part of the form structure, i.e
> form.path.
> > It's passed in the same way whether I use <cfinvoke> or set the
> > component as
> > an object. Again, I've check out the path string and it works
> > fine when I
> > use <cfinvoke>!!
> > Walt
> >
> >
> >
> >
> > -----Original Message-----
> > From: Gary Menzel [SMTP:[EMAIL PROTECTED]
> > Sent: Wednesday, July 02, 2003 10:50 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: [CFCDev] CFfile within a Component
> >
> > > maybe it's just nothing, but is the space between the pound
> sign and the
> > > cffile in the query a problem?
> >
> > I would definitely be trying that first. I am pretty sure that CF
> > variable referencing needs the ## without whitespace (I could be wrong
> > though).
> >
> > The next question, though, is where is PATH set ? Is it passed into the
> > method or is defined globally somewhere ?
> >
> >
> > Gary Menzel
> > IT Operations Brisbane -+- ABN AMRO Morgans Limited
> > Level 29, 123 Eagle Street BRISBANE QLD 4000
> > PH: 07 333 44 828 FX: 07 3834 0828
> > ******************************************************************
> > **********
> > If this communication is not intended for you and you are not an
> > authorised
> > recipient of this email you are prohibited by law from dealing with or
> > relying on the email or any file attachments. This prohibition includes
> > reading, printing, copying, re-transmitting, disseminating,
> storing or in
> > any other way dealing or acting in reliance on the information. If you
> > have received this email in error, we request you contact ABN
> AMRO Morgans
> > Limited immediately by returning the email to [EMAIL PROTECTED]
> > and destroy the original. We will refund any reasonable costs associated
> > with notifying ABN AMRO Morgans. This email is confidential and
> > may contain
> > privileged client information. ABN AMRO Morgans has taken
> reasonable steps
> > to ensure the accuracy and integrity of all its communications,
> including
> > electronic communications, but accepts no liability for materials
> > transmitted. Materials may also be transmitted without the
> > knowledge of ABN
> > AMRO Morgans. ABN AMRO Morgans Limited its directors and
> employees do not
> > accept liability for the results of any actions taken or not on
> the basis
> > of the information in this report. ABN AMRO Morgans Limited and its
> > associates hold or may hold securities in the companies/trusts mentioned
> > herein. Any recommendation is made on the basis of our research of the
> > investment and may not suit the specific requirements of clients.
> > Assessments of suitability to an individual's portfolio can only be made
> > after an examination of the particular client's investments, financial
> > circumstances and requirements.
> > ******************************************************************
> > **********
> >
> > ----------------------------------------------------------
> > You are subscribed to cfcdev. To unsubscribe, send an email
> > to [EMAIL PROTECTED] with the word 'unsubscribe cfcdev'
> > in the message of the email.
> >
> > CFCDev is run by CFCZone (www.cfczone.org) and supported
> > by Mindtool, Corporation (www.mindtool.com).
> > ----------------------------------------------------------
> > You are subscribed to cfcdev. To unsubscribe, send an email
> > to [EMAIL PROTECTED] with the word 'unsubscribe cfcdev'
> > in the message of the email.
> >
> > CFCDev is run by CFCZone (www.cfczone.org) and supported
> > by Mindtool, Corporation (www.mindtool.com).
> >
>
> ----------------------------------------------------------
> You are subscribed to cfcdev. To unsubscribe, send an email
> to [EMAIL PROTECTED] with the word 'unsubscribe cfcdev'
> in the message of the email.
>
> CFCDev is run by CFCZone (www.cfczone.org) and supported
> by Mindtool, Corporation (www.mindtool.com).
> ----------------------------------------------------------
> You are subscribed to cfcdev. To unsubscribe, send an email
> to [EMAIL PROTECTED] with the word 'unsubscribe cfcdev'
> in the message of the email.
>
> CFCDev is run by CFCZone (www.cfczone.org) and supported
> by Mindtool, Corporation (www.mindtool.com).
> << File: test.cfm >> << File: uploader.cfc >>
----------------------------------------------------------
You are subscribed to cfcdev. To unsubscribe, send an email
to [EMAIL PROTECTED] with the word 'unsubscribe cfcdev'
in the message of the email.
CFCDev is run by CFCZone (www.cfczone.org) and supported
by Mindtool, Corporation (www.mindtool.com).