Re[6]: [JBoss-dev] URLConnection and opened files

2003-01-16 Thread Scott M Stark
There was still a problem here in that the jboss.server.home.dir needs to be set before
any log4j calls are made or else  the boot.log that is generated in between startup and
the time the Log4jService is  started is dumped to /log/boot.log. I broke out the
initialization of the base system properties from the homeURL so that the homeURL
can be initialized after the URLStreamHandlerFactory has been set.


Scott Stark
Chief Technology Officer
JBoss Group, LLC


- Original Message - 
From: Jeremy Boynes [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Wednesday, January 15, 2003 11:42 AM
Subject: Re[6]: [JBoss-dev] URLConnection and opened files


 Alex
 
 The light went on and I'm now wondering if I triggered this with the changes
 for deployment scanning.
 
 IIRC the code used to generate new URLs from the File paths returned during
 the scan, basically using the URL(String) constructor with the path.
 
 It now creates URLs relative to the location being scanned using the
 URL(URL, String) version. The context URL is the one obtained from
 ServerConfig.getServerHomeURL().
 
 If this is set before the custom handler factory is set up, then all
 deployed URLs would be using Sun's handler :-(
 
 I think this is happening because ServerImpl.doInit() creates the
 ServerConfigImpl before setting up the URLStreamHandlerFactory.
 
 Would it make sense just to move the factory set-up to the very start of
 doInit()?
 
 Jeremy
 



---
This SF.NET email is sponsored by: Thawte.com
Understand how to protect your customers personal information by implementing
SSL on your Apache Web Server. Click here to get our FREE Thawte Apache 
Guide: http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0029en
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



Re[6]: [JBoss-dev] URLConnection and opened files

2003-01-15 Thread Scott M Stark
Somehow the URL handlers cache has the sun file protocol handler from the start,
at least as early as a debugger will let me stop in the URL.getURLStreamHandler
method. You need to flush this handler cache by setting a URLStreamHandlerFactory.
The change to make your example work is to install a factory that always returns
null:

Tests 1371cat tstProtocol.java
import java.io.*;
import java.net.*;

class tstProtocol
{
   static class NullFactory implements java.net.URLStreamHandlerFactory
   {
  public URLStreamHandler createURLStreamHandler(final String protocol)
  {
 return null;
  }
   }

public static void main(String[] args) throws Exception
{
   // set handler pkgs
   System.out.println(java.protocol.handler.pkgs:  + System.getProperty(java.
protocol.handler.pkgs));

   // Flush the handlers cache by setting a noop factory
   URL.setURLStreamHandlerFactory(new NullFactory());

   URL url = new URL(file, null, args[0]);
   System.out.println(url:  + url);
   URLConnection urlCon = url.openConnection();
   System.out.println(connection class:  + urlCon.getClass().getName());

   url = new URL(other, null, args[0]);
   System.out.println(url:  + url);
   urlCon = url.openConnection();
   System.out.println(connection class:  + urlCon.getClass().getName());
}
}

Tests 1369java -cp .;/tmp/JBoss/jboss-3.0.5/client/jboss-common-client.jar
-Djava.protocol.handler.pkgs=org.jboss.net.protocol tstProtocol /tmp
java.protocol.handler.pkgs: org.jboss.net.protocol
url: file:/tmp
connection class: org.jboss.net.protocol.file.FileURLConnection
java.net.MalformedURLException: unknown protocol: other
at java.net.URL.init(URL.java:302)
at java.net.URL.init(URL.java:219)
at java.net.URL.init(URL.java:238)
at tstProtocol.main(tstProtocol.java:27)


Scott Stark
Chief Technology Officer
JBoss Group, LLC


- Original Message - 
From: Alex Loubyansky [EMAIL PROTECTED]
To: Scott M Stark [EMAIL PROTECTED]
Sent: Tuesday, January 14, 2003 9:48 PM
Subject: Re[6]: [JBoss-dev] URLConnection and opened files


 Yes, I thought about it too. There are two cases:
 - the thread creating URL can't find custom handlers;
 - Sun's handler was somehow initialized/used before (before setting the
 property or somehow else?)
 
 But I can't understand why my standalone test doesn't work. I set
 property in the command line and my handlers are in the classpath.
 I don't see any chance for Sun's handler to be used first.
 
 Ok, I'll update JBoss-3.0 and see.
 
 Thanks,
 alex



