On 27/07/2008, at 2:59 PM, Rams wrote:

Check this out...

        public Application() {
                NSLog.out.appendln("Welcome to " + name() + " !");
NSLog.out.appendln("before setting frameworksBaseURL(): " + frameworksBaseURL());
                setFrameworksBaseURL("/WebObjects/myapp.woa/Frameworks");
NSLog.out.appendln("after setting frameworksBaseURL()" + frameworksBaseURL());
        }

Outputs /Library/WebObjects/Logs/myapp-instance

Jul 27 00:07:04 myapp[2004] (ERXNSLogLog4jBridge.java:40) INFO NSLog - Welcome to myapp ! Jul 27 00:07:04 myapp[2004] (ERXNSLogLog4jBridge.java:40) INFO NSLog - before setting frameworksBaseURL(): /WebObjects/Frameworks Jul 27 00:07:04 myapp[2004] (ERXNSLogLog4jBridge.java:40) INFO NSLog - after setting frameworksBaseURL()/WebObjects/myapp.woa/ Frameworks

This appears to be a bug in WebObjects 5.4.3 because the exact same code works fine in WebObjects 5.3.3. Note that your code above only works because of the logging statement which calls frameworksBaseURL() BEFORE you call setFrameworksBaseURL(). For my application I couldn't use your solution because I didn't know the app install directory at compile time, only at run time. Hence I modified it to be.

        public Application() {
                NSLog.out.appendln("Welcome to " + name() + " !");
                /* ** put your initialization code in here ** */
                frameworksBaseURL();
if ( System.getProperty("WOFrameworksBaseURL") != null ) setFrameworksBaseURL(System.getProperty("WOFrameworksBaseURL"));
        }

To identify the bug I added some more logging and overrode some WOApplication methods. As you can see the first call to frameworksBaseURL() in WebObjects 5.4.3 actually calls setFrameworksBaseURL("/WebObjects/Frameworks"). This does not happen in WebObjects 5.3.3

public class Application extends WOApplication {
        public static void main(String[] argv) {
                WOApplication.main(argv, Application.class);
        }

        public Application() {
                NSLog.out.appendln("Welcome to " + name() + " !");
                /* ** put your initialization code in here ** */
if ( System.getProperty("WOFrameworksBaseURL") != null ) setFrameworksBaseURL(System.getProperty("WOFrameworksBaseURL"));
                frameworksBaseURL();
if ( System.getProperty("WOFrameworksBaseURL") != null ) setFrameworksBaseURL(System.getProperty("WOFrameworksBaseURL"));
                frameworksBaseURL();
        }

        @Override
        public String frameworksBaseURL() {
NSLog.out.appendln("frameworksBaseURL() pre super: WOProperties.TheFrameworksBaseURL = " + WOProperties.TheFrameworksBaseURL); NSLog.out.appendln("frameworksBaseURL() pre super: System.getProperty(WOFrameworksBaseURL) = " + System.getProperty("WOFrameworksBaseURL"));
                String s = super.frameworksBaseURL();
NSLog.out.appendln("frameworksBaseURL() post super: WOProperties.TheFrameworksBaseURL = " + WOProperties.TheFrameworksBaseURL); NSLog.out.appendln("frameworksBaseURL() post super: System.getProperty(WOFrameworksBaseURL) = " + System.getProperty("WOFrameworksBaseURL")); NSLog.out.appendln("frameworksBaseURL() post super: super.frameworksBaseURL() = " + s);
                NSLog.out.appendln("");               
                return s;
        }

        @Override
        public void setFrameworksBaseURL(String string) {
NSLog.out.appendln("setFrameworksBaseURL(String string): change from " + WOProperties.TheFrameworksBaseURL + " to " + string);
                super.setFrameworksBaseURL(string);
        }
        
}




WEBOBJECTS 5.4.3 - SHOWS BUG

[2009-1-11 11:26:8 EST] <main> WOFrameworksBaseURL=/WebObjects/ WeboTest.woa/Frameworks
...
[2009-1-11 11:26:8 EST] <main> WebObjects version = 5.4.3
...
Welcome to WeboTest !
setFrameworksBaseURL(String string): change from null to /WebObjects/ WeboTest.woa/Frameworks frameworksBaseURL() pre super: WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/ Frameworks frameworksBaseURL() pre super: System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/ Frameworks setFrameworksBaseURL(String string): change from /WebObjects/ WeboTest.woa/Frameworks to /WebObjects/Frameworks <--WHO'S CALLING THIS frameworksBaseURL() post super: WOProperties.TheFrameworksBaseURL = /WebObjects/Frameworks frameworksBaseURL() post super: System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/ Frameworks frameworksBaseURL() post super: super.frameworksBaseURL() = /WebObjects/Frameworks

setFrameworksBaseURL(String string): change from /WebObjects/ Frameworks to /WebObjects/WeboTest.woa/Frameworks frameworksBaseURL() pre super: WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/ Frameworks frameworksBaseURL() pre super: System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/ Frameworks frameworksBaseURL() post super: WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/ Frameworks frameworksBaseURL() post super: System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/ Frameworks frameworksBaseURL() post super: super.frameworksBaseURL() = /WebObjects/WeboTest.woa/ Frameworks

WEBOBJECTS 5.3.3 - NO BUG

[2009-01-11 11:32:02 EST] <main> WOFrameworksBaseURL=/WebObjects/ WeboTest.woa/Frameworks
...
Welcome to WeboTest !
setFrameworksBaseURL(String string): change from null to /WebObjects/ WeboTest.woa/Frameworks frameworksBaseURL() pre super: WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/ Frameworks frameworksBaseURL() pre super: System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/ Frameworks frameworksBaseURL() post super: WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/ Frameworks frameworksBaseURL() post super: System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/ Frameworks frameworksBaseURL() post super: super.frameworksBaseURL() = /WebObjects/WeboTest.woa/ Frameworks

setFrameworksBaseURL(String string): change from /WebObjects/ WeboTest.woa/Frameworks to /WebObjects/WeboTest.woa/Frameworks frameworksBaseURL() pre super: WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/ Frameworks frameworksBaseURL() pre super: System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/ Frameworks frameworksBaseURL() post super: WOProperties.TheFrameworksBaseURL = /WebObjects/WeboTest.woa/ Frameworks frameworksBaseURL() post super: System.getProperty(WOFrameworksBaseURL) = /WebObjects/WeboTest.woa/ Frameworks frameworksBaseURL() post super: super.frameworksBaseURL() = /WebObjects/WeboTest.woa/ Frameworks


Cheers

Tim
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-deploy mailing list      (Webobjects-deploy@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-deploy/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to