Ignore:
Timestamp:
2014-04-10T14:39:33+12:00 (10 years ago)
Author:
kjdon
Message:

Lots of changes. Mainly to do with removing this.doc from everywhere. Document is not thread safe. Now we tend to create a new Document everytime we are starting a new page/message etc. in service this.desc_doc is available as teh document to create service info stuff. But it should only be used for this and not for other messages. newDOM is now static for XMLConverter. method param changes for some GSXML methods.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/src/java/org/greenstone/gsdl3/service/DocXMLUtil.java

    r24993 r28966  
    2525import org.greenstone.gsdl3.util.GSXML;
    2626import org.greenstone.gsdl3.util.UserContext;
     27import org.greenstone.gsdl3.util.XMLConverter;
    2728
    2829import org.w3c.dom.Document;
     
    8283        for (int i = 0; i < services.length; i++)
    8384        {
    84             Element service = this.doc.createElement(GSXML.SERVICE_ELEM);
     85            Element service = this.desc_doc.createElement(GSXML.SERVICE_ELEM);
    8586            service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_RETRIEVE);
    8687            service.setAttribute(GSXML.NAME_ATT, services[i]);
     
    8889        }
    8990       
    90         _GSDM = new GSDocumentModel(this.site_home, this.doc, this.router);
     91        _GSDM = new GSDocumentModel(this.site_home, this.router);
    9192
    9293        return true;
    9394    }
    9495
    95     protected Element getServiceDescription(String service_id, String lang, String subset)
     96  protected Element getServiceDescription(Document doc, String service_id, String lang, String subset)
    9697    {
    9798        for (int i = 0; i < services.length; i++)
     
    99100            if (service_id.equals(services[i]))
    100101            {
    101                 Element service_elem = this.doc.createElement(GSXML.SERVICE_ELEM);
     102                Element service_elem = doc.createElement(GSXML.SERVICE_ELEM);
    102103                service_elem.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_RETRIEVE);
    103104                service_elem.setAttribute(GSXML.NAME_ATT, services[i]);
     
    115116    protected Element processDocXMLCreateEmptyFile(Element request)
    116117    {
    117         Element result = GSXML.createBasicResponse(this.doc, DOC_XML_CREATE_EMPTY_FILE);
    118 
    119         if (request == null)
    120         {
    121             GSXML.addError(this.doc, result, DOC_XML_CREATE_EMPTY_FILE + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
     118      Document result_doc = XMLConverter.newDOM();
     119        Element result = GSXML.createBasicResponse(result_doc, DOC_XML_CREATE_EMPTY_FILE);
     120
     121        if (request == null)
     122        {
     123            GSXML.addError(result, DOC_XML_CREATE_EMPTY_FILE + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
    122124            return result;
    123125        }
     
    144146    protected Element processDocXMLGetMetadata(Element request)
    145147    {
    146         Element result = GSXML.createBasicResponse(this.doc, DOC_XML_GET_METADATA);
    147 
    148         if (request == null)
    149         {
    150             GSXML.addError(this.doc, result, DOC_XML_GET_METADATA + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
     148      Document result_doc = XMLConverter.newDOM();
     149        Element result = GSXML.createBasicResponse(result_doc, DOC_XML_GET_METADATA);
     150
     151        if (request == null)
     152        {
     153            GSXML.addError(result, DOC_XML_GET_METADATA + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
    151154            return result;
    152155        }
     
    171174            for(Element metadataValue : metadataValues)
    172175            {
    173                 Element metadataElem = this.doc.createElement(GSXML.METADATA_ELEM);
     176                Element metadataElem = result_doc.createElement(GSXML.METADATA_ELEM);
    174177                metadataElem.setAttribute(GSXML.NAME_ATT, metadataName);
    175178                metadataElem.setAttribute(GSXML.VALUE_ATT, metadataValue.getFirstChild().getNodeValue());
     
    183186    protected Element processDocXMLSetMetadata(Element request)
    184187    {
    185         Element result = GSXML.createBasicResponse(this.doc, DOC_XML_SET_METADATA);
    186 
    187         if (request == null)
    188         {
    189             GSXML.addError(this.doc, result, DOC_XML_SET_METADATA + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
     188      Document result_doc = XMLConverter.newDOM();
     189        Element result = GSXML.createBasicResponse(result_doc, DOC_XML_SET_METADATA);
     190
     191        if (request == null)
     192        {
     193            GSXML.addError(result, DOC_XML_SET_METADATA + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
    190194            return result;
    191195        }
     
    232236                catch(Exception ex)
    233237                {
    234                     GSXML.addError(this.doc, result, DOC_XML_SET_METADATA + ": Error converting the position attribute to an integer", GSXML.ERROR_TYPE_SYNTAX);
     238                    GSXML.addError(result, DOC_XML_SET_METADATA + ": Error converting the position attribute to an integer", GSXML.ERROR_TYPE_SYNTAX);
    235239                    return result;
    236240                }
     
    252256            else
    253257            {
    254                 GSXML.addError(this.doc, result, DOC_XML_SET_METADATA + ": A position or previous value was not given", GSXML.ERROR_TYPE_SYNTAX);
     258                GSXML.addError(result, DOC_XML_SET_METADATA + ": A position or previous value was not given", GSXML.ERROR_TYPE_SYNTAX);
    255259                return result;
    256260            }
     
    262266    protected Element processDocXMLCreateSection(Element request)
    263267    {
    264         Element result = GSXML.createBasicResponse(this.doc, DOC_XML_CREATE_SECTION);
    265 
    266         if (request == null)
    267         {
    268             GSXML.addError(this.doc, result, DOC_XML_CREATE_SECTION + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
     268      Document result_doc = XMLConverter.newDOM();
     269        Element result = GSXML.createBasicResponse(result_doc, DOC_XML_CREATE_SECTION);
     270
     271        if (request == null)
     272        {
     273            GSXML.addError(result, DOC_XML_CREATE_SECTION + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
    269274            return result;
    270275        }
     
    291296    protected Element processDocXMLDeleteSection(Element request)
    292297    {
    293         Element result = GSXML.createBasicResponse(this.doc, DOC_XML_DELETE_SECTION);
    294 
    295         if (request == null)
    296         {
    297             GSXML.addError(this.doc, result, DOC_XML_DELETE_SECTION + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
     298      Document result_doc = XMLConverter.newDOM();
     299        Element result = GSXML.createBasicResponse(result_doc, DOC_XML_DELETE_SECTION);
     300
     301        if (request == null)
     302        {
     303            GSXML.addError(result, DOC_XML_DELETE_SECTION + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
    298304            return result;
    299305        }
     
    320326    protected Element processDocXMLGetSection(Element request)
    321327    {
    322         Element result = GSXML.createBasicResponse(this.doc, DOC_XML_GET_SECTION);
    323 
    324         if (request == null)
    325         {
    326             GSXML.addError(this.doc, result, DOC_XML_GET_SECTION + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
     328      Document result_doc = XMLConverter.newDOM();
     329        Element result = GSXML.createBasicResponse(result_doc, DOC_XML_GET_SECTION);
     330
     331        if (request == null)
     332        {
     333            GSXML.addError(result, DOC_XML_GET_SECTION + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
    327334            return result;
    328335        }
     
    349356    protected Element processDocXMLSetSection(Element request)
    350357    {
    351         Element result = GSXML.createBasicResponse(this.doc, DOC_XML_SET_SECTION);
    352 
    353         if (request == null)
    354         {
    355             GSXML.addError(this.doc, result, DOC_XML_SET_SECTION + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
     358      Document result_doc = XMLConverter.newDOM();
     359        Element result = GSXML.createBasicResponse(result_doc, DOC_XML_SET_SECTION);
     360
     361        if (request == null)
     362        {
     363            GSXML.addError(result, DOC_XML_SET_SECTION + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
    356364            return result;
    357365        }
     
    394402    protected Element processDocXMLGetText(Element request)
    395403    {
    396         Element result = GSXML.createBasicResponse(this.doc, DOC_XML_GET_TEXT);
    397 
    398         if (request == null)
    399         {
    400             GSXML.addError(this.doc, result, DOC_XML_GET_TEXT + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
     404      Document result_doc = XMLConverter.newDOM();
     405        Element result = GSXML.createBasicResponse(result_doc, DOC_XML_GET_TEXT);
     406
     407        if (request == null)
     408        {
     409            GSXML.addError(result, DOC_XML_GET_TEXT + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
    401410            return result;
    402411        }
     
    420429            if (content == null)
    421430            {
    422                 result.appendChild(this.doc.createElement(GSXML.DOCXML_CONTENT_ELEM));
     431                result.appendChild(result_doc.createElement(GSXML.DOCXML_CONTENT_ELEM));
    423432            }
    424433            else
    425434            {
    426                 Element contentElem = this.doc.createElement(GSXML.DOCXML_CONTENT_ELEM);
    427                 Node textNode = this.doc.createTextNode(content);
     435                Element contentElem = result_doc.createElement(GSXML.DOCXML_CONTENT_ELEM);
     436                Node textNode = result_doc.createTextNode(content);
    428437                contentElem.appendChild(textNode);
    429438                result.appendChild(contentElem);
     
    436445    protected Element processDocXMLSetText(Element request)
    437446    {
    438         Element result = GSXML.createBasicResponse(this.doc, DOC_XML_SET_TEXT);
    439 
    440         if (request == null)
    441         {
    442             GSXML.addError(this.doc, result, DOC_XML_SET_TEXT + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
     447      Document result_doc = XMLConverter.newDOM();
     448        Element result = GSXML.createBasicResponse(result_doc, DOC_XML_SET_TEXT);
     449
     450        if (request == null)
     451        {
     452            GSXML.addError(result, DOC_XML_SET_TEXT + ": Request is null", GSXML.ERROR_TYPE_SYNTAX);
    443453            return result;
    444454        }
Note: See TracChangeset for help on using the changeset viewer.