Coder Social home page Coder Social logo

cnfree / eclipse-class-decompiler Goto Github PK

View Code? Open in Web Editor NEW
304.0 304.0 91.0 179.2 MB

Eclipse Class Decompiler integrates JD, Jad, FernFlower, CFR, Procyon seamlessly with Eclipse and allows Java developers to debug class files without source code directly

Home Page: http://www.cpupk.com/decompiler

HTML 1.45% CSS 0.01% XSLT 0.11% Java 98.43%

eclipse-class-decompiler's People

Contributors

cnfree avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eclipse-class-decompiler's Issues

plugin do not work in Eclipse version:Oxygen.1a Release (4.7.1a)

eclipse version info:

Eclipse Java EE IDE for Web Developers.

Version: Oxygen.1a Release (4.7.1a)
Build id: 20171005-1200

stack:

java.lang.NoSuchMethodError: org.eclipse.jdt.internal.core.SourceMapper.mapSource(Lorg/eclipse/jdt/core/IType;[CLorg/eclipse/jdt/internal/compiler/env/IBinaryType;)V
at org.sf.feeling.decompiler.util.DecompileUtil.updateSourceRanges(DecompileUtil.java:176)
at org.sf.feeling.decompiler.util.DecompileUtil.checkAndUpdateCopyright(DecompileUtil.java:119)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:228)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:151)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:143)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doSetInput(JavaDecompilerClassFileEditor.java:525)
at org.eclipse.ui.texteditor.AbstractTextEditor$5.run(AbstractTextEditor.java:3154)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:437)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:353)
at org.eclipse.ui.internal.WorkbenchWindow$14.run(WorkbenchWindow.java:2195)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2191)
at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3172)
at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3197)
at org.eclipse.ui.internal.EditorReference.initialize(EditorReference.java:362)

Preference - Check for major version updates, is ignored

If I deselect preference "Check for major version updates" it is still trying to check for updates on every startup. It is a bit annoying because I work behind a proxy (not configured in eclipse) and it just hangs in a background.

szoter_image

Oxygen: Additional JavaDoc Hover Added

After installation there is an additional Java Editor Hover added for JavaDoc. It's second in the list and causes the Variable Values hover to be rendered useless while debugging.
untitled-1

No all the classes can be decompiled.

  1. OS
    CentOS 7.3

  2. JDK Edition and version.
    openjdk version "1.8.0_131"
    OpenJDK Runtime Environment (build 1.8.0_131-b12)
    OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

  3. Eclipse:
    Eclipse Java EE IDE for Web Developers.
    Version: Neon.3 Release (4.6.3)
    Build id: 20170314-1500

  4. Eclipse Class Decompiler
    Version: 2.9.4
    Build id: 20170703

  5. Eclipse Class Decompiler setting.
    image

  6. Observations.
    Project description: The MyPlugin Eclipse project is a project created using the Eclipse wizard. I added an Oracle JDBC driver's jar to the project for testing purpose.

Observations.

  1. The classes in jars in the red rectangle can be decompiled.
  2. The classes in jars in the green rectangle can't be decompiled.
    image
  3. This issue appears in the recent releases, but I am not sure exactly when it was introduced. I have another environment where I have eclipse Neon.3 Release (4.6.3) and Eclipse Class Decompiler 2.9.0. It works well.

@cnfree, could you help to see where is the problem.

Oxygen.2 Release (4.7.2) can not open class in default way

在首选项中启动时勾选了设置class反编译查看器作为省缺class文件编辑器,但是在jar包中打开的还是无法显示内容,一直提示无法找到源码,需要右键class打开方式的形式才能打开,使用的反编译版本为 org.sf.feeling.decompiler.jad_3.0.0.201709092115.jar
image
必须以右键class打开方式的形式才能打开
image

首选项中默认形式打开也有设置
image

Quick outline not working correctly

When I invoke the "quick outline" (cmd-o) and I double-click on a method, the cursor doesn't jumpt to that location.
Instead I have to fallback to search the decompiled file.

!! Illegal User Tracking !!

