Geronimo does not start on SAP JVM
----------------------------------

                 Key: GERONIMO-4209
                 URL: https://issues.apache.org/jira/browse/GERONIMO-4209
             Project: Geronimo
          Issue Type: Bug
      Security Level: public (Regular issues)
    Affects Versions: 2.1.1
         Environment: Windows XP 64
SAP JVM 1.5.0_14
            Reporter: Markus Ofterdinger
            Priority: Trivial


I tried to get the Geronimo Application Server 2.1.1 running on a SAP JVM. But 
the startup fails.

I found this error message in the log:

Caused by: java.lang.StringIndexOutOfBoundsException: String index out of 
range: 7
        at java.lang.String.substring(String.java:1799)
        at 
org.apache.geronimo.system.properties.JvmVendor.<clinit>(JvmVendor.java:50)
        ... 25 more

At this line a subString(0, 7) is performed on the VM vendor name, but the full 
vendor name of a SAP JVM contains only 6 characters "SAP AG".

I did a small fix which adds an additional length check:

Index: src/main/java/org/apache/geronimo/system/properties/JvmVendor.java
===================================================================
--- src/main/java/org/apache/geronimo/system/properties/JvmVendor.java  
(Revision 677904)
+++ src/main/java/org/apache/geronimo/system/properties/JvmVendor.java  
(Arbeitskopie)
@@ -47,7 +47,10 @@
         boolean bApache = fullVendorName.substring(0, 
6).equalsIgnoreCase("Apache");    // aka. Apache Harmony
         boolean bIBM = fullVendorName.substring(0, 3).equalsIgnoreCase("IBM"); 
          // aka. IBM, but not IBM Hybrid
         boolean bSun = !bIBM && !bApache;                                      
         // default all others to Sun
-        boolean bHP = fullVendorName.substring(0, 
7).equalsIgnoreCase("Hewlett");       // aka. Hewlett-Packard Company
+//        boolean bHP = fullVendorName.substring(0, 
7).equalsIgnoreCase("Hewlett");       // aka. Hewlett-Packard Company
+        boolean bHP = false;
+        if (fullVendorName.length() >= 7)
+            bHP = fullVendorName.substring(0, 7).equalsIgnoreCase("Hewlett");  
     // aka. Hewlett-Packard Company
         boolean bIBMHybrid = false;
         
         // Special code for IBM Hybrid SDK (Sun JVM with IBM extensions on 
Solaris and HP-UX)

After applying this fix the app-server started fine.

Best regards,

Markus Ofterdinger

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to