Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
atlas
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
dataplatform
atlas
Commits
2dba5fea
Commit
2dba5fea
authored
8 years ago
by
Madhan Neethiraj
Committed by
Suma Shivaprasad
8 years ago
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ATLAS-1049: non-existing supertype in query filter should not fail the query
parent
d0a9b999
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
17 deletions
+15
-17
release-log.txt
release-log.txt
+1
-0
DefaultTypeCache.java
...apache/atlas/typesystem/types/cache/DefaultTypeCache.java
+6
-1
DefaultTypeCacheTest.java
...he/atlas/typesystem/types/cache/DefaultTypeCacheTest.java
+8
-16
No files found.
release-log.txt
View file @
2dba5fea
...
@@ -6,6 +6,7 @@ INCOMPATIBLE CHANGES:
...
@@ -6,6 +6,7 @@ INCOMPATIBLE CHANGES:
ALL CHANGES:
ALL CHANGES:
ATLAS-1049 Fix validation while filtering by supertypes(mneethiraj via sumasai)
ATLAS-1053 Fix issues flagged by Coverity scan - potential NPE (mneethiraj via sumasai)
ATLAS-1053 Fix issues flagged by Coverity scan - potential NPE (mneethiraj via sumasai)
ATLAS-1052 Fix NPE in HiveHook due to null Session State (sumasai)
ATLAS-1052 Fix NPE in HiveHook due to null Session State (sumasai)
ATLAS-1051 Sqoop Hook does not package HDFS model jars which is required (sumasai)
ATLAS-1051 Sqoop Hook does not package HDFS model jars which is required (sumasai)
...
...
This diff is collapsed.
Click to expand it.
typesystem/src/main/java/org/apache/atlas/typesystem/types/cache/DefaultTypeCache.java
View file @
2dba5fea
...
@@ -27,6 +27,8 @@ import org.apache.atlas.typesystem.types.IDataType;
...
@@ -27,6 +27,8 @@ import org.apache.atlas.typesystem.types.IDataType;
import
org.apache.atlas.typesystem.types.StructType
;
import
org.apache.atlas.typesystem.types.StructType
;
import
org.apache.atlas.typesystem.types.TraitType
;
import
org.apache.atlas.typesystem.types.TraitType
;
import
org.apache.commons.lang.StringUtils
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
...
@@ -42,6 +44,7 @@ import java.util.concurrent.ConcurrentHashMap;
...
@@ -42,6 +44,7 @@ import java.util.concurrent.ConcurrentHashMap;
@Singleton
@Singleton
@SuppressWarnings
(
"rawtypes"
)
@SuppressWarnings
(
"rawtypes"
)
public
class
DefaultTypeCache
implements
TypeCache
{
public
class
DefaultTypeCache
implements
TypeCache
{
private
static
final
Logger
LOG
=
LoggerFactory
.
getLogger
(
DefaultTypeCache
.
class
);
private
Map
<
String
,
IDataType
>
types_
=
new
ConcurrentHashMap
<>();
private
Map
<
String
,
IDataType
>
types_
=
new
ConcurrentHashMap
<>();
private
static
final
List
<
TypeCategory
>
validTypeFilterCategories
=
private
static
final
List
<
TypeCategory
>
validTypeFilterCategories
=
...
@@ -183,7 +186,9 @@ public class DefaultTypeCache implements TypeCache {
...
@@ -183,7 +186,9 @@ public class DefaultTypeCache implements TypeCache {
case
SUPERTYPE:
case
SUPERTYPE:
case
NOT_SUPERTYPE:
case
NOT_SUPERTYPE:
if
(!
has
(
filterEntry
.
getValue
()))
{
if
(!
has
(
filterEntry
.
getValue
()))
{
throw
new
IllegalArgumentException
(
"Invalid supertype "
+
filterEntry
.
getValue
());
if
(
LOG
.
isDebugEnabled
())
{
LOG
.
debug
(
"{}: supertype does not exist"
,
filterEntry
.
getValue
());
}
}
}
break
;
break
;
...
...
This diff is collapsed.
Click to expand it.
typesystem/src/test/java/org/apache/atlas/typesystem/types/cache/DefaultTypeCacheTest.java
View file @
2dba5fea
...
@@ -436,23 +436,15 @@ public class DefaultTypeCacheTest {
...
@@ -436,23 +436,15 @@ public class DefaultTypeCacheTest {
}
}
//invalid supertype
//invalid supertype
try
{
results
=
ts
.
getTypeNames
(
new
HashMap
<
TypeCache
.
TYPE_FILTER
,
String
>()
{{
ts
.
getTypeNames
(
new
HashMap
<
TypeCache
.
TYPE_FILTER
,
String
>()
{{
put
(
TypeCache
.
TYPE_FILTER
.
SUPERTYPE
,
"X"
);
put
(
TypeCache
.
TYPE_FILTER
.
SUPERTYPE
,
"X"
);
}});
}});
assertTrue
(
results
.
isEmpty
(),
"Expected empty result for non-existent type 'X'. Found: "
+
results
);
fail
(
"Expected IllegalArgumentException"
);
}
catch
(
IllegalArgumentException
e
)
{
//expected
}
//invalid supertype
//invalid supertype
try
{
results
=
ts
.
getTypeNames
(
new
HashMap
<
TypeCache
.
TYPE_FILTER
,
String
>()
{{
ts
.
getTypeNames
(
new
HashMap
<
TypeCache
.
TYPE_FILTER
,
String
>()
{{
put
(
TypeCache
.
TYPE_FILTER
.
NOT_SUPERTYPE
,
"X"
);
put
(
TypeCache
.
TYPE_FILTER
.
NOT_SUPERTYPE
,
"X"
);
}});
}});
assertTrue
(
results
.
containsAll
(
Arrays
.
asList
(
"A"
,
"A1"
,
"B"
,
"C"
)),
"Results: "
+
results
);
fail
(
"Expected IllegalArgumentException"
);
}
catch
(
IllegalArgumentException
e
)
{
//expected
}
}
}
}
}
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment