Browse Source

Null pointer fix

pull/2436/head
Volodymyr Babak 6 years ago
parent
commit
4686b2323a
  1. 3
      application/src/main/java/org/thingsboard/server/service/edge/DefaultEdgeNotificationService.java
  2. 6
      dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java

3
application/src/main/java/org/thingsboard/server/service/edge/DefaultEdgeNotificationService.java

@ -280,7 +280,8 @@ public class DefaultEdgeNotificationService implements EdgeNotificationService {
private void processEntity(TenantId tenantId, TransportProtos.EdgeNotificationMsgProto edgeNotificationMsg) { private void processEntity(TenantId tenantId, TransportProtos.EdgeNotificationMsgProto edgeNotificationMsg) {
ActionType edgeEventActionType = ActionType.valueOf(edgeNotificationMsg.getEdgeEventAction()); ActionType edgeEventActionType = ActionType.valueOf(edgeNotificationMsg.getEdgeEventAction());
EdgeEventType edgeEventType = EdgeEventType.valueOf(edgeNotificationMsg.getEdgeEventType()); EdgeEventType edgeEventType = EdgeEventType.valueOf(edgeNotificationMsg.getEdgeEventType());
EntityId entityId = EntityIdFactory.getByEdgeEventTypeAndUuid(edgeEventType, new UUID(edgeNotificationMsg.getEntityIdMSB(), edgeNotificationMsg.getEntityIdLSB())); EntityId entityId = EntityIdFactory.getByEdgeEventTypeAndUuid(edgeEventType,
new UUID(edgeNotificationMsg.getEntityIdMSB(), edgeNotificationMsg.getEntityIdLSB()));
ListenableFuture<List<EdgeId>> edgeIdsFuture; ListenableFuture<List<EdgeId>> edgeIdsFuture;
switch (edgeEventActionType) { switch (edgeEventActionType) {
case ADDED: // used only for USER entity case ADDED: // used only for USER entity

6
dao/src/main/java/org/thingsboard/server/dao/edge/EdgeServiceImpl.java

@ -432,7 +432,8 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic
ListenableFuture<List<EntityRelation>> originatorEdgeRelationsFuture = ListenableFuture<List<EntityRelation>> originatorEdgeRelationsFuture =
relationService.findByToAndTypeAsync(tenantId, entityId, EntityRelation.CONTAINS_TYPE, RelationTypeGroup.EDGE); relationService.findByToAndTypeAsync(tenantId, entityId, EntityRelation.CONTAINS_TYPE, RelationTypeGroup.EDGE);
return Futures.transform(originatorEdgeRelationsFuture, originatorEdgeRelations -> { return Futures.transform(originatorEdgeRelationsFuture, originatorEdgeRelations -> {
if (originatorEdgeRelations != null && originatorEdgeRelations.size() > 0) { if (originatorEdgeRelations != null && originatorEdgeRelations.size() > 0 &&
originatorEdgeRelations.get(0).getFrom() != null) {
return Collections.singletonList(new EdgeId(originatorEdgeRelations.get(0).getFrom().getId())); return Collections.singletonList(new EdgeId(originatorEdgeRelations.get(0).getFrom().getId()));
} else { } else {
return Collections.emptyList(); return Collections.emptyList();
@ -444,6 +445,9 @@ public class EdgeServiceImpl extends AbstractEntityService implements EdgeServic
return convertToEdgeIds(findEdgesByTenantIdAndRuleChainId(tenantId, new RuleChainId(entityId.getId()))); return convertToEdgeIds(findEdgesByTenantIdAndRuleChainId(tenantId, new RuleChainId(entityId.getId())));
case USER: case USER:
User userById = userService.findUserById(tenantId, new UserId(entityId.getId())); User userById = userService.findUserById(tenantId, new UserId(entityId.getId()));
if (userById == null) {
return Futures.immediateFuture(Collections.emptyList());
}
TextPageData<Edge> edges; TextPageData<Edge> edges;
if (userById.getCustomerId() == null || userById.getCustomerId().isNullUid()) { if (userById.getCustomerId() == null || userById.getCustomerId().isNullUid()) {
edges = findEdgesByTenantId(tenantId, new TextPageLink(Integer.MAX_VALUE)); edges = findEdgesByTenantId(tenantId, new TextPageLink(Integer.MAX_VALUE));

Loading…
Cancel
Save