The code track the user with the Network Interface MAC Adress, an Generated UUID , IP operating system and more. With using the MAC-Address the user is trackable across networks. This is against the law in germany. Also the code suggest that it is intended to catch advertisement clicks.

{"user_hash":"-----",
"user_uuid":"----",
"cip":"...","country":"","country_code":"","province":null,"city":null,
"user_country":"US","os_name":"
","os_arch":"*","os_version":".",
"java_version":"","eclipse_product":"org.eclipse.epp.package.jee.product",
"eclipse_version":"
","decompiler_version":"","decompile_count":,
"total_decompile_count":,"adclick_count":,"total_adclick_count":*,"patch":"","fragment":""}

Inner classes in a class will not decompiled

Hi!

The issue is present in current eclipse release and also before.

Inner classes, i.e. org.mycompany.mainclass$innerclass will not decompile.

I've tried to decompile the innerclass and also the mainclass, in both cases only the mainclass is shown without the content of the inner classes.

Thanks for your hard work.

Update failing

I'm on Eclipse Neon.3 (4.6.3) and when the most recent decompiler update (early June 2017) is installed, it throws this error:

java.lang.IllegalArgumentException: Profile id _SELF_ is not registered.
	at org.eclipse.equinox.internal.p2.director.ProfileChangeRequest.createByProfileId(ProfileChangeRequest.java:46)
	at org.eclipse.equinox.p2.operations.InstallOperation.computeProfileChangeRequest(InstallOperation.java:74)
	at org.eclipse.equinox.p2.operations.ProfileChangeOperation.makeResolveJob(ProfileChangeOperation.java:165)
	at org.eclipse.equinox.p2.operations.ProfileChangeOperation.resolveModal(ProfileChangeOperation.java:113)
	at org.eclipse.epp.internal.mpc.ui.operations.ProfileChangeOperationComputer.resolveModal(ProfileChangeOperationComputer.java:378)
	at org.eclipse.epp.internal.mpc.ui.operations.ProfileChangeOperationComputer.resolve(ProfileChangeOperationComputer.java:367)
	at org.eclipse.epp.internal.mpc.ui.operations.ProfileChangeOperationComputer.resolveInstall(ProfileChangeOperationComputer.java:279)
	at org.eclipse.epp.internal.mpc.ui.operations.ProfileChangeOperationComputer.run(ProfileChangeOperationComputer.java:177)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)

I'm not sure which part of the update is failing, but I uninstalled the plugin and only installed the required core package and it seems to be fine.

Update: Even though I only installed the required core, Eclipse reported that an update was available and tried to install all packages. I unselected all except for the required core and it threw the error again. A screenshot of the error is here: http://imgur.com/a/5d1vA

Source code alignment without showing line numbers as comments

Is there a strict reason as to why the "Align code for debugging" function is only available when the "Output original line numbers as comments" function has been enabled? If that would work without the comments the code would be much easier to read. BTW: procyon can decompile that way out of the box, e.g. on the command line using the 'stretch lines' option.

cheers,
Marcus

使用Eclipse-Class-Decompiler导出反编译代码时文件编码能不能指定?现在默认方案使用不方便

我是中文Windows 7操作系统,使用Eclipse-Class-Decompiler导出反编译代码,代码中有中文时默认的字符集编码是GB2312,一般好像是UTF-8和ANSI(windows),代码的字符集比较乱,能不能在导出时个性化指定呢——允许选择常用的或者是系统支持的字符集编码,例如UTF-8、GB2312、GBK、ISO8859-1等?
这时还需要考虑原来编码和指定编码之间的转换,复杂性提高了,在使用时应该更方便些

Debugging not working correctly

When stepping into a decompiled class, the first breakpoint is always at line 1.
It should directly go to the correct line.
Also for each step a new window is opened.

Overall seems since the last updates, the performance and reliability has degraded a lot.
I'm on 4.6.2 with the latest updates.

Eclipse Oxygen fails to start after installing ECD

Hi,

after installing v2.9.7 in Eclipse Oxygen, Eclipse will refuse to startup for a second time with an NPE
at org.sf.feeling.decompiler.SetupRunnable.setupPartListener(SetupRunnable.java:61). Tested earlier versions including v2.9.2 which all suffer by the same Issue.

