diff --git a/java_indexer/lib/gradle-tooling-api-4.2.jar b/java_indexer/lib/gradle-tooling-api-4.2.jar
deleted file mode 100644
index 29f98473..00000000
Binary files a/java_indexer/lib/gradle-tooling-api-4.2.jar and /dev/null differ
diff --git a/java_indexer/lib/gradle-tooling-api-6.7.1.jar b/java_indexer/lib/gradle-tooling-api-6.7.1.jar
new file mode 100644
index 00000000..b7e77b27
Binary files /dev/null and b/java_indexer/lib/gradle-tooling-api-6.7.1.jar differ
diff --git a/java_indexer/lib/org.eclipse.core.commands-3.9.500.jar b/java_indexer/lib/org.eclipse.core.commands-3.9.500.jar
deleted file mode 100644
index ff461981..00000000
Binary files a/java_indexer/lib/org.eclipse.core.commands-3.9.500.jar and /dev/null differ
diff --git a/java_indexer/lib/org.eclipse.core.commands-3.9.800.jar b/java_indexer/lib/org.eclipse.core.commands-3.9.800.jar
new file mode 100644
index 00000000..d6774a9b
Binary files /dev/null and b/java_indexer/lib/org.eclipse.core.commands-3.9.800.jar differ
diff --git a/java_indexer/lib/org.eclipse.core.contenttype-3.7.400.jar b/java_indexer/lib/org.eclipse.core.contenttype-3.7.400.jar
deleted file mode 100644
index 26db7fae..00000000
Binary files a/java_indexer/lib/org.eclipse.core.contenttype-3.7.400.jar and /dev/null differ
diff --git a/java_indexer/lib/org.eclipse.core.contenttype-3.7.800.jar b/java_indexer/lib/org.eclipse.core.contenttype-3.7.800.jar
new file mode 100644
index 00000000..21ff456c
Binary files /dev/null and b/java_indexer/lib/org.eclipse.core.contenttype-3.7.800.jar differ
diff --git a/java_indexer/lib/org.eclipse.core.expressions-3.6.500.jar b/java_indexer/lib/org.eclipse.core.expressions-3.6.500.jar
deleted file mode 100644
index cd8de158..00000000
Binary files a/java_indexer/lib/org.eclipse.core.expressions-3.6.500.jar and /dev/null differ
diff --git a/java_indexer/lib/org.eclipse.core.expressions-3.7.0.jar b/java_indexer/lib/org.eclipse.core.expressions-3.7.0.jar
new file mode 100644
index 00000000..c43c3792
Binary files /dev/null and b/java_indexer/lib/org.eclipse.core.expressions-3.7.0.jar differ
diff --git a/java_indexer/lib/org.eclipse.core.filesystem-1.7.500.jar b/java_indexer/lib/org.eclipse.core.filesystem-1.7.500.jar
deleted file mode 100644
index e03e2bf9..00000000
Binary files a/java_indexer/lib/org.eclipse.core.filesystem-1.7.500.jar and /dev/null differ
diff --git a/java_indexer/lib/org.eclipse.core.filesystem-1.7.700.jar b/java_indexer/lib/org.eclipse.core.filesystem-1.7.700.jar
new file mode 100644
index 00000000..7a5f80e8
Binary files /dev/null and b/java_indexer/lib/org.eclipse.core.filesystem-1.7.700.jar differ
diff --git a/java_indexer/lib/org.eclipse.core.jobs-3.10.1000.jar b/java_indexer/lib/org.eclipse.core.jobs-3.10.1000.jar
new file mode 100644
index 00000000..293a9acc
Binary files /dev/null and b/java_indexer/lib/org.eclipse.core.jobs-3.10.1000.jar differ
diff --git a/java_indexer/lib/org.eclipse.core.jobs-3.10.500.jar b/java_indexer/lib/org.eclipse.core.jobs-3.10.500.jar
deleted file mode 100644
index a729c09e..00000000
Binary files a/java_indexer/lib/org.eclipse.core.jobs-3.10.500.jar and /dev/null differ
diff --git a/java_indexer/lib/org.eclipse.core.resources-3.13.500.jar b/java_indexer/lib/org.eclipse.core.resources-3.13.500.jar
deleted file mode 100644
index b0050ff5..00000000
Binary files a/java_indexer/lib/org.eclipse.core.resources-3.13.500.jar and /dev/null differ
diff --git a/java_indexer/lib/org.eclipse.core.resources-3.13.900.jar b/java_indexer/lib/org.eclipse.core.resources-3.13.900.jar
new file mode 100644
index 00000000..2289aa9a
Binary files /dev/null and b/java_indexer/lib/org.eclipse.core.resources-3.13.900.jar differ
diff --git a/java_indexer/lib/org.eclipse.core.runtime-3.16.0.jar b/java_indexer/lib/org.eclipse.core.runtime-3.16.0.jar
deleted file mode 100644
index 743fbdd1..00000000
Binary files a/java_indexer/lib/org.eclipse.core.runtime-3.16.0.jar and /dev/null differ
diff --git a/java_indexer/lib/org.eclipse.core.runtime-3.20.0.jar b/java_indexer/lib/org.eclipse.core.runtime-3.20.0.jar
new file mode 100644
index 00000000..e373adcc
Binary files /dev/null and b/java_indexer/lib/org.eclipse.core.runtime-3.20.0.jar differ
diff --git a/java_indexer/lib/org.eclipse.equinox.app-1.4.300.jar b/java_indexer/lib/org.eclipse.equinox.app-1.4.300.jar
deleted file mode 100644
index acb206c3..00000000
Binary files a/java_indexer/lib/org.eclipse.equinox.app-1.4.300.jar and /dev/null differ
diff --git a/java_indexer/lib/org.eclipse.equinox.app-1.5.0.jar b/java_indexer/lib/org.eclipse.equinox.app-1.5.0.jar
new file mode 100644
index 00000000..cb455ab0
Binary files /dev/null and b/java_indexer/lib/org.eclipse.equinox.app-1.5.0.jar differ
diff --git a/java_indexer/lib/org.eclipse.equinox.common-3.10.500.jar b/java_indexer/lib/org.eclipse.equinox.common-3.10.500.jar
deleted file mode 100644
index 3a4d8083..00000000
Binary files a/java_indexer/lib/org.eclipse.equinox.common-3.10.500.jar and /dev/null differ
diff --git a/java_indexer/lib/org.eclipse.equinox.common-3.14.0.jar b/java_indexer/lib/org.eclipse.equinox.common-3.14.0.jar
new file mode 100644
index 00000000..fc5829c7
Binary files /dev/null and b/java_indexer/lib/org.eclipse.equinox.common-3.14.0.jar differ
diff --git a/java_indexer/lib/org.eclipse.equinox.preferences-3.7.500.jar b/java_indexer/lib/org.eclipse.equinox.preferences-3.7.500.jar
deleted file mode 100644
index 2bd881a6..00000000
Binary files a/java_indexer/lib/org.eclipse.equinox.preferences-3.7.500.jar and /dev/null differ
diff --git a/java_indexer/lib/org.eclipse.equinox.preferences-3.8.100.jar b/java_indexer/lib/org.eclipse.equinox.preferences-3.8.100.jar
new file mode 100644
index 00000000..4b8ce6c7
Binary files /dev/null and b/java_indexer/lib/org.eclipse.equinox.preferences-3.8.100.jar differ
diff --git a/java_indexer/lib/org.eclipse.equinox.registry-3.10.0.jar b/java_indexer/lib/org.eclipse.equinox.registry-3.10.0.jar
new file mode 100644
index 00000000..6a32c8d3
Binary files /dev/null and b/java_indexer/lib/org.eclipse.equinox.registry-3.10.0.jar differ
diff --git a/java_indexer/lib/org.eclipse.equinox.registry-3.8.500.jar b/java_indexer/lib/org.eclipse.equinox.registry-3.8.500.jar
deleted file mode 100644
index 9295e0a6..00000000
Binary files a/java_indexer/lib/org.eclipse.equinox.registry-3.8.500.jar and /dev/null differ
diff --git a/java_indexer/lib/org.eclipse.jdt.core-3.19.0.jar b/java_indexer/lib/org.eclipse.jdt.core-3.24.0.jar
similarity index 57%
rename from java_indexer/lib/org.eclipse.jdt.core-3.19.0.jar
rename to java_indexer/lib/org.eclipse.jdt.core-3.24.0.jar
index 2b7abbe8..589117ff 100644
Binary files a/java_indexer/lib/org.eclipse.jdt.core-3.19.0.jar and b/java_indexer/lib/org.eclipse.jdt.core-3.24.0.jar differ
diff --git a/java_indexer/lib/org.eclipse.osgi-3.15.0.jar b/java_indexer/lib/org.eclipse.osgi-3.15.0.jar
deleted file mode 100644
index 262e662f..00000000
Binary files a/java_indexer/lib/org.eclipse.osgi-3.15.0.jar and /dev/null differ
diff --git a/java_indexer/lib/org.eclipse.osgi-3.16.100.jar b/java_indexer/lib/org.eclipse.osgi-3.16.100.jar
new file mode 100644
index 00000000..600e205c
Binary files /dev/null and b/java_indexer/lib/org.eclipse.osgi-3.16.100.jar differ
diff --git a/java_indexer/lib/org.eclipse.text-3.10.400.jar b/java_indexer/lib/org.eclipse.text-3.10.400.jar
new file mode 100644
index 00000000..8b124edc
Binary files /dev/null and b/java_indexer/lib/org.eclipse.text-3.10.400.jar differ
diff --git a/java_indexer/lib/org.eclipse.text-3.9.0.jar b/java_indexer/lib/org.eclipse.text-3.9.0.jar
deleted file mode 100644
index f26216bb..00000000
Binary files a/java_indexer/lib/org.eclipse.text-3.9.0.jar and /dev/null differ
diff --git a/java_indexer/lib/slf4j-api-1.7.10.jar b/java_indexer/lib/slf4j-api-1.7.10.jar
deleted file mode 100644
index 744e9ec5..00000000
Binary files a/java_indexer/lib/slf4j-api-1.7.10.jar and /dev/null differ
diff --git a/java_indexer/lib/slf4j-api-1.7.28.jar b/java_indexer/lib/slf4j-api-1.7.28.jar
new file mode 100644
index 00000000..94e79025
Binary files /dev/null and b/java_indexer/lib/slf4j-api-1.7.28.jar differ
diff --git a/java_indexer/lib/slf4j-simple-1.7.10.jar b/java_indexer/lib/slf4j-simple-1.7.10.jar
deleted file mode 100644
index b40be298..00000000
Binary files a/java_indexer/lib/slf4j-simple-1.7.10.jar and /dev/null differ
diff --git a/java_indexer/lib/slf4j-simple-1.7.30.jar b/java_indexer/lib/slf4j-simple-1.7.30.jar
new file mode 100644
index 00000000..6debaa9d
Binary files /dev/null and b/java_indexer/lib/slf4j-simple-1.7.30.jar differ
diff --git a/java_indexer/pom.xml b/java_indexer/pom.xml
index e06f8926..e0ee2286 100644
--- a/java_indexer/pom.xml
+++ b/java_indexer/pom.xml
@@ -28,12 +28,12 @@
mvnrepository
mvnrepository
- http://www.mvnrepository.com
+ https://www.mvnrepository.com
repo_gradle
repo_gradle
- http://repo.gradle.org/gradle/libs-releases-local
+ https://repo.gradle.org/gradle/libs-releases-local
@@ -41,121 +41,121 @@
org.gradle
gradle-tooling-api
- 4.2
+ 6.7.1
system
- ${basedir}/lib/gradle-tooling-api-4.2.jar
+ ${basedir}/lib/gradle-tooling-api-6.7.1.jar
org.eclipse.core
org.eclipse.core.commands
- 3.9.500
+ 3.9.800
system
- ${basedir}/lib/org.eclipse.core.commands-3.9.500.jar
+ ${basedir}/lib/org.eclipse.core.commands-3.9.800.jar
org.eclipse.core
org.eclipse.core.contenttype
- 3.7.400
+ 3.7.800
system
- ${basedir}/lib/org.eclipse.core.contenttype-3.7.400.jar
+ ${basedir}/lib/org.eclipse.core.contenttype-3.7.800.jar
org.eclipse.core
org.eclipse.core.expressions
- 3.6.500
+ 3.7.0
system
- ${basedir}/lib/org.eclipse.core.expressions-3.6.500.jar
+ ${basedir}/lib/org.eclipse.core.expressions-3.7.0.jar
org.eclipse.core
org.eclipse.core.filesystem
1.7.500
system
- ${basedir}/lib/org.eclipse.core.filesystem-1.7.500.jar
+ ${basedir}/lib/org.eclipse.core.filesystem-1.7.700.jar
org.eclipse.core
org.eclipse.core.jobs
- 3.10.500
+ 3.10.1000
system
- ${basedir}/lib/org.eclipse.core.jobs-3.10.500.jar
+ ${basedir}/lib/org.eclipse.core.jobs-3.10.1000.jar
org.eclipse.core
org.eclipse.core.resources
- 3.13.500
+ 3.13.900
system
- ${basedir}/lib/org.eclipse.core.resources-3.13.500.jar
+ ${basedir}/lib/org.eclipse.core.resources-3.13.900.jar
org.eclipse.core
org.eclipse.core.runtime
- 3.16.0
+ 3.20.0
system
- ${basedir}/lib/org.eclipse.core.runtime-3.16.0.jar
+ ${basedir}/lib/org.eclipse.core.runtime-3.20.0.jar
org.eclipse.equinox
org.eclipse.equinox.app
- 1.4.300
+ 1.5.0
system
- ${basedir}/lib/org.eclipse.equinox.app-1.4.300.jar
+ ${basedir}/lib/org.eclipse.equinox.app-1.5.0.jar
org.eclipse.equinox
org.eclipse.equinox.common
- 3.10.500
+ 3.14.0
system
- ${basedir}/lib/org.eclipse.equinox.common-3.10.500.jar
+ ${basedir}/lib/org.eclipse.equinox.common-3.14.0.jar
org.eclipse.equinox
org.eclipse.equinox.preferences
- 3.7.500
+ 3.8.100
system
- ${basedir}/lib/org.eclipse.equinox.preferences-3.7.500.jar
+ ${basedir}/lib/org.eclipse.equinox.preferences-3.8.100.jar
org.eclipse.equinox
org.eclipse.equinox.registry
- 3.8.500
+ 3.10.0
system
- ${basedir}/lib/org.eclipse.equinox.registry-3.8.500.jar
+ ${basedir}/lib/org.eclipse.equinox.registry-3.10.0.jar
org.eclipse.jdt
org.eclipse.jdt.core
- 3.19.0
+ 3.24.0
system
- ${basedir}/lib/org.eclipse.jdt.core-3.19.0.jar
+ ${basedir}/lib/org.eclipse.jdt.core-3.24.0.jar
org.eclipse
org.eclipse.osgi
- 3.15.0
+ 3.16.100
system
- ${basedir}/lib/org.eclipse.osgi-3.15.0.jar
+ ${basedir}/lib/org.eclipse.osgi-3.16.100.jar
org.eclipse
org.eclipse.text
- 3.9.0
+ 3.10.400
system
- ${basedir}/lib/org.eclipse.text-3.9.0.jar
+ ${basedir}/lib/org.eclipse.text-3.10.400.jar
org.slf4j
slf4j-api
- 1.7.10
+ 1.7.28
system
- ${basedir}/lib/slf4j-api-1.7.10.jar
+ ${basedir}/lib/slf4j-api-1.7.28.jar
org.slf4j
slf4j-simple
- 1.7.10
+ 1.7.30
system
- ${basedir}/lib/slf4j-simple-1.7.10.jar
+ ${basedir}/lib/slf4j-simple-1.7.30.jar
diff --git a/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java b/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java
index 0898a778..3d34bbad 100644
--- a/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java
+++ b/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java
@@ -410,7 +410,7 @@ public abstract class AstVisitor extends ASTVisitor
{
DeclName symbolName = DeclName.unsolved();
IBinding binding = node.resolveBinding();
- if (!binding.isRecovered())
+ if (binding != null && !binding.isRecovered())
{
if (binding instanceof IPackageBinding)
{
diff --git a/java_indexer/src/main/java/com/sourcetrail/JavaIndexer.java b/java_indexer/src/main/java/com/sourcetrail/JavaIndexer.java
index 95618a8b..ad7352e4 100644
--- a/java_indexer/src/main/java/com/sourcetrail/JavaIndexer.java
+++ b/java_indexer/src/main/java/com/sourcetrail/JavaIndexer.java
@@ -58,7 +58,7 @@ public class JavaIndexer
Path path = Paths.get(filePath);
- ASTParser parser = ASTParser.newParser(AST.JLS12);
+ ASTParser parser = ASTParser.newParser(AST.JLS_Latest);
parser.setResolveBindings(
true); // solve "bindings" like the declaration of the type used in a var decl
@@ -73,7 +73,7 @@ public class JavaIndexer
astVisitorClient.logInfo("using language standard " + convertedLanguageStandard);
Hashtable options = JavaCore.getOptions();
- options.put(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED);
+ options.put(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.DISABLED);
options.put(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, JavaCore.IGNORE);
options.put(JavaCore.COMPILER_SOURCE, convertedLanguageStandard);
options.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, convertedLanguageStandard);
@@ -164,7 +164,7 @@ public class JavaIndexer
{
String packageName = "";
- ASTParser parser = ASTParser.newParser(AST.JLS12);
+ ASTParser parser = ASTParser.newParser(AST.JLS_Latest);
parser.setKind(
ASTParser.K_COMPILATION_UNIT); // specify to parse the entire compilation unit
parser.setSource(fileContent.toCharArray());
@@ -209,8 +209,14 @@ public class JavaIndexer
case "11":
return JavaCore.VERSION_11;
case "12":
- default:
return JavaCore.VERSION_12;
+ case "13":
+ return JavaCore.VERSION_13;
+ case "14":
+ return JavaCore.VERSION_14;
+ case "15":
+ default:
+ return JavaCore.VERSION_15;
}
}
diff --git a/src/lib/settings/source_group/component/java/SourceGroupSettingsWithJavaStandard.cpp b/src/lib/settings/source_group/component/java/SourceGroupSettingsWithJavaStandard.cpp
index 876e5937..98248da2 100644
--- a/src/lib/settings/source_group/component/java/SourceGroupSettingsWithJavaStandard.cpp
+++ b/src/lib/settings/source_group/component/java/SourceGroupSettingsWithJavaStandard.cpp
@@ -4,7 +4,7 @@
std::wstring SourceGroupSettingsWithJavaStandard::getDefaultJavaStandardStatic()
{
- return L"12";
+ return L"15";
}
std::wstring SourceGroupSettingsWithJavaStandard::getJavaStandard() const
@@ -23,7 +23,22 @@ void SourceGroupSettingsWithJavaStandard::setJavaStandard(const std::wstring& st
std::vector SourceGroupSettingsWithJavaStandard::getAvailableJavaStandards() const
{
- return {L"12", L"11", L"10", L"9", L"8", L"7", L"6", L"5", L"4", L"3", L"2", L"1"};
+ return {
+ L"15",
+ L"14",
+ L"13",
+ L"12",
+ L"11",
+ L"10",
+ L"9",
+ L"8",
+ L"7",
+ L"6",
+ L"5",
+ L"4",
+ L"3",
+ L"2",
+ L"1"};
}
bool SourceGroupSettingsWithJavaStandard::equals(const SourceGroupSettingsBase* other) const
diff --git a/src/lib/utility/logging/ConsoleLogger.cpp b/src/lib/utility/logging/ConsoleLogger.cpp
index 84d8bc4d..08408102 100644
--- a/src/lib/utility/logging/ConsoleLogger.cpp
+++ b/src/lib/utility/logging/ConsoleLogger.cpp
@@ -2,6 +2,8 @@
#include
+#include "utilityString.h"
+
ConsoleLogger::ConsoleLogger(): Logger("ConsoleLogger") {}
void ConsoleLogger::logInfo(const LogMessage& message)
@@ -29,6 +31,5 @@ void ConsoleLogger::logMessage(const std::string& type, const LogMessage& messag
<< "() | ";
}
- std::cout << type << ": ";
- std::wcout << message.message << std::endl;
+ std::cout << type << ": " << utility::encodeToUtf8(message.message) << std::endl;
}
diff --git a/src/lib_java/utility/utilityJava.cpp b/src/lib_java/utility/utilityJava.cpp
index 87214e2e..2ea12a83 100644
--- a/src/lib_java/utility/utilityJava.cpp
+++ b/src/lib_java/utility/utilityJava.cpp
@@ -18,24 +18,24 @@ namespace utility
std::vector getRequiredJarNames()
{
return {
- L"gradle-tooling-api-4.2.jar",
+ L"gradle-tooling-api-6.7.1.jar",
L"java-indexer.jar",
- L"org.eclipse.core.commands-3.9.500.jar",
- L"org.eclipse.core.contenttype-3.7.400.jar",
- L"org.eclipse.core.expressions-3.6.500.jar",
- L"org.eclipse.core.filesystem-1.7.500.jar",
- L"org.eclipse.core.jobs-3.10.500.jar",
- L"org.eclipse.core.resources-3.13.500.jar",
- L"org.eclipse.core.runtime-3.16.0.jar",
- L"org.eclipse.equinox.app-1.4.300.jar",
- L"org.eclipse.equinox.common-3.10.500.jar",
- L"org.eclipse.equinox.preferences-3.7.500.jar",
- L"org.eclipse.equinox.registry-3.8.500.jar",
- L"org.eclipse.jdt.core-3.19.0.jar",
- L"org.eclipse.osgi-3.15.0.jar",
- L"org.eclipse.text-3.9.0.jar",
- L"slf4j-api-1.7.10.jar",
- L"slf4j-simple-1.7.10.jar"};
+ L"org.eclipse.core.commands-3.9.800.jar",
+ L"org.eclipse.core.contenttype-3.7.800.jar",
+ L"org.eclipse.core.expressions-3.7.0.jar",
+ L"org.eclipse.core.filesystem-1.7.700.jar",
+ L"org.eclipse.core.jobs-3.10.1000.jar",
+ L"org.eclipse.core.resources-3.13.900.jar",
+ L"org.eclipse.core.runtime-3.20.0.jar",
+ L"org.eclipse.equinox.app-1.5.0.jar",
+ L"org.eclipse.equinox.common-3.14.0.jar",
+ L"org.eclipse.equinox.preferences-3.8.100.jar",
+ L"org.eclipse.equinox.registry-3.10.0.jar",
+ L"org.eclipse.jdt.core-3.24.0.jar",
+ L"org.eclipse.osgi-3.16.100.jar",
+ L"org.eclipse.text-3.10.400.jar",
+ L"slf4j-api-1.7.28.jar",
+ L"slf4j-simple-1.7.30.jar"};
}
std::string prepareJavaEnvironment()
diff --git a/src/test/JavaParserTestSuite.cpp b/src/test/JavaParserTestSuite.cpp
index 39b1a16a..45781a4f 100644
--- a/src/test/JavaParserTestSuite.cpp
+++ b/src/test/JavaParserTestSuite.cpp
@@ -1655,7 +1655,7 @@ TEST_CASE("java parser finds bound type of type parameter")
client->typeUses, L"A.T -> java.lang.Void <1:27 1:30>"));
}
-TEST_CASE("java parsersupports java 12 switch expression")
+TEST_CASE("java parsersupports java 14 switch expression")
{
std::shared_ptr client = parseCode(
"package foo;\n"