<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent posts to Discussion</title><link>https://sourceforge.net/p/proguard/discussion/</link><description>Recent posts to Discussion</description><atom:link href="https://sourceforge.net/p/proguard/discussion/feed.rss" rel="self"/><language>en</language><lastBuildDate>Mon, 04 May 2020 11:55:48 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/proguard/discussion/feed.rss" rel="self" type="application/rss+xml"/><item><title>Consistently getting "seems up to date" without processing.</title><link>https://sourceforge.net/p/proguard/discussion/182455/thread/340386e055/?limit=25#1769</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Forget it.  Was looking at the wrong config file.  Sorry !&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">SIRA_PRISE</dc:creator><pubDate>Mon, 04 May 2020 11:55:48 -0000</pubDate><guid>https://sourceforge.net45c117eeb4f119ff1f552a3477aa08d8b7c5da42</guid></item><item><title>Consistently getting "seems up to date" without processing.</title><link>https://sourceforge.net/p/proguard/discussion/182455/thread/340386e055/?limit=25#2b9e</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;I'm using a very basic configuration :&lt;/p&gt;
&lt;p&gt;-forceprocessing&lt;br/&gt;
-verbose&lt;br/&gt;
-dontshrink&lt;br/&gt;
-dontoptimize&lt;br/&gt;
-basedirectory ...&lt;br/&gt;
-injars TEST/bin/tmpserver.jar&lt;br/&gt;
-outjars ACPT/bin/sp.server.jar&lt;br/&gt;
-libraryjars ...&lt;br/&gt;
... keepcommands here&lt;/p&gt;
&lt;p&gt;The injar exists, the outjar doesn't.  Even despite the -forceprocessing option, I consistently get "output seems up to date" and outjar doesn't get created.  What am I doing wrong ?  (Oh yes, I'm working via the Ant task.)&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">SIRA_PRISE</dc:creator><pubDate>Mon, 04 May 2020 11:51:08 -0000</pubDate><guid>https://sourceforge.netf27a45f9029bd9088acd3aa49f3ce1a650eb700d</guid></item><item><title>Proguard removing square brackets in string</title><link>https://sourceforge.net/p/proguard/discussion/182456/thread/5998911650/?limit=25#b3da</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Proguard in changing the varaible definiton in interal library don't know why code is breaking because of it.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="k"&gt;Before&lt;/span&gt; &lt;span class="n"&gt;obfuscator&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;

&lt;span class="n"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;final&lt;/span&gt; &lt;span class="n"&gt;Signature&lt;/span&gt; &lt;span class="n"&gt;GET_DECLARED_METHODS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;TypeUtils&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parseSignature&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;"java.lang.reflect.Method[] getDeclaredMethods()"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="k"&gt;After&lt;/span&gt; &lt;span class="n"&gt;obfuscator&lt;/span&gt;&lt;span class="o"&gt;**&lt;/span&gt;

&lt;span class="n"&gt;private&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;final&lt;/span&gt; &lt;span class="n"&gt;Signature&lt;/span&gt; &lt;span class="n"&gt;GET_DECLARED_METHODS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;TypeUtils&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;parseSignature&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;"java.lang.reflect.Method"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">doomstone123</dc:creator><pubDate>Thu, 23 Apr 2020 12:41:30 -0000</pubDate><guid>https://sourceforge.net73a7f5b78ab9e8cfdee45d185c5ea2d6b6c1b99c</guid></item><item><title>Proguard + Spring Batch | Application context not getting loaded</title><link>https://sourceforge.net/p/proguard/discussion/182456/thread/5a4b4d47e0/?limit=25#e271</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Not sure why i am getting the below exception. This is happenning during spring application context is getting loaded. Running proguard over the executable jar.&lt;/p&gt;
&lt;p&gt;Exception in thread "main" java.lang.ExceptionInInitializerError&lt;br/&gt;
        at org.springframework.cglib.proxy.CallbackInfo.&amp;lt;clinit&amp;gt;(CallbackInfo.java:60)&lt;br/&gt;
        at org.springframework.cglib.proxy.Enhancer.setCallbackTypes(Enhancer.java:372)&lt;br/&gt;
        at org.springframework.context.annotation.ConfigurationClassEnhancer.newEnhancer(ConfigurationClassEnhancer.java:128)&lt;br/&gt;
        at org.springframework.context.annotation.ConfigurationClassEnhancer.enhance(ConfigurationClassEnhancer.java:109)&lt;br/&gt;
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.enhanceConfigurationClasses(ConfigurationClassPostProcessor.java:429)&lt;br/&gt;
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanFactory(ConfigurationClassPostProcessor.java:263)&lt;br/&gt;
        at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:286)&lt;br/&gt;
        at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:130)&lt;br/&gt;
        at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:706)&lt;br/&gt;
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:532)&lt;br/&gt;
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1&lt;br/&gt;
        at java.lang.String.substring(Unknown Source)&lt;br/&gt;
        at org.springframework.cglib.core.TypeUtils.parseSignature(TypeUtils.java:171)&lt;br/&gt;
        at org.springframework.cglib.proxy.MethodInterceptorGenerator.&amp;lt;clinit&amp;gt;(MethodInterceptorGenerator.java:44)&lt;br/&gt;
        ... 11 more&amp;lt;/clinit&amp;gt;&amp;lt;/clinit&amp;gt;&lt;/p&gt;
