<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user">
    <title>gmane.comp.jakarta.bcel.user</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1189"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1188"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1187"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1186"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1185"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1184"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1183"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1182"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1181"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1180"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1179"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1178"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1177"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1176"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1175"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1174"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1173"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1172"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1171"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1170"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1189">
    <title>Need help with a strange issue....</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1189</link>
    <description>&lt;pre&gt;
I am implementing byte code instrumentation logic to inject inline
instructions into a set of functions
There is a very strange case, where if I insert a single load instruction:
i.e.

InstructionHandle oStart =
il.append(InstructionFactory.createLoad(Type.OBJECT, ovParams));

it sends hangs everything and sends the CPU into spin.....

Any ideas?

Thank you all

Mike




&lt;/pre&gt;</description>
    <dc:creator>mmedv</dc:creator>
    <dc:date>2012-02-04T04:45:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1188">
    <title>[NOTICE] BCEL user mailing list closing</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1188</link>
    <description>&lt;pre&gt;BCEL has moved to Apache Commons. This is the final notice that this
mailing list will be closed shortly.

The Apache Commons user list, a shared mailing list for all Commons
components, should hereafter be used for BCEL related posts. For
details on Apache Commons lists, including how to subscribe and
mailing list conventions, see:

  http://commons.apache.org/mail-lists.html

-Rahul Akolkar
 on behalf of the Jakarta PMC
&lt;/pre&gt;</description>
    <dc:creator>Rahul Akolkar</dc:creator>
    <dc:date>2011-08-03T22:45:33</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1187">
    <title>Looking for an inverse JavaClass.dump() method</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1187</link>
    <description>&lt;pre&gt;
Hello,
  Does there exist a method in bcel that does the inverse of 
what JavaClass.dump() does. Where JavaClass's dump method takes the 
JavaClass info and produces a .class file, I am looking for a method 
that takes a .class file and produces some text file with the JavaClass 
representation information on it.
-Thanks       &lt;/pre&gt;</description>
    <dc:creator>Shirley Park</dc:creator>
    <dc:date>2011-07-15T20:57:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1186">
    <title>[NOTICE] BCEL moving to Apache Commons</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1186</link>
    <description>&lt;pre&gt;BCEL is moving to Apache Commons. As part of the move, this mailing
list will be closed shortly.

The Apache Commons user list, a shared mailing list for all Commons
components, should hereafter be used for BCEL related posts. For
details on Apache Commons lists, including how to subscribe, see:

  http://commons.apache.org/mail-lists.html

-Rahul Akolkar
 on behalf of the Jakarta PMC
&lt;/pre&gt;</description>
    <dc:creator>Rahul Akolkar</dc:creator>
    <dc:date>2011-07-08T21:37:31</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1185">
    <title>instrumenting all variable access</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1185</link>
    <description>&lt;pre&gt;HI there

I need to dynamically log all read/write access to any variables/objects
during class execution in the jvm
This is for a phd parallelism research, and i have a strong background in
C/java

a. Are there any existing code out there ?
I played with BCEL to trace some of the opcodes... nice stuff



b. Can someone recommend how to add some semantic info  from the .class
source file ?
For example, i would like to know if a certain variable is a for-loop
counter

Has anyone combined some of the syntax-tree parsers with BCEL ?



Thanks for any suggestions or input


yazriel atty  gmail dotty com
&lt;/pre&gt;</description>
    <dc:creator>y a</dc:creator>
    <dc:date>2011-07-01T07:50:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1184">
    <title>Re: How to push a Custom Type Object on Stack</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1184</link>
    <description>&lt;pre&gt;
I suggest you formulate how you'd create the object in Java, and then
simply run the resulting class through BCELifier to get an idea of how
the corresponding BCEL code would look like.

http://jakarta.apache.org/bcel/apidocs/org/apache/bcel/util/BCELifier.html

Martin

&lt;/pre&gt;</description>
    <dc:creator>Martin von Gagern</dc:creator>
    <dc:date>2011-06-10T06:24:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1183">
    <title>Re: How to push a Custom Type Object on Stack</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1183</link>
    <description>&lt;pre&gt;
Simply create the object; it will lie on the stack after creation until
you do something else with it. Or if you don't want to create it but
load it from some "static final" constant, then use GETSTATIC.

Martin