To restore Eclipse the complete .metadata directory needs to be deleted. I'm running a minimal JDT installation with SVN integration based on the Eclipse Platform Runtime Binary.

!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NullPointerException)
at org.eclipse.swt.SWT.error(SWT.java:4533)
at org.eclipse.swt.SWT.error(SWT.java:4448)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:185)
at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4497)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4110)
at org.eclipse.swt.widgets.Display.release(Display.java:4162)
at org.eclipse.swt.graphics.Device.dispose(Device.java:235)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:167)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
at org.eclipse.equinox.launcher.Main.main(Main.java:1472)
Caused by: java.lang.NullPointerException
at org.sf.feeling.decompiler.SetupRunnable.setupPartListener(SetupRunnable.java:61)
at org.sf.feeling.decompiler.SetupRunnable.run(SetupRunnable.java:43)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
... 18 more

Eclipse Oxygen error: editor could not be initialized

Hi,
When decompiling a class in eclipse oxygen (4.7.0, build id 20170620-1800), with version 2.9.2 of the decompiler, eclipse shows the error: "editor could not be initialized". Apparently, eclipse can't load the Class Decompiler Viewer. The same error in eclipse Neon.3, but not in Mars.2
This is the stack trace of the error:
java.lang.NullPointerException
at org.sf.feeling.decompiler.editor.BaseDecompilerSourceMapper.findSource(BaseDecompilerSourceMapper.java:185)
at org.sf.feeling.decompiler.editor.DecompilerSourceMapper.findSource(DecompilerSourceMapper.java:74)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:131)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:104)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:96)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doSetInput(JavaDecompilerClassFileEditor.java:463)
at org.eclipse.ui.texteditor.AbstractTextEditor$5.run(AbstractTextEditor.java:3154)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:437)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:353)
at org.eclipse.ui.internal.WorkbenchWindow$14.run(WorkbenchWindow.java:2180)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2176)
at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3172)
at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3197)
at org.eclipse.ui.internal.EditorReference.initialize(EditorReference.java:362)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:333)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:990)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:955)
at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:124)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:399)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:318)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:105)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56)
at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:997)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:666)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:772)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:743)

'Default Class Decompiler' setting can not be saved

  1. Select the FernFlower in preference page , and apply it.
  2. Restart the Eclipse.
  3. 'Default Class Decompiler' is 'JD-Core'...

It will occur only when selected FernFlower.
In the case of other selection is OK.

References in decompiled classes always 0

Hi, i don't know if this is a bug or just a missing feature, but when i browse .class files with the old and trusty JD-Eclipse plugin i can search for references to fields, methods and classes. Your plugins decompilers are much newer and better, but when i do reference searches in your .class files, they always come up 0, even when there is references in the file itself.

Neon.3 Release (4.6.3)的调试问题仍然存在

已经安装最新版本的插件,2.9.14.20170714,但还是不能进行调试,点击调试模式,反编译出来的代码没有行数提示,打断点进行调试的时候,可能拦截到断点,但页面显示source not found,无法看着代码进行调试,希望作者能把这个问题修复。

对maven支持不友好

maven在无源码的时候会从**仓库下载javadoc和与源码,但是因为Decompiler成了缺省的class viewer,导致只能通过反编译方式编译源码。是否可以增加开关进行控制?

Eclipse cannot decompile classes

Hi I've got a problem when decompile
Says:
The JAR of this class file belongs to container 'Project and External Dependencies' which does not allow modifications to source attachments on its entries.

插件导致STS无响应

使用STS 3.8(基于Eclipse 4.6),通过在dropins目录中添加link文件的方式,将本插件添加到STS中。
STS启动后,在Package Explorer中在工程文件夹上点击鼠标右键,导致STS无响应,只能杀进程。

在工程的子文件夹或者文件上右键都可以正常弹出右键菜单。

Javadoc's stop working