&lt;p&gt;Proguard Configuration&lt;br/&gt;
&lt;code&gt;&amp;lt;options&amp;gt;
                        &amp;lt;option&amp;gt;-dontnote&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-dontwarn&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-dontshrink&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-dontoptimize&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-adaptclassstrings&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keepdirectories&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keepattributes
                            Exceptions,
                            InnerClasses,
                            Signature,
                            Deprecated,
                            SourceFile,
                            LineNumberTable,
                            *Annotation*,
                            EnclosingMethod
                        &amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keepnames interface **&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keep interface ** &amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keeppackagenames&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keepparameternames&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-ignorewarnings&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keep interface * extends * { *; }&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keepclassmembers class * {
                                    @org.springframework.beans.factory.annotation.Autowired *;
                                    @org.springframework.beans.factory.annotation.Value *;
                                    @org.springframework.context.annotation.Bean *;
                                    @org.springframework.beans.factory.annotation.Qualifier *;
                                    @org.springframework.context.annotation.ComponentScan *;
                                    @org.springframework.stereotype.Repository *;
                                    @org.springframework.data.repository.NoRepositoryBean *;
                                    @org.springframework.context.annotation.Configuration *;
                                    @org.springframework.stereotype.Component *;
                                    @org.springframework.batch.core.configuration.annotation.EnableBatchProcessing *;
                                }
                        &amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keepclassmembers enum * { *; }&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keep class * implements java.io.Serializable&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keep class ch.qos.logback.** { *; }&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keep class org.slf4j.** { *; }&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keep class org.springframework.** { *; }&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keep class com.google.** { *; }&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keep class org.apache.** { *; }&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keepclassmembers class * {
                            void finalizeReferent();
                        }&amp;lt;/option&amp;gt;
                        &amp;lt;option&amp;gt;-keepclassmembers enum * {
                            public static **[] values();
                            public static ** valueOf(java.lang.String);
                        }&amp;lt;/option&amp;gt;
                    &amp;lt;/options&amp;gt;&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">doomstone123</dc:creator><pubDate>Sat, 18 Apr 2020 17:54:21 -0000</pubDate><guid>https://sourceforge.netdf9deea2153f886f75808ca8d9167ac4d8aac962</guid></item><item><title>General Questions</title><link>https://sourceforge.net/p/proguard/discussion/182455/thread/fcd4b99bb9/?limit=25#7db3</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;You should specify the output jar in the "Input/Output" tab &amp;gt; "Add output..."&lt;/p&gt;
