Show
Ignore:
Timestamp:
08/15/08 15:06:24 (5 months ago)
Author:
masuta
Message:

gwc with seedrequest in json format - new bug: null pointer in getCoveredGridLevels in doSeed()

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/geowebcache/src/main/java/org/geowebcache/seeder/SeedResource.java

    r327 r331  
    3434 
    3535import com.thoughtworks.xstream.XStream; 
     36import com.thoughtworks.xstream.io.HierarchicalStreamDriver; 
     37import com.thoughtworks.xstream.io.HierarchicalStreamReader; 
     38import com.thoughtworks.xstream.io.copy.HierarchicalStreamCopier; 
    3639import com.thoughtworks.xstream.io.json.JsonHierarchicalStreamDriver; 
    3740import com.thoughtworks.xstream.io.json.JettisonMappedXmlDriver; 
    3841import com.thoughtworks.xstream.io.xml.DomDriver; 
     42import com.thoughtworks.xstream.io.xml.PrettyPrintWriter; 
     43 
    3944import java.io.IOException; 
     45import java.io.StringReader; 
     46import java.io.StringWriter; 
    4047import java.util.concurrent.*; 
    4148 
     
    9299        try { 
    93100            String text = entity.getText(); 
    94             XStream xs = null; 
    95             if(entity.getMediaType().equals(MediaType.APPLICATION_XML)) 
    96                 xs = new XStream(new DomDriver()); 
    97             else if(entity.getMediaType().equals(MediaType.APPLICATION_JSON)){ 
    98                 xs = new XStream(new JettisonMappedXmlDriver()); 
    99             } 
    100             xs.alias("seedRequest", SeedRequest.class); 
     101            XStream xs = new XStream(new DomDriver()); 
     102                xs.alias("seedRequest", SeedRequest.class); 
    101103            xs.alias("format", String.class); 
     104            xs.alias("bounds", BBOX.class); 
    102105            xs.alias("projection", SRS.class); 
    103             xs.alias("bounds", BBOX.class); 
    104106            xs.alias("zoomstart", Integer.class); 
    105107            xs.alias("zoomstop", Integer.class); 
    106             SeedRequest rq = (SeedRequest) xs.fromXML(text); 
    107  
    108             XStream xst = new XStream(new JettisonMappedXmlDriver()); 
    109             xst.alias("seedRequest", SeedRequest.class); 
    110             xst.alias("format", String.class); 
    111             xst.alias("projection", SRS.class); 
    112             xst.alias("bounds", BBOX.class); 
    113             xst.alias("zoomstart", Integer.class); 
    114             xst.alias("zoomstop", Integer.class); 
    115              
    116             String json = xst.toXML(rq); 
    117             SeedRequest rq1 = (SeedRequest) xst.fromXML(json); 
    118             System.out.println("json for is " + json); 
    119              
     108            SeedRequest rq = null;  
     109            if(entity.getMediaType().equals(MediaType.APPLICATION_XML)){ 
     110                rq = (SeedRequest) xs.fromXML(text); 
     111            } 
     112            else if(entity.getMediaType().equals(MediaType.APPLICATION_JSON)){ 
     113                HierarchicalStreamDriver driver = new JettisonMappedXmlDriver(); 
     114                StringReader reader = new StringReader(text); 
     115                HierarchicalStreamReader hsr = driver.createReader(reader); 
     116                StringWriter writer = new StringWriter(); 
     117                new HierarchicalStreamCopier().copy(hsr, new PrettyPrintWriter(writer)); 
     118                writer.close(); 
     119                String test = writer.toString(); 
     120                 
     121                rq = (SeedRequest) xs.fromXML(test); 
     122            } 
     123                    
    120124            getExecutor().submit(new MTSeeder(new SeedTask(rq))); 
    121125