---
This SF.NET email is sponsored by: Take your first step towards giving 
your online business a competitive advantage. Test-drive a Thawte SSL 
certificate - our easy online guide will show you how. Click here to get 
started: http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0027en
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



Re[6]: [JBoss-dev] URLConnection and opened files

2003-01-15 Thread Alex Loubyansky
Here are my findings.

First, JBoss-3.0 is ok. The problem is in JBoss-3.2 and HEAD.

Second, I found the cause.
The resources we want to load with our custom handlers
through class loaders must be added to the classpath AFTER the
(custom) URLStreamHandlerFactory is setup.

URLClassLoaders hold their URLs.
The URLs created before the custom URLStreamHandlerFactory is set up
have Sun's handler. System class loader is a subclass of the
URLClassLoader. Thus, its URLs have Sun's handler. (It seems to me even
if java.protocol.handler.pkgs is setup. Is it a VM's bug or mine?)

Suppose we attempt to load resource that was in the classpath before
the custom handler factory was setup. The URL for the resource is
constructed with: URL(URL context, String spec).
where the context URL comes from the class loader with Sun's handler.
Then resource's URL's handler is assigned context.handler.
So, it doesn't matter whether the custom handler factory is setup.

alex

Tuesday, January 14, 2003, 9:49:45 PM, you wrote:

SMS Oh, I now remeber looking at this but I can't remember the context. There
SMS is a cache of handlers as the URL level. If the file protocol is referenced
SMS before the custom JBoss handler is available then the default Sun one will
SMS be used. Is there a difference between 3.0 and 3.2 with regard to when the
SMS custom protocol handlers are installed? I'll check later today.


SMS 
SMS Scott Stark
SMS Chief Technology Officer
SMS JBoss Group, LLC
SMS 

SMS - Original Message - 
SMS From: Alex Loubyansky [EMAIL PROTECTED]
SMS To: Scott M Stark [EMAIL PROTECTED]
SMS Sent: Tuesday, January 14, 2003 7:07 AM
SMS Subject: Re[4]: [JBoss-dev] URLConnection and opened files


 I'm a bit confused. I wrote a simple standalone test.
 
 - main
 public static void main(String[] args) throws Exception
 {
// set handler pkgs
System.out.println(java.protocol.handler.pkgs:  + 
System.getProperty(java.protocol.handler.pkgs));
 
URL url = new URL(file, null, args[0]);
System.out.println(url:  + url);
URLConnection urlCon = url.openConnection();
System.out.println(connection class:  + urlCon.getClass().getName());
 
url = new URL(other, null, args[0]);
System.out.println(url:  + url);
urlCon = url.openConnection();
System.out.println(connection class:  + urlCon.getClass().getName());
 }
 
 - run
 java -Djava.protocol.handler.pkgs=org.avoka.test.files.protocol -classpath %cp% 
org.avoka.test.files.FilesTest build.xml
 
 - output
 java.protocol.handler.pkgs: org.avoka.test.files.protocol
 url: file:build.xml
 connection class: sun.net.www.protocol.file.FileURLConnection
 url: other:build.xml
 connection class: org.avoka.test.files.protocol.other.OtherURLConnection
 
 I do have org.avoka.test.files.protocol.file.Handler and
 org.avoka.test.files.protocol.file.FileURLConnection on the classpath.
 My file.Handler isn't called. Am I missing something?
 
 This same thing happens with JBoss-3.2 and HEAD but not JBoss-3.0 (my
 3.0 is not up to date).
 
 JDK1.3.1_05, J2SDK1.4.0
 Win2K
 
 Thanks,
 alex