&lt;p&gt;ProGuard doesn't obfuscate the runtime jar rt.jar, but it does need it as a library jar to process your program jar correctly.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Eric Lafortune</dc:creator><pubDate>Mon, 06 Apr 2020 20:14:29 -0000</pubDate><guid>https://sourceforge.net615ec74b2a19fe8a846328332023fcef9ebff84b</guid></item><item><title>Identify obfuscated stacktraces</title><link>https://sourceforge.net/p/proguard/discussion/182456/thread/92eb5f52f8/?limit=25#3236</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;You generally can't know for sure.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ProGuard by default uses names a, b, c,... for classes, fields and methods, but a developer can specify his or her own dictionaries.&lt;/li&gt;
&lt;li&gt;In the ProGuard examples, the source file name in a stack trace is set to "SourceFile" and many developers adopt that as well.&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Eric Lafortune</dc:creator><pubDate>Mon, 06 Apr 2020 20:08:17 -0000</pubDate><guid>https://sourceforge.net08d539e5a2fac4fe727839f8ab9a338dd34acb2e</guid></item><item><title>Identify obfuscated stacktraces</title><link>https://sourceforge.net/p/proguard/discussion/182456/thread/92eb5f52f8/?limit=25#8832</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Could someone help me out with how can I identify using code if a stacktrace is obfuscated using Proguard or not?&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Disha Shrinath Shetty</dc:creator><pubDate>Fri, 20 Mar 2020 17:02:46 -0000</pubDate><guid>https://sourceforge.net9809dba5a91fd25d91c28700774ac1089421cefd</guid></item><item><title>Optimized Classes/Objects cleaned up after GC</title><link>https://sourceforge.net/p/proguard/discussion/182456/thread/7356e8cd51/?limit=25#6f54</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;This optimization has been fixed in the sense that write-only instance field where not removed anymore which was clearly a bug. Do you maybe have some weak / soft references to avoid some data from being garbage collected until its really needed?&lt;/p&gt;
&lt;p&gt;If that is the case you probably should keep these fields explicitly like that:&lt;/p&gt;
&lt;p&gt;-keepclassmembers,allowshrinking,allowobfuscation class &lt;em&gt;&lt;em&gt; {&lt;br/&gt;
   java.lang.ref.WeakReferences &lt;/em&gt;;&lt;br/&gt;
   java.lang.ref.SoftReference &lt;/em&gt;;&lt;br/&gt;
}&lt;/p&gt;
&lt;p&gt;That will disable optimization for fields that have this type.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">T. Neidhart</dc:creator><pubDate>Wed, 18 Dec 2019 12:18:02 -0000</pubDate><guid>https://sourceforge.net3f9470504d25980db2fe7dc6935ea72145d5103e</guid></item><item><title>Optimized Classes/Objects cleaned up after GC</title><link>https://sourceforge.net/p/proguard/discussion/182456/thread/7356e8cd51/?limit=25#8c96</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;In order to disable this specific optimization you can add&lt;/p&gt;
&lt;p&gt;-optimizations !field/removal/writeonly&lt;/p&gt;
&lt;p&gt;if this is not the cause, you could add a keep rule like that to prevent optimization on the affected classes:&lt;/p&gt;
&lt;p&gt;-keep,includecode class xxx { *; }&lt;/p&gt;
&lt;p&gt;where xxx refers to the fully qualified classname.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">T. Neidhart</dc:creator><pubDate>Tue, 17 Dec 2019 10:00:58 -0000</pubDate><guid>https://sourceforge.net8c0a736a8b801f4f56e2ede081e127cb6ffe332a</guid></item><item><title>Optimized Classes/Objects cleaned up after GC</title><link>https://sourceforge.net/p/proguard/discussion/182456/thread/7356e8cd51/?limit=25#c795</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Could you create a ticket at the github project and attach possibly the relevant class files when processed with 6.1.1 and 6.2.x? We have made some changes wrt write-only fields, I wonder if this might be responsible.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">T. Neidhart</dc:creator><pubDate>Tue, 17 Dec 2019 07:16:01 -0000</pubDate><guid>https://sourceforge.netdaaa2fbb1d87fd1f563b02f6a9ef39f79dc9bb42</guid></item></channel></rss>