You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by tm...@apache.org on 2016/12/19 14:08:06 UTC
svn commit: r1775099 - in
/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution:
packaging/impl/exporter/AgentDistributionPackageExporter.java
servlet/DistributionAgentQueueServlet.java
Author: tmaret
Date: Mon Dec 19 14:08:06 2016
New Revision: 1775099
URL: http://svn.apache.org/viewvc?rev=1775099&view=rev
Log:
SLING-6418 - NPE in o.a.s.d.p.i.e.AgentDistributionPackageExporter#exportPackages
* Throw specific exception when the queue can't be found in AgentDistributionPackageExporter or DistributionAgentQueueServlet
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentQueueServlet.java
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java?rev=1775099&r1=1775098&r2=1775099&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java Mon Dec 19 14:08:06 2016
@@ -83,7 +83,7 @@ public class AgentDistributionPackageExp
try {
log.debug("getting packages from queue {}", queueName);
- DistributionQueue queue = agent.getQueue(queueName);
+ DistributionQueue queue = getQueueOrThrow(queueName);
DistributionQueueEntry entry = queue.getHead();
if (entry != null) {
DistributionQueueItem queueItem = entry.getItem();
@@ -118,7 +118,7 @@ public class AgentDistributionPackageExp
try {
log.debug("getting package from queue {}", queueName);
- DistributionQueue queue = agent.getQueue(queueName);
+ DistributionQueue queue = getQueueOrThrow(queueName);
DistributionQueueEntry entry = queue.getItem(distributionPackageId);
DistributionPackage distributionPackage;
@@ -183,4 +183,14 @@ public class AgentDistributionPackageExp
((DefaultDistributionLog) agentLog).info(message, values);
}
}
+
+ @Nonnull
+ private DistributionQueue getQueueOrThrow(@Nonnull String queueName)
+ throws DistributionException {
+ DistributionQueue queue = agent.getQueue(queueName);
+ if (queue == null) {
+ throw new DistributionException(String.format("Could not find queue %s", queueName));
+ }
+ return queue;
+ }
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentQueueServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentQueueServlet.java?rev=1775099&r1=1775098&r2=1775099&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentQueueServlet.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentQueueServlet.java Mon Dec 19 14:08:06 2016
@@ -18,6 +18,7 @@
*/
package org.apache.sling.distribution.servlet;
+import javax.annotation.Nonnull;
import javax.servlet.ServletException;
import java.io.IOException;
@@ -86,7 +87,7 @@ public class DistributionAgentQueueServl
if (idParam != null && from != null) {
DistributionAgent agent = request.getResource().getParent().getParent().adaptTo(DistributionAgent.class);
- DistributionQueue sourceQueue = agent.getQueue(from);
+ DistributionQueue sourceQueue = getQueueOrThrow(agent,from);
addItems(resourceResolver, queue, sourceQueue, idParam);
}
@@ -96,7 +97,7 @@ public class DistributionAgentQueueServl
if (idParam != null && from != null) {
DistributionAgent agent = request.getResource().getParent().getParent().adaptTo(DistributionAgent.class);
- DistributionQueue sourceQueue = agent.getQueue(from);
+ DistributionQueue sourceQueue = getQueueOrThrow(agent,from);
addItems(resourceResolver, queue, sourceQueue, idParam);
deleteItems(resourceResolver, sourceQueue, idParam);
@@ -105,12 +106,6 @@ public class DistributionAgentQueueServl
}
private void addItems(ResourceResolver resourceResolver, DistributionQueue targetQueue, DistributionQueue sourceQueue, String[] ids) {
-
-
- if (sourceQueue == null) {
- log.warn("cannot find source queue {}", sourceQueue);
- }
-
for (String id: ids) {
DistributionQueueEntry entry = sourceQueue.getItem(id);
if (entry != null) {
@@ -160,4 +155,13 @@ public class DistributionAgentQueueServl
return null;
}
+
+ @Nonnull
+ private static DistributionQueue getQueueOrThrow(@Nonnull DistributionAgent agent, @Nonnull String queueName) {
+ DistributionQueue queue = agent.getQueue(queueName);
+ if (queue == null) {
+ throw new IllegalArgumentException(String.format("Could not find queue %s", queueName));
+ }
+ return queue;
+ }
}