Project

General

Profile

« Previous | Next » 

Revision 41852

trying to resolve bug

View differences:

DelegatingDiffTrigger.java
16 16
import org.exist.storage.DBBroker;
17 17
import org.exist.storage.txn.Txn;
18 18
import org.exist.xmldb.XmldbURI;
19
import org.w3c.dom.Document;
20 19

  
21 20
/**
22 21
 * this trigger delegates diffs for CRUDE events to an non-exist dependent eu.dnetlib.xml.database.Trigger instance.
......
40 39

  
41 40
	private Map<String, ExistsTriggerEvent> existsTriggerEventMap= new HashMap<>();
42 41

  
42
	private XMLIndenter indenter = new XMLIndenter();
43

  
43 44
	/**
44 45
	 * {@inheritDoc}
45 46
	 * 
......
82 83
		return trigger;
83 84
	}
84 85

  
85

  
86
	protected void triggerUpdate(final XmldbURI uri, final Document oldDoc, final Document newDoc) {
87
		final Trigger trigger = getTrigger();
88
		if (trigger != null)
89
			trigger.updated(uri.lastSegment().toString(), uri.removeLastSegment().toString(), oldDoc, newDoc);
90
	}
91

  
92

  
93
	protected void triggerCreate(final XmldbURI uri, final Document newDoc) {
94
		final Trigger trigger = getTrigger();
95
		if (trigger != null)
96
			trigger.created(uri.lastSegment().toString(), uri.removeLastSegment().toString(), newDoc);
97
	}
98

  
99

  
100
	protected void triggerDelete(final XmldbURI uri, final Document oldDoc) {
101

  
102
	}
103

  
104 86
	public String getTriggerName() {
105 87
		return triggerName;
106 88
	}
......
113 95

  
114 96
	@Override
115 97
	public void beforeCreateDocument(final DBBroker dbBroker, final Txn txn, final XmldbURI xmldbURI) throws TriggerException {
116

  
98
		log.info("beforeCreateDocument called");
117 99
	}
118 100

  
119 101
	@Override
120 102
	public void afterCreateDocument(final DBBroker dbBroker, final Txn txn, final DocumentImpl document) throws TriggerException {
121
		final Trigger trigger = getTrigger();
122
		final String collection = document.getCollection().getURI().toString();
123
		final String fileName = document.getFileURI().toString();
124
		if (trigger != null)
125
			trigger.created(fileName, collection, document);
103
		log.info("afterCreateDocument called");
104
		try {
105
			final Trigger trigger = getTrigger();
106
			final String collection = document.getCollection().getURI().toString();
107
			final String fileName = document.getFileURI().toString();
108
			if (trigger != null)
109
				trigger.created(fileName, collection, indenter.parseXmlString(XMLIndenter.indent(document)));
110
		} catch (Exception e) {
111
			throw new TriggerException(e);
112
		}
126 113
	}
127 114

  
128 115
	@Override
129 116
	public void beforeUpdateDocument(final DBBroker dbBroker, final Txn txn, final DocumentImpl document) throws TriggerException {
117
		log.info("beforeUpdateDocument called");
130 118
		try {
131 119
			final String collection = document.getCollection().getURI().toString();
132 120
			final String fileName = document.getFileURI().toString();
133 121
			final ExistsTriggerEvent event = new ExistsTriggerEvent();
134
			XMLIndenter indenter = new XMLIndenter();
135
			final Document document1 = indenter.parseXmlString(XMLIndenter.indent(document));
136
			event.setOldDocument(document1);
122
			event.setOldDocument(indenter.parseXmlString(XMLIndenter.indent(document)));
137 123
			event.setEventType(EventType.UPDATE);
138 124
			event.setCollection(collection);
139 125
			event.setName(fileName);
......
146 132

  
147 133
	@Override
148 134
	public void afterUpdateDocument(final DBBroker dbBroker, final Txn txn, final DocumentImpl document) throws TriggerException {
135
		log.info("afterUpdateDocument called");
136
		try {
137
			if (!existsTriggerEventMap.containsKey(String.valueOf(txn.getId()))) {
138
				throw new TriggerException("Error on trigger missing previous operation beforeUpdateTrigger");
139
			}
140
			final ExistsTriggerEvent existsTriggerEvent = existsTriggerEventMap.remove(String.valueOf(txn.getId()));
149 141

  
150
		if (!existsTriggerEventMap.containsKey(String.valueOf(txn.getId()))){
151
			throw new TriggerException("Error on trigger missing previous operation beforeUpdateTrigger");
142
			existsTriggerEvent.setDocument(indenter.parseXmlString(XMLIndenter.indent(document)));
143
			final Trigger trigger = getTrigger();
144
			if (trigger != null)
145
				trigger.updated(existsTriggerEvent.getName(), existsTriggerEvent.getCollection(), existsTriggerEvent.getOldDocument(),
146
						existsTriggerEvent.getDocument());
147
		} catch (IOException e) {
148
			throw new TriggerException((e));
152 149
		}
153
		final ExistsTriggerEvent existsTriggerEvent = existsTriggerEventMap.remove(String.valueOf(txn.getId()));
154

  
155
		existsTriggerEvent.setDocument(document);
156
		final Trigger trigger = getTrigger();
157
		if (trigger != null)
158
			trigger.updated(existsTriggerEvent.getName(), existsTriggerEvent.getCollection(), existsTriggerEvent.getOldDocument(), existsTriggerEvent.getDocument());
159

  
160 150
	}
161 151

  
162 152
	@Override
......
191 181

  
192 182
	@Override
193 183
	public void beforeDeleteDocument(final DBBroker dbBroker, final Txn txn, final DocumentImpl document) throws TriggerException {
194
		final Trigger trigger = getTrigger();
195
		final String collection = document.getCollection().getURI().toString();
196
		final String fileName = document.getFileURI().toString();
197
		if (trigger != null)
198
			trigger.deleted(fileName, collection, document);
184
		log.info("beforeDeleteDocument called");
185
		try {
186
			final Trigger trigger = getTrigger();
187
			final String collection = document.getCollection().getURI().toString();
188
			final String fileName = document.getFileURI().toString();
189
			if (trigger != null)
190
				trigger.deleted(fileName, collection, indenter.parseXmlString(XMLIndenter.indent(document)));
191
		} catch (Exception e) {
192
			throw new TriggerException(e);
193
		}
199 194
	}
200 195

  
201 196
	@Override
202 197
	public void afterDeleteDocument(final DBBroker dbBroker, final Txn txn, final XmldbURI xmldbURI) throws TriggerException {
198
		log.info("afterDeleteDocument called");
203 199
	}
204 200

  
205 201
}

Also available in: Unified diff