When you have a class with no source but that has attached Javadocs, Eclipse integrates the Javadocs into the GUI in tooltips and the Javadoc view. When you use Eclipse-Class-Decompiler to decompile the class Eclipse no longer integrates the Javadocs so they can't be seen in the tooltips or Javadoc view. Instead a message stating "Note: This element has no attached source and the Javadoc could not be found in the attached Javadoc." is displayed. The Javadocs for the class will continue to be unavailable until the user closes and re-opens Eclipse. This has been a problem with other decompiler plugins I have used and is really frustrating. Ideally Javadocs would be reversed and applied to the decompiled code but if not then at least making them continue to show in tooltips would be great.

oxygen open class has errors

Eclipse Version: Oxygen.2 Release (4.7.2)

install version:
Eclipse Class Decompiler (Core) 2.10.0.20170815

exception:
java.lang.NoSuchMethodError: org.eclipse.jdt.internal.core.SourceMapper.mapSource(Lorg/eclipse/jdt/core/IType;[CLorg/eclipse/jdt/internal/compiler/env/IBinaryType;)V
at org.sf.feeling.decompiler.editor.BaseDecompilerSourceMapper.findSource(BaseDecompilerSourceMapper.java:261)
at org.sf.feeling.decompiler.editor.DecompilerSourceMapper.findSource(DecompilerSourceMapper.java:74)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:178)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:151)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:143)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doSetInput(JavaDecompilerClassFileEditor.java:525)
at org.eclipse.ui.texteditor.AbstractTextEditor$5.run(AbstractTextEditor.java:3154)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:437)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:353)
at org.eclipse.ui.internal.WorkbenchWindow$14.run(WorkbenchWindow.java:2195)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2191)
at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3172)
at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3197)
at org.eclipse.ui.internal.EditorReference.initialize(EditorReference.java:362)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:333)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:990)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:955)
at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:124)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:399)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:318)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:105)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56)

Gradle project cannot be decompiled

image

My gradle build script as below.

buildscript {
    ext {
        springBootVersion = '1.5.8.RELEASE'
        startClass='xxxx.xxx.xxx'
        buildType='sandbox'
        depotInfo='none'
    }
    repositories {
        jcenter()
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.4.2.RELEASE")
        classpath 'org.asciidoctor:asciidoctor-gradle-plugin:1.5.3'
        classpath 'org.ajoberstar:gradle-git-publish:0.3.2'
        classpath 'org.springframework.cloud:spring-cloud-contract-gradle-plugin:1.1.3.RELEASE'
    }
}

apply from: 'gradle/utils.gradle'
apply from: 'gradle/properties.gradle'

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'org.asciidoctor.convert'
apply plugin: 'org.ajoberstar.git-publish'
apply plugin: 'war'

apply plugin: 'groovy'
apply plugin: 'spring-cloud-contract'

apply from: 'gradle/jacoco.gradle'
apply from: 'gradle/dependency-report.gradle'

def grgit = Grgit.open(dir: projectDir)

task generateGitProperties {
    def branchName = grgit.branch.current.name
    def gitHash = grgit.head().id
    def buildTime = new Date().toString()
    delete 'src/main/resources/git.properties'
    def text = "git.commit.id=${gitHash}\ngit.build.time=${buildTime}\ngit.branch=${branchName}"
    def git = new File('/Users/yiogao/code/epc-review-notification-service/src/main/resources/git.properties')
    git.text = text

    def active = new File('active.txt')
    active.text = "${gitHash}"

    version = gitHash
}

project.tasks.classes.dependsOn(generateGitProperties)

group = 'xxx.xxxx.xxx'
version = '1.0-SNAPSHOT'



repositories {
    mavenCentral()
    maven { url "xxx.xxx.xxx" }
}

configurations.all {
    exclude group: 'com.netflix.feign', module: 'feign-core'
    exclude group: 'com.netflix.feign', module: 'feign-jackson'
    exclude group: 'com.netflix.feign', module: 'feign-gson'
    exclude group: 'com.netflix.feign', module: 'feign-hystrix'
    exclude group: 'com.netflix.feign', module: 'feign-slf4j'
    exclude (module: 'spring-boot-starter-logging')
    exclude (module: "logback-classic")
    exclude (module: 'commons-logging')
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

dependencies {
	xxx
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-contract-dependencies:1.1.3.RELEASE"
    }
}

