• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: weird direct action behaviour -- am getting mangled URL sometimes
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: weird direct action behaviour -- am getting mangled URL sometimes


  • Subject: Re: weird direct action behaviour -- am getting mangled URL sometimes
  • From: OC <email@hidden>
  • Date: Sat, 24 Jan 2015 00:13:50 +0100

Chuck,

On 23. 1. 2015, at 23:59, Chuck Hill <email@hidden> wrote:
> You know, you really have excellent skills in finding very weird problems!  :-)

I am not sure whether it's something to be proud of, anyway! ;)

> I can’t think of where these would come from, other than a poorly written client.  Are you using Ajax on the page?  Is this something JS is doing?

Hmmm... I'm not using Ajax, but there is a JS, which can -- in some cases -- reload the page ()... let me see...

... alas, nope. It does not seem to be the culprit.

Well, I sort of solved it by checking whether the market ID is non-null and whether there's a market for the ID etc, silently returning null if not -- so hopefully, it won't harm much.

Thanks a lot!
OC

> On 2015-01-23, 6:05 AM, "OC" wrote:
>
> Hello there,
>
> just yesterday, I was asked to make sure an image read from the database gets always a fixed URL. Thus
>
> (i) I replaced my original HTML code
>
> ===
>   <wo:if condition="$sess.currentLanguageEnglish">
>     <wo:img data = "$sess.currentMarket.marketBannerDataEN" mimeType = "$sess.currentMarket.marketBannerMIMEEN" />
>   </wo:if><wo:else>
>     <wo:img data = "$sess.currentMarket.marketBannerDataCZ" mimeType = "$sess.currentMarket.marketBannerMIMECZ" />
>   </wo:else>
> ===
>
> by simple
>
> ===
>   <img src="$bannerImageURL"/>
> ===
>
> (ii) in the component code, I've added a method
>
> ===
>     String bannerImageURL() {
>         NSData id=sess.currentLanguageEnglish?sess.currentMarket.marketBannerDataEN:sess.currentMarket.marketBannerDataCZ
>         def url=context.directActionURLForActionNamed('banner',new NSDictionary([mkpk:sess.currentMarket.primaryKeyStringValue, size:id.length, lang:sess.currentLanguageEnglish?'EN':'CZ']), NO/*session ID*/)
>         println "BANNERURL: $url"
>         return url
>     }
> ===
>
> (iii) I've added an appropriate direct action
>
> ===
>     WOActionResults bannerAction() {
>         def mpk=request().formValueForKey('mkpk'),lang=request().formValueForKey('lang')
>         println "DA: reading $lang banner image for market $mpk..."
>         ERXEC ec=ERXEC.newEditingContext()
>         DBMarket market=EOUtilities.objectWithPrimaryKeyValue(ec,'DBMarket',mpk as Integer)
>         def mime=market."marketBannerMIME$lang",data=market."marketBannerData$lang"
>         WOResponse wor=new WOResponse()
>         wor.setHeader(mime,"content-type")
>         wor.setContent(data)
>         wor
>     }
> ===
>
> Most time, it works just as presumed, I'm getting logs like
>
> ===
> BANNERURL: /cgi-bin/WebObjects/REBOISx.woa/wa/banner?size=102614&mkpk=1000001&lang=CZ
> ...
> DA: reading CZ banner image for market 1000001...
> ===
>
> and the banner displays all right. So far so good.
>
> Now, though, I have checked the server logs, and there's lots of exceptions there like
>
> ===
> DA: reading null banner image for market null...
> 09:01:51.619 ERROR Exception caught: null
> Extra info: {
> ...
> "Headers" = {
> "remote_host" = "172.19.18.1";
> "server_software" = "Apache/2.2.24 (Unix) mod_ssl/2.2.24 OpenSSL/0.9.8y";
> "user-agent" = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5";
> "document_root" = "/Library/WebServer/Documents/rebois.cmkbk.cz";
> "server_name" = "rebois.cmkbk.cz";
> "accept" = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
> "x-webobjects-adaptor-version" = "Apache";
> "remote_addr" = "172.19.18.1";
> "host" = "rebois.cmkbk.cz";
> "x-webobjects-request-id" = "5475dfe90000004300001e15";
> "x-webobjects-request-method" = "GET";
> "server_admin" = "email@hidden";
> "server_port" = "80";
> "accept-encoding" = "gzip, deflate";
> "remote_port" = "50420";
> "script_filename" = "/cgi-bin";
> "accept-language" = "cs-cz";
> "connection" = "close";
> };
> "URL" = "/cgi-bin/WebObjects/REBOISx.woa/1/wa/banner?size=107683&amp;mkpk=1000001&amp;lang=CZ"";
> }
>        //log:er.extensions.appserver.ERXApplication [WorkerThread4]
> IllegalArgumentException: Attempt to insert null object into an  com.webobjects.foundation.NSDictionary.
>   at com.webobjects.foundation.NSDictionary.<init>(NSDictionary.java:254)
>   at com.webobjects.eoaccess.EOUtilities._primaryKeyDictionary(EOUtilities.java:372)
>   at com.webobjects.eoaccess.EOUtilities.objectWithPrimaryKeyValue(EOUtilities.java:431)
>      ... skipped 3 stack elements
>   at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
>   at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
>   at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.invoke(StaticMetaMethodSite.java:43)
>   at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.call(StaticMetaMethodSite.java:88)
>   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
>   at app.DirectAction.bannerAction(DirectAction.groovy:22)
> ===
>
> It's self-evident why the mangled URL fails, but has anybody an idea where the URL might come from?
>
> In whole my log, there is *no*
>
> "BANNERURL: /cgi-bin/WebObjects/REBOISx.woa/1"
>
> -- not once. All "BANNERURL" logs are OK (and followed by one OK "DA:..." log, too). These "1/wa/...&amp..." URLs must come from somewhere else ... well I don't know, but *not* from my bannerImageURL method :-O
>
> Can you see where they might come from? Would be grateful for any advice,
> OC
>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden


 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden


References: 
 >weird direct action behaviour -- am getting mangled URL sometimes (From: OC <email@hidden>)
 >Re: weird direct action behaviour -- am getting mangled URL sometimes (From: Chuck Hill <email@hidden>)

  • Prev by Date: Re: "temporary invisible" object in database?!?
  • Next by Date: Re: locking with more coordinators causes an exception?
  • Previous by thread: Re: weird direct action behaviour -- am getting mangled URL sometimes
  • Next by thread: locking with more coordinators causes an exception?
  • Index(es):
    • Date
    • Thread