&lt;/pre&gt;</description>
    <dc:creator>Martin von Gagern</dc:creator>
    <dc:date>2011-06-08T06:24:24</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1182">
    <title>Re: How to intercept field access using BCEL</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1182</link>
    <description>&lt;pre&gt;Am 06.06.11 20:06, schrieb Ganesh Kumar Choudhary:

You'll have to modify all classes that do access the field. You can
first examine the constant pool of every class, see if it refers to the
field (i.e. has a matching ConstantFieldref). If that is the case,
you'll have to process the bytecode for each method and insert
appropriate function calls before and/or after the field reference. Or,
as an alternative, replace the field load with a method call using some
BCEL-generated method to wrap the field access.

&lt;/pre&gt;</description>
    <dc:creator>Martin von Gagern</dc:creator>
    <dc:date>2011-06-08T09:04:21</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1181">
    <title>Re: How to push a Custom Type Object on Stack</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1181</link>
    <description>&lt;pre&gt;What i want to do is i have a class 
class Automobile {

public void getEngine(int carNo,EngineClass engineClassObj){

System.out.println("EngineNo="+engineClassObj.sisNo);

}
}

Now when i load "Automobile" class  in  memory.
ilist = new InstructionList();
        ilist.append(InstructionConstants.ALOAD_0);
        ilist.append(new PUSH(pgen,345));
////Hear Now i have to also push the Object on Stack
        ilist.append(ifact.createInvoke(_invoking_ClassName, 
_invoking_MethodName, Type.INT,
           new Type[] { Type.INT,Type.OBJECT }, Constants.INVOKEVIRTUAL));
         ilist.append(InstructionConstants.IRETURN);


1-if i use createNew() method and generate new object then how i am going to 
fill its fields value?
2-or if i firstly push all fields values of Engine type Obj on Stack using PUSH 
then i can some how construct object on memory &amp;amp; then push it on Stack.
these are some solution i can think of.

so still need help...  
       





________________________________
From: Martin von Gagern &amp;lt;Mart&lt;/pre&gt;</description>
    <dc:creator>Zaree Faryal</dc:creator>
    <dc:date>2011-06-09T06:38:15</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1180">
    <title>How to push a Custom Type Object on Stack</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1180</link>
    <description>&lt;pre&gt;Hi

I know how to push Primitive Types on Stack using 
InstructinoList.append(new PUSH(ConstantPoolGen,343)); 

Now i want to push Custom Type Object(Obj of some user defined class i.e. Engine 
Class obj) on Stack in BCEL.

thanks&lt;/pre&gt;</description>
    <dc:creator>Zaree Faryal</dc:creator>
    <dc:date>2011-06-08T05:44:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1179">
    <title>How to intercept field access using BCEL</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1179</link>
    <description>&lt;pre&gt;Hi,

I have tried to intercept method calls by enhancing method body. Now I want
to intercept field access. I don't know how to do this. Can anyone help me
in this regard.

Thanks,
Ganesh

&lt;/pre&gt;</description>
    <dc:creator>Ganesh Kumar Choudhary</dc:creator>
    <dc:date>2011-06-06T18:06:31</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1178">
    <title>Problems adding IF into a bytecode class</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1178</link>
    <description>&lt;pre&gt;Hi to all,
I need to insert the followings bytecode instructions inside a method of a
.class file.

if(a == null){ //a is an object
  Classe.staticMethod();
}
long x = System.nanoTime();

I try two way but I have always an Exception.!

TRY 1: (I create a InstructionList (ilFirst) where I insert the followings
instructions.)
InstructionList ilFirst = new InstructionList();
ilFirst.append(new ALOAD(a));
Instruction invokeInterIF = factory.createInvoke("memory.Classe",
"staticMethod", Type.VOID, Type.NO_ARGS, Constants.INVOKESTATIC);
ilFirst.append(invokeInterIF);
InstructionHandle ihEndIF =
ilFirst.append(factory.createInvoke("java.lang.System", "nanoTime",
Type.LONG, Type.NO_ARGS, Constants.INVOKESTATIC));
ilFirst.insert(invokeInterIF, new IFNULL(ihEndIF));
[continue]