contracts {
    testMode = 'MockMvc'
    packageWithBaseClasses = 'xxx.xxx.xxx'
    contractsDslDir = file("${project.projectDir}/src/test/resources/contracts/")
}


asciidoctor {
    sourceDir = file('src/main/docs')
    outputDir "$projectDir/src/main/resources/public"
    backends 'html5'
    attributes 'source-highlighter' : 'prettify'

}

task cleanTempDir(type: Delete) {
    delete fileTree(dir: 'src/main/resources/public')
}

clean {
    dependsOn cleanTempDir
}

build {
    dependsOn asciidoctor
}

task publish(type: GradleBuild) {
    dependsOn asciidoctor
    tasks = ['publishGhPages']
}

task wrapper(type: Wrapper) {
    gradleVersion = '4.2.1'
}

task contractTest(type: Test) {
    configure {
        systemProperty "contractTest.environment", System.getProperty("contractTest.environment")
        systemProperty "apiToken", System.getProperty("apiToken")
        systemProperty "remoteDriver", System.getProperty("remoteDriver")
    }
}

bootRun {
    dependsOn asciidoctor
    configure {
        systemProperty "AWS_REGION", System.getProperty("AWS_REGION")
        systemProperty "application.environment", "dev"
        systemProperty "spring.profiles.active", "dev"
        systemProperty "application.home", "."
    }
    jvmArgs=["-Dproject.name=${project.name}",
             "-Dapplication.name=${project.name}",
             '-Dapplication.environment=dev',
             '-Dapplication.home=.',
             '-Xdebug',
             '-Xrunjdwp:server=y,transport=dt_socket,address=5005,suspend=n']
}

war {
    manifest {
        attributes("Application-Name": "${project.name}",
                "Application-Version": "${project.version}",
                "Application-Description": "${project.description}",
                "Implementation-Title": "${project.name}",
                "Implementation-Version": "${grgit.head().id}",
                "Implementation-Vendor": "Expedia",
                "Built-By": System.getProperty("user.name"),
                "Build-Jdk": System.getProperty("java.version"),
                "Build-Time": new Date(),
                "Build": "${buildType}",
                "Branch": "${grgit.branch.current.name}",
                "Depot": "${depotInfo}",
                "mainClass": "${startClass}")
    }
}

My .classpath file

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" path="src/main/java"/>
	<classpathentry kind="src" path="src/main/resources"/>
	<classpathentry kind="src" path="src/test/java"/>
	<classpathentry kind="src" path="src/test/resources"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
	<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer">
		<attributes>
			<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
		</attributes>
	</classpathentry>
	<classpathentry kind="output" path="bin"/>
</classpath>

NullPointerException throws out while decompiling Java's Exception class.

@cnfree, Could you help to have a check to see what's problem in the latest release of Eclipse Class Decompiler?

  1. Eclipse Class Decompiler
    Version: 2.9.2
    Build id: 20170623

  2. Error info.


/** Eclipse Class Decompiler plugin, Copyright (c) 2017 Chen Chao. **/