---
This SF.NET email is sponsored by: Take your first step towards giving 
your online business a competitive advantage. Test-drive a Thawte SSL 
certificate - our easy online guide will show you how. Click here to get 
started: http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0027en
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



Re[6]: [JBoss-dev] URLConnection and opened files

2003-01-15 Thread Jeremy Boynes
Alex

The light went on and I'm now wondering if I triggered this with the changes
for deployment scanning.

IIRC the code used to generate new URLs from the File paths returned during
the scan, basically using the URL(String) constructor with the path.

It now creates URLs relative to the location being scanned using the
URL(URL, String) version. The context URL is the one obtained from
ServerConfig.getServerHomeURL().

If this is set before the custom handler factory is set up, then all
deployed URLs would be using Sun's handler :-(

I think this is happening because ServerImpl.doInit() creates the
ServerConfigImpl before setting up the URLStreamHandlerFactory.

Would it make sense just to move the factory set-up to the very start of
doInit()?

Jeremy

 -Original Message-
 From: [EMAIL PROTECTED]
 [mailto:[EMAIL PROTECTED]]On Behalf Of Alex
 Loubyansky
 Sent: Wednesday, January 15, 2003 5:21 AM
 To: Scott M Stark
 Subject: Re[6]: [JBoss-dev] URLConnection and opened files


 Here are my findings.

 First, JBoss-3.0 is ok. The problem is in JBoss-3.2 and HEAD.

 Second, I found the cause.
 The resources we want to load with our custom handlers
 through class loaders must be added to the classpath AFTER the
 (custom) URLStreamHandlerFactory is setup.

 URLClassLoaders hold their URLs.
 The URLs created before the custom URLStreamHandlerFactory is set up
 have Sun's handler. System class loader is a subclass of the
 URLClassLoader. Thus, its URLs have Sun's handler. (It seems to me even
 if java.protocol.handler.pkgs is setup. Is it a VM's bug or mine?)

 Suppose we attempt to load resource that was in the classpath before
 the custom handler factory was setup. The URL for the resource is
 constructed with: URL(URL context, String spec).
 where the context URL comes from the class loader with Sun's handler.
 Then resource's URL's handler is assigned context.handler.
 So, it doesn't matter whether the custom handler factory is setup.

 alex




---
This SF.NET email is sponsored by: A Thawte Code Signing Certificate 
is essential in establishing user confidence by providing assurance of 
authenticity and code integrity. Download our Free Code Signing guide:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0028en
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



Re[6]: [JBoss-dev] URLConnection and opened files

2003-01-15 Thread Scott M Stark
Yes, the setup of the URL handlers should be the very first thing done in doInit.
There is nothing in that layer that can rely on ServerConfig information as this
is just standard URL protocol handler extension stuff.


Scott Stark
Chief Technology Officer
JBoss Group, LLC