TRY 2: (I create a InstructionList (ilFirst) where I insert the followings
instructions. I create another InstructionList (ilThanIf ) to insert the
instructions inside the IF)
InstructionList ilFirst = new InstructionList();
ilFirst.append(new &lt;/pre&gt;</description>
    <dc:creator>Marco Bessi</dc:creator>
    <dc:date>2010-09-01T14:29:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1177">
    <title>Next BCEL release</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1177</link>
    <description>&lt;pre&gt;Hi there!

I see that the latest official BCEL release, 5.2, doesn't support
annotations, but that current trunk seems to support them. So I wonder,
when will there be the next release to make this massively useful
addition available to the masses? After all, 5.2 has been around for
over 4 years, so a new release might make sense in other areas as well.

By the way, http://jakarta.apache.org/bcel/mail-lists.html seems to have
a bad subscribe link for the dev mailing list. I receive the reply &amp;gt; 550
mail to bcel-dev-subscribe&amp;lt; at &amp;gt;jakarta.apache.org not accepted here
if I try to subscribe to that list. Might be that list accepts members
by invitation only, but in that case the pom should be adjustedt to
reflect this case. Or is it just me encountering this problem?

Greetings,
 Martin von Gagern
&lt;/pre&gt;</description>
    <dc:creator>Martin von Gagern</dc:creator>
    <dc:date>2010-08-01T13:56:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1176">
    <title>Write BCEL Books - Packt Publishing</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1176</link>
    <description>&lt;pre&gt;Hi All, 

I represent Packt Publishing, the publishers of computer related books. 

We are planning to extend our range of Open Source books based on Java technology and are currently inviting authors interested in writing them. This doesn't require any past writing experience. All that we expect from our authors is a good subject knowlegde, a passion to share it with others and an ability to communicate clearly in English.
 
So, if you love BCEL and fancy writing a book, here's an opportunity for you! Send us your book ideas at author&amp;lt; at &amp;gt;packtpub.com and our editorial team will be happy to evaluate them. Even if you don't have a book idea and are simply interested in writing a book, we are still keen to hear from you.

Packt runs an Open Source royalty scheme so by writing for Packt you will be giving back to the Open Source Community.
 
More details about this opportunity are available at: http://authors.packtpub.com/content/calling-open-source-java-based-technology-enthusiasts-write-packt
 
Thanks
Kshipra Si&lt;/pre&gt;</description>
    <dc:creator>Kshipra Singh</dc:creator>
    <dc:date>2010-07-07T10:52:32</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1175">
    <title>Shao Xing Huang is out of the office.</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1175</link>
    <description>&lt;pre&gt;
I will be out of the office starting  2010-06-25 and will not return until
2010-07-12.

I will respond to your message when I return.&lt;/pre&gt;</description>
    <dc:creator>Shao Xing Huang</dc:creator>
    <dc:date>2010-07-06T20:01:13</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1174">
    <title>Searching for parameter annotations</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1174</link>
    <description>&lt;pre&gt;Hey!

I'm currently writing a static analyser and for this I need to scan class files for annotations. I was able to do this for class and method annotations but I couldn't find a way to figure out parameter annotations. I found in the archive that it should be possible, but not how! I'm using the last version from the repository.
Would be great if someone could help me!

Christoph



      &lt;/pre&gt;</description>
    <dc:creator>Christoph R.</dc:creator>
    <dc:date>2010-07-06T15:35:46</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1173">
    <title>Re: Same questions about variable names</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1173</link>
    <description>&lt;pre&gt;Hello Marco,

1) No you can never suppose an order of instructions, unless specified by
the JVMS. Takes this example:

local_variable_table = [a:ref,x:int,y:int]

a.foo(x+y)

it gets compiled to

aload_0
iload_1
iload_2
iadd
invokevirtual &amp;lt;foo&amp;gt;

So you're assumptions will rarely hold. The way is to do some flow control
and track the execution of instructions (this is called Profiling).

2) BCEl parses the class file to get this information. If they're not there,
there's no way to get em.

Good luck

Habib


On Tue, Jun 15, 2010 at 12:05 PM, Marco Bessi &amp;lt;bessimarco&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:

&lt;/pre&gt;</description>
    <dc:creator>Habib</dc:creator>
    <dc:date>2010-06-16T10:00:38</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1172">
    <title>Re: Same questions about variable names</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1172</link>
    <description>&lt;pre&gt;Thanks Habib for your reply!

