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/UserTracker.java

    r28210 r28966  
    99import org.greenstone.gsdl3.util.DerbyWrapper;
    1010import org.greenstone.gsdl3.util.GSXML;
     11import org.greenstone.gsdl3.util.XMLConverter;
    1112import org.greenstone.util.GlobalProperties;
     13import org.w3c.dom.Document;
    1214import org.w3c.dom.Element;
    1315
     
    3840        for (int i = 0; i < services.length; i++)
    3941        {
    40             Element service = this.doc.createElement(GSXML.SERVICE_ELEM);
     42            Element service = this.desc_doc.createElement(GSXML.SERVICE_ELEM);
    4143            service.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_RETRIEVE);
    4244            service.setAttribute(GSXML.NAME_ATT, services[i]);
     
    4749    }
    4850
    49     protected Element getServiceDescription(String service_id, String lang, String subset)
     51    protected Element getServiceDescription(Document doc, String service_id, String lang, String subset)
    5052    {
    5153        for (int i = 0; i < services.length; i++)
     
    5355            if (service_id.equals(services[i]))
    5456            {
    55                 Element service_elem = this.doc.createElement(GSXML.SERVICE_ELEM);
     57                Element service_elem = doc.createElement(GSXML.SERVICE_ELEM);
    5658                service_elem.setAttribute(GSXML.TYPE_ATT, GSXML.SERVICE_TYPE_RETRIEVE);
    5759                service_elem.setAttribute(GSXML.NAME_ATT, services[i]);
     
    6567    protected synchronized Element processRecordUserAction(Element request)
    6668    {
    67         Element result = GSXML.createBasicResponse(this.doc, RECORD_USER_ACTION);
     69      Document result_doc = XMLConverter.newDOM();
     70        Element result = GSXML.createBasicResponse(result_doc, RECORD_USER_ACTION);
    6871
    6972        Element paramList = (Element) GSXML.getChildByTagName(request, GSXML.PARAM_ELEM + GSXML.LIST_MODIFIER);
    7073        if (paramList == null)
    7174        {
    72             GSXML.addError(this.doc, result, "Request has no parameter list");
     75            GSXML.addError(result, "Request has no parameter list");
    7376            return result;
    7477        }
     
    9093    protected synchronized Element processGetActivityOnPage(Element request)
    9194    {
    92         Element result = GSXML.createBasicResponse(this.doc, GET_ACTIVITY_ON_PAGE);
     95      Document result_doc = XMLConverter.newDOM();
     96        Element result = GSXML.createBasicResponse(result_doc, GET_ACTIVITY_ON_PAGE);
    9397        try
    9498        {
     
    97101            if (paramList == null)
    98102            {
    99                 GSXML.addError(this.doc, result, "Request has no parameter list");
     103                GSXML.addError(result, "Request has no parameter list");
    100104                return result;
    101105            }
     
    109113            ArrayList<HashMap<String, String>> userActions = database.getMostRecentUserActions(site, collection, oid);
    110114
    111             Element userList = this.doc.createElement("userList");
     115            Element userList = result_doc.createElement("userList");
    112116            for (HashMap<String, String> userAction : userActions)
    113117            {
    114                 Element user = this.doc.createElement("user");
     118                Element user = result_doc.createElement("user");
    115119                user.setAttribute("username", userAction.get("username"));
    116120                user.setAttribute("action", userAction.get("action"));
Note: See TracChangeset for help on using the changeset viewer.