/*
DECOMPILATION REPORT

Decompiled from: /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/jre/lib/rt.jar
Total time: 0 ms

Caught exceptions:

java.lang.NullPointerException
at org.sf.feeling.decompiler.fernflower.FernFlowerDecompiler.deltree(FernFlowerDecompiler.java:156)
at org.sf.feeling.decompiler.fernflower.FernFlowerDecompiler.decompileFromArchive(FernFlowerDecompiler.java:143)
at org.sf.feeling.decompiler.editor.BaseDecompilerSourceMapper.decompile(BaseDecompilerSourceMapper.java:425)
at org.sf.feeling.decompiler.editor.BaseDecompilerSourceMapper.findSource(BaseDecompilerSourceMapper.java:183)
at org.sf.feeling.decompiler.editor.DecompilerSourceMapper.findSource(DecompilerSourceMapper.java:74)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:131)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:104)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:96)
at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doSetInput(JavaDecompilerClassFileEditor.java:463)
at org.eclipse.ui.texteditor.AbstractTextEditor$5.run(AbstractTextEditor.java:3154)
at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:437)
at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:353)
at org.eclipse.ui.internal.WorkbenchWindow$14.run(WorkbenchWindow.java:2184)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2180)
at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3172)
at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3197)
at org.eclipse.ui.internal.EditorReference.initialize(EditorReference.java:362)
at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:318)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:966)
at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:931)
at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:151)
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:375)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:294)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:105)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74)
at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56)
at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:975)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:651)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:757)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:728)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:722)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:706)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl$1.handleEvent(PartServiceImpl.java:104)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40)
at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233)
at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:145)
at org.eclipse.swt.widgets.Display.syncExec(Display.java:5414)
at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:211)
at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36)
at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:201)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)
at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78)
at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39)
at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:94)
at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:60)
at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:173)
at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:617)
at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:581)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:770)
at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1211)
at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3261)
at org.eclipse.ui.internal.WorkbenchPage.access$25(WorkbenchPage.java:3176)
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:3158)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3153)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3117)
at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3107)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:373)
at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:179)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:256)
at org.eclipse.jdt.ui.actions.OpenAction.run(OpenAction.java:171)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.dispatchRun(SelectionDispatchAction.java:275)
at org.eclipse.jdt.ui.actions.SelectionDispatchAction.run(SelectionDispatchAction.java:249)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:473)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:565)
at org.eclipse.jface.action.ActionContributionItem.lambda$4(ActionContributionItem.java:397)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5227)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1340)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4561)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4151)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:693)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
at org.eclipse.equinox.launcher.Main.main(Main.java:1492)

*/

Cannot install new version 2.9.1.

During installation of new version 2.9.1. an error occurrs, that the repository containing bundles from version 3.0.0 cannot be found. As far I know the version 3.0.0 was released earlier and I have been prompting for update for a week, and the update could be successfully installed. Now I tried to update another instance of Eclipse IDE and it failed. I noticed that update site has changed, maybe this is the reason of problems. I tried also to remove old version at first, and then install the new one, but it didn't changed anything.
Error log thrown during attempt of installation of version 2.9.1:

