You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2003/10/08 17:50:31 UTC

DO NOT REPLY [Bug 23675] New: - Ajp13Connector contains code that works only on JDK1.3+

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23675>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23675

Ajp13Connector contains code that works only on JDK1.3+

           Summary: Ajp13Connector contains code that works only on JDK1.3+
           Product: Tomcat 4
           Version: 4.1.27
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Connector:JK/AJP (deprecated)
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: ed.randall@ingenotech.com


When using JDK1.2.2 and Apache 1.3 connected to Tomcat via mod_jk/AJP13, 
the servlet hangs and you get the following error:-

java.lang.NoSuchMethodError: java.net.Socket: method setKeepAlive(Z)V not found
	at org.apache.ajp.tomcat4.Ajp13Connector.run(Compiled Code)
	at java.lang.Thread.run(Thread.java:479)

Tomcat 4 claims to work on any platform using JDK1.2 or higher;  Unfortunately
the call to Socket.setKeepAlive prevents this, since setKeepAlive is a method
that only came into existance with JDK1.3, this causes a problem on platforms
for which JDK1.2 is the best available or where maybe JDK1.2 has to be used for
some other reason.

I have successfully tested the following patch to 
jakarta-tomcat-connectors-4.1.27-src/
jk/java/org/apache/ajp/tomcat4/Ajp13Connector.java 
with JDKs 1.2.2, 1.3 and 1.4, whilst the source doesn't compile on 1.2, it will
run successfully :-

*** Ajp13Connector.java Thu Jul 31 18:30:40 2003
--- Ajp13Connector.java.new     Wed Oct  8 16:42:22 2003
***************
*** 857,862 ****
--- 857,878 ----
       */
      public void run() {
  
+         boolean hasSOKeepAlive = false;
+         try
+         {
+             java.lang.reflect.Method m = Socket.class.getMethod
("setKeepAlive", new Class[] { boolean.class } );
+             if (m != null)
+             {
+                 hasSOKeepAlive = true;  
+             }          
+         }
+         catch(Exception ex)
+         {
+         }
+         
+         System.out.println("hasSOKeepAlive = "+hasSOKeepAlive);
+ 
+         
          // Loop until we receive a shutdown command
        while (!stopped) {
  
***************
*** 892,897 ****
--- 908,914 ----
                  else
                        socket.setSoLinger(true, connectionLinger);
                  
+                 if (hasSOKeepAlive)
                      socket.setKeepAlive(true);

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org


Re: DO NOT REPLY [Bug 23675] New: - Ajp13Connector contains code that works only on JDK1.3+

Posted by Henri Gomez <hg...@apache.org>.
bugzilla@apache.org a écrit :


> DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
> RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
> <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23675>.
> ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
> INSERTED IN THE BUG DATABASE.
> 
> http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23675
> 
> Ajp13Connector contains code that works only on JDK1.3+
> 
>            Summary: Ajp13Connector contains code that works only on JDK1.3+
>            Product: Tomcat 4
>            Version: 4.1.27
>           Platform: All
>         OS/Version: All
>             Status: NEW
>           Severity: Normal
>           Priority: Other
>          Component: Connector:JK/AJP (deprecated)
>         AssignedTo: tomcat-dev@jakarta.apache.org
>         ReportedBy: ed.randall@ingenotech.com
> 
> 
> When using JDK1.2.2 and Apache 1.3 connected to Tomcat via mod_jk/AJP13, 
> the servlet hangs and you get the following error:-
> 
> java.lang.NoSuchMethodError: java.net.Socket: method setKeepAlive(Z)V not found
> 	at org.apache.ajp.tomcat4.Ajp13Connector.run(Compiled Code)
> 	at java.lang.Thread.run(Thread.java:479)
> 
> Tomcat 4 claims to work on any platform using JDK1.2 or higher;  Unfortunately
> the call to Socket.setKeepAlive prevents this, since setKeepAlive is a method
> that only came into existance with JDK1.3, this causes a problem on platforms
> for which JDK1.2 is the best available or where maybe JDK1.2 has to be used for
> some other reason.
> 
> I have successfully tested the following patch to 
> jakarta-tomcat-connectors-4.1.27-src/
> jk/java/org/apache/ajp/tomcat4/Ajp13Connector.java 
> with JDKs 1.2.2, 1.3 and 1.4, whilst the source doesn't compile on 1.2, it will
> run successfully :-

The keep alive is not needed on the java side since it's the native side
which will set the connection with keep alive if specified in
workers.properties.

I comment it (to be commited later)






---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org


Re: DO NOT REPLY [Bug 23675] New: - Ajp13Connector contains code that works only on JDK1.3+

Posted by Henri Gomez <hg...@apache.org>.
bugzilla@apache.org a écrit :


> DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
> RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
> <http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23675>.
> ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
> INSERTED IN THE BUG DATABASE.
> 
> http://nagoya.apache.org/bugzilla/show_bug.cgi?id=23675
> 
> Ajp13Connector contains code that works only on JDK1.3+
> 
>            Summary: Ajp13Connector contains code that works only on JDK1.3+
>            Product: Tomcat 4
>            Version: 4.1.27
>           Platform: All
>         OS/Version: All
>             Status: NEW
>           Severity: Normal
>           Priority: Other
>          Component: Connector:JK/AJP (deprecated)
>         AssignedTo: tomcat-dev@jakarta.apache.org
>         ReportedBy: ed.randall@ingenotech.com
> 
> 
> When using JDK1.2.2 and Apache 1.3 connected to Tomcat via mod_jk/AJP13, 
> the servlet hangs and you get the following error:-
> 
> java.lang.NoSuchMethodError: java.net.Socket: method setKeepAlive(Z)V not found
> 	at org.apache.ajp.tomcat4.Ajp13Connector.run(Compiled Code)
> 	at java.lang.Thread.run(Thread.java:479)
> 
> Tomcat 4 claims to work on any platform using JDK1.2 or higher;  Unfortunately
> the call to Socket.setKeepAlive prevents this, since setKeepAlive is a method
> that only came into existance with JDK1.3, this causes a problem on platforms
> for which JDK1.2 is the best available or where maybe JDK1.2 has to be used for
> some other reason.
> 
> I have successfully tested the following patch to 
> jakarta-tomcat-connectors-4.1.27-src/
> jk/java/org/apache/ajp/tomcat4/Ajp13Connector.java 
> with JDKs 1.2.2, 1.3 and 1.4, whilst the source doesn't compile on 1.2, it will
> run successfully :-

The keep alive is not needed on the java side since it's the native side
which will set the connection with keep alive if specified in
workers.properties.

I comment it (to be commited later)






---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org