Author: cziegeler
Date: Thu Apr  7 09:28:29 2011
New Revision: 1089790

URL: http://svn.apache.org/viewvc?rev=1089790&view=rev
Log:
FELIX-2906 : SCR plugin error with @Property(..., intValue=Integer.MAX_VALUE)

Modified:
    
felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java

Modified: 
felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java?rev=1089790&r1=1089789&r2=1089790&view=diff
==============================================================================
--- 
felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java
 (original)
+++ 
felix/trunk/scrplugin/generator/src/main/java/org/apache/felix/scrplugin/tags/qdox/QDoxJavaClassDescription.java
 Thu Apr  7 09:28:29 2011
@@ -160,7 +160,7 @@ public class QDoxJavaClassDescription
             // check for fully qualified
             int firstDot = name.indexOf('.');
             if ( firstDot == lastDot ) {
-                // we only have one dot, so either the class is imported or in 
the same package
+                // we only have one dot, so either the class is imported or in 
the same package or in the default package (java.lang)
                 final String className = name.substring(0, lastDot);
                 final String constantName = name.substring(lastDot+1);
                 final String importDef = this.searchImport('.' + className);
@@ -170,11 +170,23 @@ public class QDoxJavaClassDescription
                         return jcd.getFieldByName(constantName);
                     }
                 }
-                final JavaClassDescription jcd = 
this.manager.getJavaClassDescription(this.javaClass.getSource().getPackage().getName()
 + '.' + className);
-                if ( jcd != null ) {
-                    return jcd.getFieldByName(constantName);
+                try {
+                    final JavaClassDescription jcd = 
this.manager.getJavaClassDescription(this.javaClass.getSource().getPackage().getName()
 + '.' + className);
+                    if ( jcd != null ) {
+                        return jcd.getFieldByName(constantName);
+                    }
+                } catch (final SCRDescriptorException sde) {
+                    // try java.lang (FELIX-2906)
+                    try {
+                        final JavaClassDescription jcd = 
this.manager.getJavaClassDescription("java.lang." + className);
+                        if ( jcd != null ) {
+                            return jcd.getFieldByName(constantName);
+                        }
+                    } catch (final SCRDescriptorException ignore) {
+                        // ignore
+                    }
+                    throw sde;
                 }
-
             } else {
                 // we have more than one dot, so this is a fully qualified 
class
                 final String className = name.substring(0, lastDot);


Reply via email to