Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] Fw: aspectj capturing currently executing object

Caused by: java.lang.IllegalStateException: Unable to pack method, jump (with opcode=198) is too far: 107812

No, the issue isn't fixed. Usually when it happens we take a look at the aspects and find they were accidentally weaving too many places.  But I'm not saying it cannot happen in correctly coded scenarios, it just hasn't happened enough that it has justified the effort to fix it by splitting methods/etc.

Andy


On 7 July 2013 23:23, Krishna Jasty <krishna.jasty@xxxxxxx> wrote:
Hi,
 
There are several bugs reported with the below issue. Is this issued fixed.
 

Jul 8, 2013 11:29:48 AM org.aspectj.weaver.tools.Jdk14Trace error

SEVERE: jsp_servlet/_target/_source/_security/__pcsec_process_1

Throwable occurred: java.lang.IllegalStateException: Unexpected problem whilst preparing bytecode for jsp_servlet._target._source._security.__pcsec_process_1.processBody(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;Ljavax/servlet/http/HttpSession;)V

at org.aspectj.apache.bcel.generic.MethodGen.getMethod(MethodGen.java:699)

at org.aspectj.weaver.bcel.LazyMethodGen.getMethod(LazyMethodGen.java:462)

at org.aspectj.weaver.bcel.LazyClassGen.writeBack(LazyClassGen.java:514)

at org.aspectj.weaver.bcel.LazyClassGen.getJavaClassBytesIncludingReweavable(LazyClassGen.java:696)

at org.aspectj.weaver.bcel.BcelWeaver.getClassFilesFor(BcelWeaver.java:1442)

at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1404)

at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1186)

at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:527)

at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:363)

at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:111)

at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:54)

at sun.instrument.TransformerManager.transform(TransformerManager.java:181)

at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:377)

at java.lang.ClassLoader.defineClassImpl(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:275)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:74)

at weblogic.utils.classloaders.GenericClassLoader.defineClass(GenericClassLoader.java:343)

at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:302)

at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:270)

at weblogic.servlet.jsp.JspClassLoader.findClass(JspClassLoader.java:48)

at weblogic.servlet.jsp.JspClassLoader.loadClass(JspClassLoader.java:33)

at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:243)

at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:216)

at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:244)

at weblogic.servlet.internal.ServletStubImpl.onAddToMapException(ServletStubImpl.java:416)

at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:327)

at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)

at iims.filter.IIMSRestrictDirectURLAccessFilter.doFilter(IIMSRestrictDirectURLAccessFilter.java:218)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)

at weblogic.servlet.internal.RequestDispatcherImpl.invokeServlet(RequestDispatcherImpl.java:527)

at weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:253)

at jsp_servlet._target._source._security.__pcsec_process.processBody(__pcsec_process.java:3388)

at jsp_servlet._target._source._security.__pcsec_process._jspService(__pcsec_process.java:3467)

at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)

at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)

at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)

at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301)

at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)

at iims.filter.IIMSRestrictDirectURLAccessFilter.doFilter(IIMSRestrictDirectURLAccessFilter.java:218)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)

at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)

at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)

at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)

at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)

at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)

at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)

at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)

at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)

at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)

Caused by: java.lang.IllegalStateException: Unable to pack method, jump (with opcode=198) is too far: 107812

at org.aspectj.apache.bcel.generic.InstructionBranch.updatePosition(InstructionBranch.java:176)

at org.aspectj.apache.bcel.generic.BranchHandle.updatePosition(BranchHandle.java:101)

at org.aspectj.apache.bcel.generic.InstructionList.setPositions(InstructionList.java:919)

at org.aspectj.apache.bcel.generic.InstructionList.setPositions(InstructionList.java:863)

at org.aspectj.apache.bcel.generic.InstructionList.getByteCode(InstructionList.java:981)

at org.aspectj.apache.bcel.generic.MethodGen.getMethod(MethodGen.java:697)

... 50 more

Jul 8, 2013 11:29:48 AM org.aspectj.weaver.tools.Jdk14Trace info

INFO: Dumping to /home0/weblogic/Oracle/Middleware/user_projects/domains/BaNCSCluster/./ajcore.20130708.112948.099.txt



Krishnachaitanya Jasty
Tata Consultancy Services
Mailto: krishna.jasty@xxxxxxx
Website: http://www.tcs.com
____________________________________________
Experience certainty. IT Services
Business Solutions
Consulting
____________________________________________


-----aspectj-users-bounces@xxxxxxxxxxx wrote: -----
To: aspectj-users@xxxxxxxxxxx
From: Andy Clement
Sent by: aspectj-users-bounces@xxxxxxxxxxx
Date: 07/03/2013 04:46AM
Subject: Re: [aspectj-users] Fw: aspectj capturing currently executing object


Unfortunately the source code line is not captured in the joinpoint object, nor is the entire source encoded in the class file so that the relevant snippet could be extracted at runtime. You'd have to read the relevant source file and pull out the text you need.

cheers,
Andy


On 2 July 2013 06:28, Krishna Jasty <krishna.jasty@xxxxxxx> wrote:
Hi,
 
Is there a way in aspect to read the source line as it is.
Say for example. My Java class code
 
  public static void main(String[] args)throws IOException,SQLException
{
     Vector testvector = new Vector();
      testvector.add("abc");
 }
 
I want to read the source line Vector testvector= new Vector();
When i use
SourceLocation sl =thisJoinPointStaticPart
.getSourceLocation();
 
Which is giving me the file details and line number details but not the source line read ..
 
Thanks,
 



-----Forwarded by Krishna Jasty/BLR/TCS on 07/02/2013 06:40PM -----
To: aspectj-users@xxxxxxxxxxx
From: Krishna Jasty/BLR/TCS
Date: 06/27/2013 03:41PM
Subject: aspectj capturing currently executing object


Hi Users,

Go through the following steps once.
 
1) My Java class code
 
  public static void main(String[] args)throws IOException,SQLException
{
     Vector testvector = new Vector();
      testvector.add("abc");
   }
 
 
2) Aspect Implementation
 
 pointcut allConstructors() : call( * java.util..add(..));
 Object around() : allConstructors() {
 Object[] objarr = thisJoinPoint.getArgs();
 for (int i = 0; i < objarr.length; i++)
{
  System.out.println("object is..."+objarr[i]);//This will give me tha value "abc"
 }
 
Similarly if i want to get the object testvector and i want to perform the testvector.size() operation on it.
How to capture this testvector object, if i use this or getTarget() which is returning null.
Please suggest the way to make it possible.
 
Thanks,
Krishnachaitanya Jasty

=====-----=====-----=====
Notice: The information contained in this e-mail
message and/or attachments to it may contain
confidential or privileged information. If you are
not the intended recipient, any dissemination, use,
review, distribution, printing or copying of the
information contained in this e-mail message
and/or attachments to it are strictly prohibited. If
you have received this communication in error,
please notify us by reply e-mail or telephone and
immediately and permanently delete the message
and any attachments. Thank you


_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users


_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users

_______________________________________________
aspectj-users mailing list
aspectj-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/aspectj-users



Back to the top