Hi Justin, These have been done like this by intent: The constant is set during object creation as a special value to indicate that the super type has not be calculated yet. As such it is kind of a special "null" value.
The reason for not using "null" in this case is, that "null" is in fact a valid value for a calculated super type as is any string happening to be "equal" to UNSET_RESOURCE_SUPER_TYPE. The only supertype value impossible to set is the exact object reference of UNSET_RESOURCE_SUPER_TYPE (unless the value is interned, but then ...) Regards Felix Am 16.09.2010 22:06, schrieb [email protected]: > Author: justin > Date: Thu Sep 16 20:06:20 2010 > New Revision: 997904 > > URL: http://svn.apache.org/viewvc?rev=997904&view=rev > Log: > SLING-1781 - fixing String equality check > > Modified: > > sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java > > sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/starresource/StarResource.java > > Modified: > sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java > URL: > http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java?rev=997904&r1=997903&r2=997904&view=diff > ============================================================================== > --- > sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java > (original) > +++ > sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/jcr/JcrNodeResource.java > Thu Sep 16 20:06:20 2010 > @@ -93,7 +93,7 @@ class JcrNodeResource extends JcrItemRes > } > > public String getResourceSuperType() { > - if ( resourceSuperType == UNSET_RESOURCE_SUPER_TYPE ) { > + if ( UNSET_RESOURCE_SUPER_TYPE.equals(resourceSuperType) ) { > try { > if > (node.hasProperty(JcrResourceConstants.SLING_RESOURCE_SUPER_TYPE_PROPERTY)) { > resourceSuperType = > node.getProperty(JcrResourceConstants.SLING_RESOURCE_SUPER_TYPE_PROPERTY).getValue().getString(); > @@ -101,7 +101,7 @@ class JcrNodeResource extends JcrItemRes > } catch (RepositoryException re) { > // we ignore this > } > - if ( resourceSuperType == UNSET_RESOURCE_SUPER_TYPE ) { > + if ( UNSET_RESOURCE_SUPER_TYPE.equals(resourceSuperType) ) { > resourceSuperType = null; > } > } > > Modified: > sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/starresource/StarResource.java > URL: > http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/starresource/StarResource.java?rev=997904&r1=997903&r2=997904&view=diff > ============================================================================== > --- > sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/starresource/StarResource.java > (original) > +++ > sling/trunk/bundles/jcr/resource/src/main/java/org/apache/sling/jcr/resource/internal/helper/starresource/StarResource.java > Thu Sep 16 20:06:20 2010 > @@ -69,7 +69,7 @@ public class StarResource extends Synthe > * to dynamically resolve the resource super type of this star resource. > */ > public String getResourceSuperType() { > - if (resourceSuperType == UNSET_RESOURCE_SUPER_TYPE) { > + if (UNSET_RESOURCE_SUPER_TYPE.equals(resourceSuperType)) { > resourceSuperType = > ResourceUtil.getResourceSuperType(this.getResourceResolver(), > this.getResourceType()); > } > > >
