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());
>          }
> 
> 
> 

Reply via email to