1) In "The Java Virtual Machine Specification (v1.0)" I have seen the
bytecode instruction with their syntax and stack (before and after the
instruction).
Can I suppose that before a:
- invokevirtual have always (in opposite order): N args load (where N
is the number of parameter passed to the method), an aload (to get the
objReference);
- iastore have always (in opposite order): iconst (or iload), iconst
(or iload), aload (to get the objReference) [and something like this
for fastore/aastore/bastore/castore/sastore];
- etc for other instructions...
If I can suppose the previous sentences, How can I get the
objReference of the aload? This is the reference of the variable over
I call the method of the invokevirtual?

2) The [where mg is a MethodGen variable]
mg.getLocalVariableTable(cp), mg.getArgumentNames() and
LineNumberTable can only recuperated from the bytecode if it is
generated with "java -g"? Or I can always get them?

3) Ok!

I Will read the book. Thanks for the hint!

&lt;/pre&gt;</description>
    <dc:creator>Marco Bessi</dc:creator>
    <dc:date>2010-06-15T09:05:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1171">
    <title>Re: Same questions about variable names</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1171</link>
    <description>&lt;pre&gt;Hey Marco,

1) No it's not possible to get directly the variable name when you call
s.length(). In Bytecode, s.length gets translated into two instructions:
aload_1
invokevirtual&amp;lt;java/lang/String.length&amp;gt;

aload_1 gets the object reference from local variable[1] (s) and pushes it
on the stack.
invokevirtual only has information about the class and method names and uses
the object reference that you pushed earlier. In other words, by the time
the instruction arrives to invokevirtual, there's no way to know directly
that the object reference on the stack came from local variable "s".

That doesn't mean that there's no other way to get it indirectly. I can
think of two solutions. Either track (or simulate) the execution of every
instruction (i.e. keep track that the object reference on the stack came
from local variable "s"). Another way would be to analyze the source code
itself  from the line number of invokevirtual (which you can get from the
line number table).

2) To simplify. In Java there are two "types" &lt;/pre&gt;</description>
    <dc:creator>Habib</dc:creator>
    <dc:date>2010-06-14T13:14:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1170">
    <title>Same questions about variable names</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1170</link>
    <description>&lt;pre&gt;Hi all,
I have same problem with bcel api, so I try to answere in this list.

1) How can I get the class variable name about the method that is invoked?
Explain: I have this example code.
String s = "hello";
String g = "world";
int i = s.lenght();
How can I retrieve the name of the variable where i call the method
lenght()? I want the variable name "s"!

Because if I lunch the command "javap -verbose ClassName" I obtain the
bytecode for the class ClassName and I can't get directly the name of
the class where the method is called. For the example code I can get
only that lenght() is a method of the class String but not the name of
the variable "s".

2) If I didn't compile the file class with "javac -g" I can't have the
LocalVariableTable, ok? But can I know if a variable is declarated
internally in the method or is a global variable of the class?
HashSet&amp;lt;String&amp;gt; argsVar = new HashSet&amp;lt;String&amp;gt;();
String[] args = mg.getArgumentNames(); //mg is a MethodGen variable
int k = 0;
int nArgs = args.length;
while(k &amp;lt;&lt;/pre&gt;</description>
    <dc:creator>Marco Bessi</dc:creator>
    <dc:date>2010-06-14T11:12:46</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1169">
    <title>Re: SyntheticRepository</title>
    <link>http://permalink.gmane.org/gmane.comp.jakarta.bcel.user/1169</link>
    <description>&lt;pre&gt;After examining the BCEL source code (which was, at least for 
SyntheticRepository and ClassPath, a pretty nice experience) I have 
discovered that the SyntheticRepository implementation uses 
ClassPath.getInputStream(...) to obtain the binary.  
ClassPath.getInputStream(...) does not check the provided paths first; 
it checks the current system classloader.

Fortunately, ClassPath.getClassFile(...) errors out if the class is not 
in the explicitly-specified classpath entries.  This means I should be 
able to write my own Repository implementation to get things working for 
my specific project.  I just wanted to leave this explanation for anyone 
who might stumble into it in the archives.  :)

Cheers, and thanks again for the impressive library!

- Zachary Palmer
&lt;/pre&gt;</description>
    <dc:creator>Zachary Palmer</dc:creator>
    <dc:date>2010-01-22T21:18:58</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.jakarta.bcel.user">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.jakarta.bcel.user</link>
  </textinput>
</rdf:RDF>