- Original Message - 
From: Jeremy Boynes [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Wednesday, January 15, 2003 11:42 AM
Subject: Re[6]: [JBoss-dev] URLConnection and opened files


 Alex
 
 The light went on and I'm now wondering if I triggered this with the changes
 for deployment scanning.
 
 IIRC the code used to generate new URLs from the File paths returned during
 the scan, basically using the URL(String) constructor with the path.
 
 It now creates URLs relative to the location being scanned using the
 URL(URL, String) version. The context URL is the one obtained from
 ServerConfig.getServerHomeURL().
 
 If this is set before the custom handler factory is set up, then all
 deployed URLs would be using Sun's handler :-(
 
 I think this is happening because ServerImpl.doInit() creates the
 ServerConfigImpl before setting up the URLStreamHandlerFactory.
 
 Would it make sense just to move the factory set-up to the very start of
 doInit()?
 
 Jeremy



---
This SF.NET email is sponsored by: A Thawte Code Signing Certificate 
is essential in establishing user confidence by providing assurance of 
authenticity and code integrity. Download our Free Code Signing guide:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0028en
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



RE: Re[6]: [JBoss-dev] URLConnection and opened files

2003-01-15 Thread Jeremy Boynes
OK - changed this in 3.2 and HEAD and I can now delete a .war archive I
couldn't before.

Alex, can you let me know if this worked for you. Sorry about the hassle.


 Yes, the setup of the URL handlers should be the very first thing
 done in doInit.
 There is nothing in that layer that can rely on ServerConfig
 information as this
 is just standard URL protocol handler extension stuff.




---
This SF.NET email is sponsored by: A Thawte Code Signing Certificate 
is essential in establishing user confidence by providing assurance of 
authenticity and code integrity. Download our Free Code Signing guide:
http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0028en
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development



Re[6]: [JBoss-dev] URLConnection and opened files

2003-01-14 Thread Alex Loubyansky
Yes, I thought about it too. There are two cases:
- the thread creating URL can't find custom handlers;
- Sun's handler was somehow initialized/used before (before setting the
property or somehow else?)

But I can't understand why my standalone test doesn't work. I set
property in the command line and my handlers are in the classpath.
I don't see any chance for Sun's handler to be used first.

Ok, I'll update JBoss-3.0 and see.

Thanks,
alex

Tuesday, January 14, 2003, 9:49:45 PM, you wrote:

SMS Oh, I now remeber looking at this but I can't remember the context. There
SMS is a cache of handlers as the URL level. If the file protocol is referenced
SMS before the custom JBoss handler is available then the default Sun one will
SMS be used. Is there a difference between 3.0 and 3.2 with regard to when the
SMS custom protocol handlers are installed? I'll check later today.


SMS 
SMS Scott Stark
SMS Chief Technology Officer
SMS JBoss Group, LLC
SMS 

SMS - Original Message - 
SMS From: Alex Loubyansky [EMAIL PROTECTED]
SMS To: Scott M Stark [EMAIL PROTECTED]
SMS Sent: Tuesday, January 14, 2003 7:07 AM
SMS Subject: Re[4]: [JBoss-dev] URLConnection and opened files


 I'm a bit confused. I wrote a simple standalone test.
 
 - main
 public static void main(String[] args) throws Exception
 {
// set handler pkgs
System.out.println(java.protocol.handler.pkgs:  + 
System.getProperty(java.protocol.handler.pkgs));
 
URL url = new URL(file, null, args[0]);
System.out.println(url:  + url);
URLConnection urlCon = url.openConnection();
System.out.println(connection class:  + urlCon.getClass().getName());
 
url = new URL(other, null, args[0]);
System.out.println(url:  + url);
urlCon = url.openConnection();
System.out.println(connection class:  + urlCon.getClass().getName());
 }
 
 - run
 java -Djava.protocol.handler.pkgs=org.avoka.test.files.protocol -classpath %cp% 
org.avoka.test.files.FilesTest build.xml
 
 - output
 java.protocol.handler.pkgs: org.avoka.test.files.protocol
 url: file:build.xml
 connection class: sun.net.www.protocol.file.FileURLConnection
 url: other:build.xml
 connection class: org.avoka.test.files.protocol.other.OtherURLConnection
 
 I do have org.avoka.test.files.protocol.file.Handler and
 org.avoka.test.files.protocol.file.FileURLConnection on the classpath.
 My file.Handler isn't called. Am I missing something?
 
 This same thing happens with JBoss-3.2 and HEAD but not JBoss-3.0 (my
 3.0 is not up to date).
 
 JDK1.3.1_05, J2SDK1.4.0
 Win2K
 
 Thanks,
 alex




---
This SF.NET email is sponsored by: Take your first step towards giving 
your online business a competitive advantage. Test-drive a Thawte SSL 
certificate - our easy online guide will show you how. Click here to get 
started: http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0027en
___
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development