Author: asoldano
Date: 2013-08-23 12:59:25 -0400 (Fri, 23 Aug 2013)
New Revision: 17889
Modified:
stack/cxf/trunk/modules/client/src/main/java/org/jboss/wsf/stack/cxf/tools/CXFConsumerImpl.java
Log:
[JBWS-3697] Fixing WSConsume failures w/ OpenJDK 6
Modified:
stack/cxf/trunk/modules/client/src/main/java/org/jboss/wsf/stack/cxf/tools/CXFConsumerImpl.java
===================================================================
---
stack/cxf/trunk/modules/client/src/main/java/org/jboss/wsf/stack/cxf/tools/CXFConsumerImpl.java 2013-08-23
13:04:19 UTC (rev 17888)
+++
stack/cxf/trunk/modules/client/src/main/java/org/jboss/wsf/stack/cxf/tools/CXFConsumerImpl.java 2013-08-23
16:59:25 UTC (rev 17889)
@@ -414,7 +414,7 @@
final JavaFileObject obj = it.next();
final String objName = obj.getName();
Class<?> clazz = null;
- final String className = packageName + "." +
objName.substring(0, objName.length() - 6);
+ final String className = getFullClassName(packageName, objName);
try
{
clazz = classLoader.loadClass(className);
@@ -453,6 +453,24 @@
return files;
}
}
+
+ private static String getFullClassName(String packageName, String objName)
+ {
+ // * OpenJDK returns objName strings like:
+ //
"/usr/java/java-1.6.0-openjdk-1.6.0.0.x86_64/lib/ct.sym(META-INF/sym/rt.jar/java/lang/AbstractMethodError.class)"
+ // * Oracle & IBM JDK return objName strings like:
+ // "AbstractMethodError.class"
+ // ... from either of those we need to get
+ // "java.lang.AbstractMethodError"
+ String cn = objName.substring(0, objName.indexOf(".class"));
+ int startIdx = Math.max(cn.lastIndexOf("."),
cn.lastIndexOf("/"));
+ if (startIdx > 0)
+ {
+ cn = cn.substring(startIdx + 1);
+ }
+ // objName.substring(0, objName.length() - 6)
+ return packageName + "." + cn;
+ }
final class JavaFileObjectImpl extends SimpleJavaFileObject
{
Show replies by date