An error occurred while collecting items to be installed
session context was:(profile=epp.package.java, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
No repository found containing: osgi.bundle,org.sf.feeling.decompiler.cfr,3.0.0.f20170609
No repository found containing: org.eclipse.update.feature,org.sf.feeling.decompiler.cfr,3.0.0.f20170609
No repository found containing: osgi.bundle,org.sf.feeling.decompiler.cfr.source,3.0.0.f20170609
No repository found containing: osgi.bundle,org.sf.feeling.decompiler.jad,3.0.0.f20170609
No repository found containing: org.eclipse.update.feature,org.sf.feeling.decompiler.jad,3.0.0.f20170609
No repository found containing: osgi.bundle,org.sf.feeling.decompiler.jad.source,3.0.0.f20170609
No repository found containing: osgi.bundle,org.sf.feeling.decompiler.jd.source,3.0.0.f20170609
No repository found containing: osgi.bundle,org.sf.feeling.decompiler.procyon,3.0.0.f20170609
No repository found containing: org.eclipse.update.feature,org.sf.feeling.decompiler.procyon,3.0.0.f20170609
No repository found containing: osgi.bundle,org.sf.feeling.decompiler.procyon.source,3.0.0.f20170609
No repository found containing: osgi.bundle,org.sf.feeling.decompiler.source,3.0.0.f20170609
No repository found containing: org.eclipse.update.feature,org.sf.feeling.decompiler.source,3.0.0.f20170609

I noticed also warning:

Server returned lastModified <= 0 for http://raw.githubusercontent.com/cnfree/eclipse/master/decompiler/update/content.jar.

Details of my installation:

eclipse.buildId=4.5.2.M20160212-1500
java.version=1.8.0_112
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=en_US

After latest update: can't decompile classes anymore

Yesterday or so an update of the plugin came in. Now I can't decompile certain classes anymore.

I get the following output:

/** Eclipse Class Decompiler plugin, Copyright (c) 2017 Chen Chao. **/

// Warning: No line numbers available in class file
/Users/matthias.fuchs/Projekte/holmenkollen/elk_storefront/hybris/bin/custom/elkjopstorefront/web/webroot/WEB-INF/classes/de/hybris/platform/acceleratorstorefrontcommons/forms/AddressForm.class

/*
DECOMPILATION REPORT

Decompiled from: /Users/matthias.fuchs/Projekte/holmenkollen/elk_storefront/hybris/bin/custom/elkjopstorefront/web/webroot/WEB-INF/classes/de/hybris/platform/acceleratorstorefrontcommons/forms/AddressForm.class
Total time: 470 ms

*/

It's certainly not the class file at all or the decompilers as it worked before. And I also can decompile the class file with various online tools.

Unfortunately as much as I loved this plugin, it gets more and more unusable with each update :-(

Is there a way install old versions of the plugin? I desperately need a working version again.

full eclipse deadlock(livelock?) involving JavaDecompilerBufferManager

Hey, I have recently had a few (seemingly permanent) hangs using the decompiler plugin. The issues appeared in eclipse neon after adding the decompiler plugin and working with a large workspace. The particular trigger in the current case was opening of a javadoc-tooltip.

I also managed to get a full stacktrace using the YourKit Profiler:
fullEclipseStackTrace.txt

According to the profiler, Eclipse spends most of the time in the following methods:

  • org.eclipse.core.internal.jobs.Worker.run() Worker.java
  • org.eclipse.equinox.internal.p2.updatechecker.UpdateChecker$UpdateCheckThread.run() UpdateChecker.java
  • org.eclipse.equinox.launcher.Main.run(String[]) Main.java
  • java.lang.Thread.getStackTrace()
  • org.sf.feeling.decompiler.editor.JavaDecompilerBufferManager.getBuffer(IOpenable) JavaDecompilerBufferManager.java
  • org.sf.feeling.decompiler.util.UIUtil.requestFromJavadocHover() UIUtil.java
  • org.eclipse.ui.internal.monitoring.EventLoopMonitorThread.run() EventLoopMonitorThread.java
  • java.lang.ref.Reference$ReferenceHandler.run()

I am not sure what the underlying problem is, but it seems some sort of deadlock/livelock is happening. If you need more specific information, I can try to extract that, the next time this problem occurs.

After update from 4.7.0 to 4.7.1, decompiler fails on all classes

After upgrading from eclipse 4.7.0 to 4.7.1, the decompiler no longer works. The view just says "Editor could not be initialized."

The details shows this stacktrace:

java.lang.NoSuchMethodError: org.eclipse.jdt.internal.core.SourceMapper.mapSource(Lorg/eclipse/jdt/core/IType;[CLorg/eclipse/jdt/internal/compiler/env/IBinaryType;)V at org.sf.feeling.decompiler.util.DecompileUtil.updateSourceRanges(DecompileUtil.java:176) at org.sf.feeling.decompiler.util.DecompileUtil.checkAndUpdateCopyright(DecompileUtil.java:124) at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:228) at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:151) at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doOpenBuffer(JavaDecompilerClassFileEditor.java:143) at org.sf.feeling.decompiler.editor.JavaDecompilerClassFileEditor.doSetInput(JavaDecompilerClassFileEditor.java:525) at org.eclipse.ui.texteditor.AbstractTextEditor$5.run(AbstractTextEditor.java:3154) at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:437) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:353) at org.eclipse.ui.internal.WorkbenchWindow$14.run(WorkbenchWindow.java:2195) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2191) at org.eclipse.ui.texteditor.AbstractTextEditor.internalInit(AbstractTextEditor.java:3172) at org.eclipse.ui.texteditor.AbstractTextEditor.init(AbstractTextEditor.java:3197) at org.eclipse.ui.internal.EditorReference.initialize(EditorReference.java:362) at org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:333) at sun.reflect.GeneratedMethodAccessor176.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55) at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:990) at org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:955) at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:124) at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:399) at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:318) at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162) at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:105) at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:74) at org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:56) at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:992) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:661) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:767) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:738) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:732) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:716) at org.eclipse.e4.ui.workbench.renderers.swt.StackRenderer.showTab(StackRenderer.java:1293) at org.eclipse.e4.ui.workbench.renderers.swt.LazyStackRenderer.lambda$0(LazyStackRenderer.java:68) at org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40) at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:233) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:144) at org.eclipse.swt.widgets.Display.syncExec(Display.java:4889) at org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:212) at org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36) at org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:201) at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197) at org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1) at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148) at org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135) at org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78) at org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39) at org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:52) at org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:60) at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374) at org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:173) at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:620) at org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:584) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:769) at org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1185) at org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3261) at org.eclipse.ui.internal.WorkbenchPage.access$25(WorkbenchPage.java:3176) at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:3158) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3153) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3117) at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3107) at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:373) at org.eclipse.jdt.internal.ui.javaeditor.EditorUtility.openInEditor(EditorUtility.java:179) at org.eclipse.jdt.ui.JavaUI.openInEditor(JavaUI.java:700) at org.eclipse.jdt.internal.ui.actions.OpenTypeAction.runWithEvent(OpenTypeAction.java:90) at org.eclipse.jdt.internal.ui.actions.OpenTypeAction.runWithEvent(OpenTypeAction.java:167) at org.eclipse.ui.internal.handlers.ActionDelegateHandlerProxy.execute(ActionDelegateHandlerProxy.java:288) at org.eclipse.ui.internal.handlers.E4HandlerProxy.execute(E4HandlerProxy.java:92) at sun.reflect.GeneratedMethodAccessor172.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55) at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:305) at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:239) at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132) at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152) at org.eclipse.core.commands.Command.executeWithChecks(Command.java:494) at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:487) at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.executeCommand(KeyBindingDispatcher.java:287) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.press(KeyBindingDispatcher.java:527) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.processKeyEvent(KeyBindingDispatcher.java:577) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.filterKeySequenceBindings(KeyBindingDispatcher.java:385) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher.access$0(KeyBindingDispatcher.java:331) at org.eclipse.e4.ui.bindings.keys.KeyBindingDispatcher$KeyDownFilter.handleEvent(KeyBindingDispatcher.java:88) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86) at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1271) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1078) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1088) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1130) at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1126) at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1547) at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4962) at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:364) at org.eclipse.swt.widgets.Control.windowProc(Control.java:4843) at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359) at org.eclipse.swt.widgets.Display.windowProc(Display.java:5178) at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2560) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3815) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:151) at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590) at org.eclipse.equinox.launcher.Main.run(Main.java:1499)

