mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -197,6 +197,12 @@ class CompilerReferenceReader {
|
||||
if (result.add(curClass)) {
|
||||
if (checkBaseClassAmbiguity || curClass != hierarchyElement) {
|
||||
final Collection<Integer> definitionFiles = myIndex.getBackwardClassDefinitionMap().get(curClass);
|
||||
if (definitionFiles == null) {
|
||||
//diagnostic
|
||||
String baseHierarchyElement = getNameEnumerator().getName(hierarchyElement.getName());
|
||||
String curHierarchyElement = getNameEnumerator().getName(curClass.getName());
|
||||
LOG.error("Can't get definition files for :" + curHierarchyElement + " base class: " + baseHierarchyElement);
|
||||
}
|
||||
if (definitionFiles.size() != 1) {
|
||||
return null;
|
||||
}
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
class Bar {
|
||||
|
||||
void m() {
|
||||
System.out.println(Foo.CONST);
|
||||
}
|
||||
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
public class Foo {
|
||||
|
||||
public static final String CONST = "value";
|
||||
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
/**
|
||||
* {@link System}
|
||||
*/
|
||||
class Foo {
|
||||
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
class Foo {
|
||||
|
||||
void m() {
|
||||
System.out.println("");
|
||||
}
|
||||
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
import java.util.Collections;
|
||||
|
||||
class Foo {
|
||||
|
||||
void m() {
|
||||
Collections.emptyList();
|
||||
}
|
||||
|
||||
}
|
||||
+64
-9
@@ -16,26 +16,81 @@
|
||||
package com.intellij.compiler;
|
||||
|
||||
import com.intellij.JavaTestUtil;
|
||||
import com.intellij.codeInsight.daemon.DaemonAnalyzerTestCase;
|
||||
import com.intellij.lang.injection.InjectedLanguageManager;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiReference;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.impl.source.tree.injected.MyTestInjector;
|
||||
import com.intellij.psi.impl.source.tree.java.PsiReferenceExpressionImpl;
|
||||
import com.intellij.psi.search.searches.MethodReferencesSearch;
|
||||
import com.intellij.psi.search.searches.ReferencesSearch;
|
||||
import com.intellij.testFramework.CompilerTester;
|
||||
import com.intellij.testFramework.SkipSlowTestLocally;
|
||||
|
||||
@SkipSlowTestLocally
|
||||
public class CompilerReferencesFindUsagesTest extends CompilerReferencesTestBase {
|
||||
public class CompilerReferencesFindUsagesTest extends DaemonAnalyzerTestCase {
|
||||
//TODO merge tests
|
||||
private boolean myDefaultEnableState;
|
||||
private CompilerTester myCompilerTester;
|
||||
|
||||
@Override
|
||||
public void setUp() throws Exception {
|
||||
myDefaultEnableState = CompilerReferenceService.IS_ENABLED_KEY.asBoolean();
|
||||
CompilerReferenceService.IS_ENABLED_KEY.setValue(true);
|
||||
super.setUp();
|
||||
myCompilerTester = new CompilerTester(myModule);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void tearDown() throws Exception {
|
||||
try {
|
||||
CompilerReferenceService.IS_ENABLED_KEY.setValue(myDefaultEnableState);
|
||||
myCompilerTester.tearDown();
|
||||
}
|
||||
finally {
|
||||
myCompilerTester = null;
|
||||
super.tearDown();
|
||||
}
|
||||
}
|
||||
|
||||
protected String getTestDataPath() {
|
||||
return JavaTestUtil.getJavaTestDataPath() + "/compiler/compilerReferenceFindUsages/";
|
||||
}
|
||||
|
||||
public void testFindUsagesInInjectedCode() {
|
||||
public void testLibMethodUsage() throws Exception {
|
||||
configureByFile(getName() + "/Foo.java");
|
||||
myCompilerTester.rebuild();
|
||||
PsiMethod methodToSearch = myJavaFacade.findClass(CommonClassNames.JAVA_UTIL_COLLECTIONS).findMethodsByName("emptyList", false)[0];
|
||||
assertOneElement(MethodReferencesSearch.search(methodToSearch).findAll());
|
||||
}
|
||||
|
||||
public void testLibClassUsage() throws Exception {
|
||||
configureByFile(getName() + "/Foo.java");
|
||||
myCompilerTester.rebuild();
|
||||
PsiClass classForSearch = myJavaFacade.findClass("java.lang.System");
|
||||
assertOneElement(ReferencesSearch.search(classForSearch).findAll());
|
||||
}
|
||||
|
||||
public void testLibClassInJavaDocUsage() throws Exception {
|
||||
configureByFile(getName() + "/Foo.java");
|
||||
myCompilerTester.rebuild();
|
||||
PsiClass classForSearch = myJavaFacade.findClass("java.lang.System");
|
||||
assertOneElement(ReferencesSearch.search(classForSearch).findAll());
|
||||
}
|
||||
|
||||
public void testCompileTimeConstFindUsages() throws Exception {
|
||||
configureByFiles(getName(), getName() + "/Bar.java", getName() + "/Foo.java");
|
||||
PsiField classForSearch = findClass("Foo").findFieldByName("CONST", false);
|
||||
PsiElement referenceBefore = assertOneElement(ReferencesSearch.search(classForSearch).findAll()).getElement();
|
||||
myCompilerTester.rebuild();
|
||||
PsiElement referenceAfter = assertOneElement(ReferencesSearch.search(classForSearch).findAll()).getElement();
|
||||
assertTrue(referenceBefore == referenceAfter);
|
||||
}
|
||||
|
||||
public void testFindUsagesInInjectedCode() throws Exception {
|
||||
new MyTestInjector(getPsiManager()).injectAll(getTestRootDisposable());
|
||||
myFixture.configureByFile(getName() + "/Foo.java");
|
||||
rebuildProject();
|
||||
PsiClass classForSearch = myFixture.getJavaFacade().findClass("java.lang.System");
|
||||
configureByFile(getName() + "/Foo.java");
|
||||
myCompilerTester.rebuild();
|
||||
PsiClass classForSearch = myJavaFacade.findClass("java.lang.System");
|
||||
PsiReference reference = assertOneElement(ReferencesSearch.search(classForSearch).findAll());
|
||||
assertTrue(InjectedLanguageManager.getInstance(getProject()).isInjectedFragment(((PsiReferenceExpressionImpl)reference).getContainingFile()));
|
||||
assertTrue(InjectedLanguageManager.getInstance(getProject()).isInjectedFragment(reference.getElement().getContainingFile()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
cmake_minimum_required(VERSION 3.1.0)
|
||||
project(breakgen)
|
||||
|
||||
include_directories($ENV{JAVA_HOME}/include $ENV{JAVA_HOME}/include/win32)
|
||||
|
||||
add_library(breakgen SHARED AppMain.c)
|
||||
@@ -1,24 +0,0 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 11.00
|
||||
# Visual Studio 2010
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "breakgen", "breakgen.vcxproj", "{AE14C87F-E99B-4363-BE34-917FAF98258F}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{AE14C87F-E99B-4363-BE34-917FAF98258F}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{AE14C87F-E99B-4363-BE34-917FAF98258F}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{AE14C87F-E99B-4363-BE34-917FAF98258F}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{AE14C87F-E99B-4363-BE34-917FAF98258F}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{AE14C87F-E99B-4363-BE34-917FAF98258F}.Release|Win32.Build.0 = Release|Win32
|
||||
{AE14C87F-E99B-4363-BE34-917FAF98258F}.Release|x64.ActiveCfg = Release|x64
|
||||
{AE14C87F-E99B-4363-BE34-917FAF98258F}.Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
@@ -1,337 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="9,00"
|
||||
Name="breakgen"
|
||||
ProjectGUID="{AE14C87F-E99B-4363-BE34-917FAF98258F}"
|
||||
RootNamespace="breakgen"
|
||||
Keyword="Win32Proj"
|
||||
TargetFrameworkVersion="0"
|
||||
>
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
<Platform
|
||||
Name="x64"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory="Debug"
|
||||
IntermediateDirectory="Debug"
|
||||
ConfigurationType="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="4"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory="Release"
|
||||
IntermediateDirectory="Release"
|
||||
ConfigurationType="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="C:\Java\jdk1.6.0_14\include;C:\Java\jdk1.6.0_14\include\win32"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="1"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Debug|x64"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;"
|
||||
MinimalRebuild="true"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="3"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||
ConfigurationType="2"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TargetEnvironment="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
AdditionalIncludeDirectories="C:\Java\jdk1.6.0_14\include;C:\Java\jdk1.6.0_14\include\win32"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;"
|
||||
RuntimeLibrary="0"
|
||||
UsePrecompiledHeader="0"
|
||||
WarningLevel="3"
|
||||
Detect64BitPortabilityProblems="true"
|
||||
DebugInformationFormat="3"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="2"
|
||||
OptimizeReferences="2"
|
||||
EnableCOMDATFolding="2"
|
||||
TargetMachine="17"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<Filter
|
||||
Name="Header Files"
|
||||
Filter="h;hpp;hxx;hm;inl;inc;xsd"
|
||||
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
|
||||
>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Resource Files"
|
||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
|
||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||
>
|
||||
</Filter>
|
||||
<Filter
|
||||
Name="Source Files"
|
||||
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||
>
|
||||
<File
|
||||
RelativePath=".\AppMain.c"
|
||||
>
|
||||
</File>
|
||||
</Filter>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
@@ -1,157 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Debug|x64">
|
||||
<Configuration>Debug</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|Win32">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>Win32</Platform>
|
||||
</ProjectConfiguration>
|
||||
<ProjectConfiguration Include="Release|x64">
|
||||
<Configuration>Release</Configuration>
|
||||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{AE14C87F-E99B-4363-BE34-917FAF98258F}</ProjectGuid>
|
||||
<RootNamespace>breakgen</RootNamespace>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
|
||||
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
|
||||
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
||||
</ImportGroup>
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Debug\</OutDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\bin\win</OutDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</LinkIncremental>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Platform)\$(Configuration)\</OutDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
|
||||
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">..\..\bin\win</OutDir>
|
||||
<LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</LinkIncremental>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(JdkPath)\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(JdkPath)\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(JdkPath)\include;$(IncludePath)</IncludePath>
|
||||
<IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(JdkPath)\include;$(IncludePath)</IncludePath>
|
||||
<TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectName)64</TargetName>
|
||||
</PropertyGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
|
||||
<AdditionalIncludeDirectories>$(JdkPath)\include;$(JdkPath)\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(JdkPath)\include;$(JdkPath)\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX86</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<MinimalRebuild>true</MinimalRebuild>
|
||||
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
|
||||
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
<AdditionalIncludeDirectories>$(JdkPath)\include;$(JdkPath)\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
||||
<Midl>
|
||||
<TargetEnvironment>X64</TargetEnvironment>
|
||||
</Midl>
|
||||
<ClCompile>
|
||||
<AdditionalIncludeDirectories>$(JdkPath)\include;$(JdkPath)\include\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;BREAKGEN_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<PrecompiledHeader>
|
||||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<GenerateDebugInformation>true</GenerateDebugInformation>
|
||||
<SubSystem>Windows</SubSystem>
|
||||
<OptimizeReferences>true</OptimizeReferences>
|
||||
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
||||
<TargetMachine>MachineX64</TargetMachine>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="AppMain.c" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="Header Files">
|
||||
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
|
||||
<Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Resource Files">
|
||||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Source Files">
|
||||
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
|
||||
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="AppMain.c">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -0,0 +1,22 @@
|
||||
SET CMAKE=%CMAKE_PATH%\bin\cmake
|
||||
|
||||
RMDIR /S /Q build32
|
||||
MKDIR build32
|
||||
CD build32
|
||||
SET JAVA_HOME=%JDK_18%
|
||||
"%CMAKE%" -G "Visual Studio 12 2013" -T v120_xp ..
|
||||
IF ERRORLEVEL 1 EXIT 1
|
||||
"%CMAKE%" --build . --config Release
|
||||
IF ERRORLEVEL 1 EXIT 2
|
||||
CD ..
|
||||
|
||||
RMDIR /S /Q build64
|
||||
MKDIR build64
|
||||
CD build64
|
||||
SET JAVA_HOME=%JDK_18_x64%
|
||||
"%CMAKE%" -G "Visual Studio 12 2013" -A x64 -T v120_xp ..
|
||||
IF ERRORLEVEL 1 EXIT 3
|
||||
"%CMAKE%" --build . --config Release
|
||||
IF ERRORLEVEL 1 EXIT 4
|
||||
RENAME Release\breakgen.dll breakgen64.dll
|
||||
CD ..
|
||||
@@ -38,7 +38,7 @@ public class UsageViewSettings implements PersistentStateComponent<UsageViewSett
|
||||
public boolean IS_SHOW_PACKAGES = true;
|
||||
public boolean IS_SHOW_METHODS = false;
|
||||
public boolean IS_AUTOSCROLL_TO_SOURCE = false;
|
||||
public boolean IS_FILTER_DUPLICATED_LINE = false;
|
||||
public boolean IS_FILTER_DUPLICATED_LINE = true;
|
||||
public boolean IS_SHOW_MODULES = false;
|
||||
public boolean IS_PREVIEW_USAGES = false;
|
||||
public boolean IS_SORT_MEMBERS_ALPHABETICALLY = true;
|
||||
|
||||
@@ -310,11 +310,6 @@ public class GraphCommitCellRenderer extends TypeSafeTableCellRenderer<GraphComm
|
||||
public int getWidth() {
|
||||
return myWidth;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public MyComponent getTemplateComponent() {
|
||||
return myTemplateComponent;
|
||||
}
|
||||
}
|
||||
|
||||
private class MyComponentWithFadeOut extends MyComponent {
|
||||
|
||||
+1
-1
@@ -31,7 +31,7 @@ public class ConvertInterfaceToClassTest extends IPPTestCase {
|
||||
fail("Conflict not detected");
|
||||
}
|
||||
catch (BaseRefactoringProcessor.ConflictsInTestsException e) {
|
||||
assertEquals("Functional expression in Test will not compile after converting class <b><code>FunctionalExpressions</code></b> to a class", e.getMessage());
|
||||
assertEquals("() -> {...} in Test will not compile after converting class <b><code>FunctionalExpressions</code></b> to a class", e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -522,7 +522,8 @@ public class GitHistoryUtils {
|
||||
catch (Throwable t) {
|
||||
if (parseError.isNull()) {
|
||||
parseError.set(t);
|
||||
LOG.error("Could not parse \" " + builder.toString() + "\"", t);
|
||||
LOG.error("Could not parse \" " + StringUtil.escapeStringCharacters(builder.toString()) + "\"\n" +
|
||||
"Command " + handler.printableCommandLine(), t);
|
||||
}
|
||||
}
|
||||
}, 0);
|
||||
@@ -537,23 +538,46 @@ public class GitHistoryUtils {
|
||||
int bufferSize)
|
||||
throws VcsException {
|
||||
final StringBuilder buffer = new StringBuilder();
|
||||
final Ref<Boolean> foundRecordEnd = Ref.create(false);
|
||||
final Ref<VcsException> ex = new Ref<>();
|
||||
final AtomicInteger records = new AtomicInteger();
|
||||
handler.addLineListener(new GitLineHandlerListener() {
|
||||
@Override
|
||||
public void onLineAvailable(String line, Key outputType) {
|
||||
try {
|
||||
// format of the record is <RECORD_START>.*<RECORD_END>.*
|
||||
// then next record goes
|
||||
// (rather inconveniently, after RECORD_END there is a list of modified files)
|
||||
// so here I'm trying to find text between two RECORD_START symbols
|
||||
// that simultaneously contains a RECORD_END
|
||||
// this helps to deal with commits like a929478f6720ac15d949117188cd6798b4a9c286 in linux repo that have RECORD_START symbols in the message
|
||||
// wont help with RECORD_END symbols in the message however (have not seen those yet)
|
||||
|
||||
String tail = null;
|
||||
int nextRecordStart = line.indexOf(GitLogParser.RECORD_START);
|
||||
if (nextRecordStart == -1) {
|
||||
buffer.append(line).append("\n");
|
||||
if (!foundRecordEnd.get()) {
|
||||
int recordEnd = line.indexOf(GitLogParser.RECORD_END);
|
||||
if (recordEnd != -1) {
|
||||
foundRecordEnd.set(true);
|
||||
buffer.append(line.substring(0, recordEnd + 1));
|
||||
line = line.substring(recordEnd + 1);
|
||||
}
|
||||
else {
|
||||
buffer.append(line).append("\n");
|
||||
}
|
||||
}
|
||||
else if (nextRecordStart == 0) {
|
||||
tail = line + "\n";
|
||||
}
|
||||
else {
|
||||
buffer.append(line.substring(0, nextRecordStart));
|
||||
tail = line.substring(nextRecordStart) + "\n";
|
||||
|
||||
if (foundRecordEnd.get()) {
|
||||
int nextRecordStart = line.indexOf(GitLogParser.RECORD_START);
|
||||
if (nextRecordStart == -1) {
|
||||
buffer.append(line).append("\n");
|
||||
}
|
||||
else if (nextRecordStart == 0) {
|
||||
tail = line + "\n";
|
||||
}
|
||||
else {
|
||||
buffer.append(line.substring(0, nextRecordStart));
|
||||
tail = line.substring(nextRecordStart) + "\n";
|
||||
}
|
||||
}
|
||||
|
||||
if (tail != null) {
|
||||
@@ -562,6 +586,7 @@ public class GitHistoryUtils {
|
||||
buffer.setLength(0);
|
||||
}
|
||||
buffer.append(tail);
|
||||
foundRecordEnd.set(false);
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
|
||||
@@ -26,6 +26,8 @@ import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.ExceptionUtil;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.vcs.log.VcsFullCommitDetails;
|
||||
import com.intellij.vcsUtil.VcsUtil;
|
||||
import git4idea.GitFileRevision;
|
||||
import git4idea.GitRevisionNumber;
|
||||
@@ -134,7 +136,8 @@ public class GitHistoryUtilsTest extends GitSingleRepoTest {
|
||||
String[] parents;
|
||||
if (details.length > 2) {
|
||||
parents = details[2].split(" ");
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
parents = ArrayUtil.EMPTY_STRING_ARRAY;
|
||||
}
|
||||
final GitTestRevision revision = new GitTestRevision(details[0], details[1], parents, commitMessages[i],
|
||||
@@ -290,14 +293,14 @@ public class GitHistoryUtilsTest extends GitSingleRepoTest {
|
||||
|
||||
@Test
|
||||
public void testGetCurrentRevision() throws Exception {
|
||||
GitRevisionNumber revisionNumber = (GitRevisionNumber) GitHistoryUtils.getCurrentRevision(myProject, toFilePath(bfile), null);
|
||||
GitRevisionNumber revisionNumber = (GitRevisionNumber)GitHistoryUtils.getCurrentRevision(myProject, toFilePath(bfile), null);
|
||||
assertEquals(revisionNumber.getRev(), myRevisions.get(0).myHash);
|
||||
assertEquals(revisionNumber.getTimestamp(), myRevisions.get(0).myDate);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetCurrentRevisionInMasterBranch() throws Exception {
|
||||
GitRevisionNumber revisionNumber = (GitRevisionNumber) GitHistoryUtils.getCurrentRevision(myProject, toFilePath(bfile), "master");
|
||||
GitRevisionNumber revisionNumber = (GitRevisionNumber)GitHistoryUtils.getCurrentRevision(myProject, toFilePath(bfile), "master");
|
||||
assertEquals(revisionNumber.getRev(), myRevisions.get(0).myHash);
|
||||
assertEquals(revisionNumber.getTimestamp(), myRevisions.get(0).myDate);
|
||||
}
|
||||
@@ -309,7 +312,7 @@ public class GitHistoryUtilsTest extends GitSingleRepoTest {
|
||||
addCommit("new content");
|
||||
final String[] output = log("master --pretty=%H#%at", "-n1").trim().split("#");
|
||||
|
||||
GitRevisionNumber revisionNumber = (GitRevisionNumber) GitHistoryUtils.getCurrentRevision(myProject, toFilePath(bfile), "master");
|
||||
GitRevisionNumber revisionNumber = (GitRevisionNumber)GitHistoryUtils.getCurrentRevision(myProject, toFilePath(bfile), "master");
|
||||
assertEquals(revisionNumber.getRev(), output[0]);
|
||||
assertEquals(revisionNumber.getTimestamp(), GitTestRevision.gitTimeStampToDate(output[1]));
|
||||
}
|
||||
@@ -323,7 +326,7 @@ public class GitHistoryUtilsTest extends GitSingleRepoTest {
|
||||
public void testGetLastRevisionForExistingFile() throws Exception {
|
||||
final ItemLatestState state = GitHistoryUtils.getLastRevision(myProject, toFilePath(bfile));
|
||||
assertTrue(state.isItemExists());
|
||||
final GitRevisionNumber revisionNumber = (GitRevisionNumber) state.getNumber();
|
||||
final GitRevisionNumber revisionNumber = (GitRevisionNumber)state.getNumber();
|
||||
assertEquals(revisionNumber.getRev(), myRevisions.get(0).myHash);
|
||||
assertEquals(revisionNumber.getTimestamp(), myRevisions.get(0).myDate);
|
||||
}
|
||||
@@ -378,7 +381,7 @@ public class GitHistoryUtilsTest extends GitSingleRepoTest {
|
||||
|
||||
@Test
|
||||
public void testOnlyHashesHistory() throws Exception {
|
||||
final List<Pair<SHAHash,Date>> history = GitHistoryUtils.onlyHashesHistory(myProject, toFilePath(bfile), myProjectRoot);
|
||||
final List<Pair<SHAHash, Date>> history = GitHistoryUtils.onlyHashesHistory(myProject, toFilePath(bfile), myProjectRoot);
|
||||
assertEquals(history.size(), myRevisionsAfterRename.size());
|
||||
Iterator<GitTestRevision> itAfterRename = myRevisionsAfterRename.iterator();
|
||||
for (Pair<SHAHash, Date> pair : history) {
|
||||
@@ -388,10 +391,25 @@ public class GitHistoryUtilsTest extends GitSingleRepoTest {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoadingDetailsWithU0001Character() throws Exception {
|
||||
List<VcsFullCommitDetails> details = ContainerUtil.newArrayList();
|
||||
|
||||
String message = "subject containing \u0001 symbol in it\n\ncommit body containing \u0001 symbol in it";
|
||||
touch("file.txt", "content");
|
||||
addCommit(message);
|
||||
|
||||
GitHistoryUtils.loadAllDetails(myProject, myRepo.getRoot(), details::add);
|
||||
|
||||
VcsFullCommitDetails lastCommit = ContainerUtil.getFirstItem(details);
|
||||
assertNotNull(lastCommit);
|
||||
assertEquals(message, lastCommit.getFullMessage());
|
||||
}
|
||||
|
||||
private void assertHistory(@NotNull List<? extends VcsFileRevision> actualRevisions) throws IOException, VcsException {
|
||||
assertEquals("Incorrect number of commits in history", myRevisions.size(), actualRevisions.size());
|
||||
for (int i = 0; i < actualRevisions.size(); i++) {
|
||||
assertEqualRevisions((GitFileRevision) actualRevisions.get(i), myRevisions.get(i));
|
||||
assertEqualRevisions((GitFileRevision)actualRevisions.get(i), myRevisions.get(i));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -424,7 +442,16 @@ public class GitHistoryUtilsTest extends GitSingleRepoTest {
|
||||
final byte[] myContent;
|
||||
private String[] myParents;
|
||||
|
||||
public GitTestRevision(String hash, String gitTimestamp, String[] parents, String commitMessage, String authorName, String authorEmail, String committerName, String committerEmail, String branch, String content) {
|
||||
public GitTestRevision(String hash,
|
||||
String gitTimestamp,
|
||||
String[] parents,
|
||||
String commitMessage,
|
||||
String authorName,
|
||||
String authorEmail,
|
||||
String committerName,
|
||||
String committerEmail,
|
||||
String branch,
|
||||
String content) {
|
||||
myHash = hash;
|
||||
myDate = gitTimeStampToDate(gitTimestamp);
|
||||
myParents = parents;
|
||||
@@ -443,8 +470,7 @@ public class GitHistoryUtilsTest extends GitSingleRepoTest {
|
||||
}
|
||||
|
||||
public static Date gitTimeStampToDate(String gitTimestamp) {
|
||||
return new Date(Long.parseLong(gitTimestamp)*1000);
|
||||
return new Date(Long.parseLong(gitTimestamp) * 1000);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user