Good catch, thanks - it's fixed now

2014-03-15 14:30 GMT+01:00 Justin Edelson <[email protected]>:

> Hi,
>
> On Fri, Mar 14, 2014 at 9:49 AM,  <[email protected]> wrote:
> > Author: cziegeler
> > Date: Fri Mar 14 13:49:01 2014
> > New Revision: 1577529
> >
> > URL: http://svn.apache.org/r1577529
> > Log:
> > SLING-3451 : Support for deep reads from a value map
> >
> > Modified:
> >     sling/trunk/contrib/extensions/mongodb/pom.xml
> >
> sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBCollectionResource.java
> >
> sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java
> >
>
> > Modified:
> sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java
> > URL:
> http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java?rev=1577529&r1=1577528&r2=1577529&view=diff
> >
> ==============================================================================
> > ---
> sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java
> (original)
> > +++
> sling/trunk/contrib/extensions/mongodb/src/main/java/org/apache/sling/mongodb/impl/MongoDBResource.java
> Fri Mar 14 13:49:01 2014
> > @@ -23,6 +23,7 @@ import org.apache.sling.api.resource.Mod
> >  import org.apache.sling.api.resource.ResourceMetadata;
> >  import org.apache.sling.api.resource.ResourceResolver;
> >  import org.apache.sling.api.resource.ValueMap;
> > +import org.apache.sling.api.wrappers.DeepReadValueMapDecorator;
> >
> >  import com.mongodb.DBObject;
> >
> > @@ -118,10 +119,10 @@ public class MongoDBResource extends Abs
> >      public <AdapterType> AdapterType adaptTo(final Class<AdapterType>
> type) {
> >          if ( type == ValueMap.class || type == Map.class ) {
> >              this.dbObject =
> this.provider.getUpdatedDBObject(this.resourcePath, this.dbObject);
> > -            return (AdapterType) new ReadableValueMap(this.dbObject);
> > +            return (AdapterType) new DeepReadValueMapDecorator(this,
> new ReadableValueMap(this.dbObject));
> >          } else if ( type == ModifiableValueMap.class ) {
> >              this.dbObject =
> this.provider.getUpdatedDBObject(this.resourcePath, this.dbObject);
> > -            return (AdapterType) new ChangeableValueMap(this);
> > +            return (AdapterType) new DeepReadValueMapDecorator(this,
> new ChangeableValueMap(this));
>
> This doesn't look right to me. ChangeableValueMap implements
> ModifiableValueMap, but DeepReadValueMapDecorator does not.
>
> Regards,
> Justin
>
> >          }
> >
> >          return super.adaptTo(type);
> >
> >
>



-- 
Carsten Ziegeler
[email protected]

Reply via email to