Don't add header to existing sources

When the plugin is enabled, it always add the header
/** Eclipse Class Decompiler plugin, Copyright (c) 2017 Chen Chao. */
when opening an existing source file.
This is very very annoying, since it adds an additional line to original sources you are using for debug, so the debugger it's always off one line when debugging.
Could you please avoid that the header is added at least for existing sources? (removing it from any file would ever be better, I understand you want to highlight your work but this can be really annoying...)

“Export Source..." "Decompiler ctrl+alt+," grey can't used 灰色不能用

我在以下这些版本试过,结果都一样:
eclipse 4.2.2, 4.6 win-x86_64, 4.7.2 win32,
java 1.6, jdk1.8.0_144 win-86_64, jdk1.8.0_152 win32
下载的是 eclipse-class-decompiler-update_v2.10.0,
eclipse MarketPlace 查找到的是 "eclipse class decompiler 3.0.0",这个版本都安装试过。

请问 "Export Source..." 和 "Decompiler ctrl+alt+," 功能为什么是灰色的不能用?

Excuse me, why "Export Source..." and "Decompiler ctrl+alt+," the function is grey and can't be used?

Can not able to find references of a method in jar.

Hi,

As you know, eclipse has a functionality to find references of a particular method (Ctrl + Shift + G). This is not working with eclipse class decompiler. I observed that jd-eclipse plugin is able to find the references in jar file.

I hope you look into this as this becomes really important when you do not have source code and you want to find references of a particular method in other classes present in jar.

Debug stepping not working correctly

Mostly when I step into a decompiled class, first the decompiler halts at the first line. Then each subsequent step forward opens a new tab with the decompiled class. The debugger seems to be at the right line (at least in the variables view) but the editor stays at the first line.

My eclipse config:
eclipse_info.txt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.