[Javassist user questions] - Problem Instrumenting System classes
by mansu
Hi all,
I am trying to instrument java.lang.String class. For starters, I tried using the example code in the javassist manual, but it doesn't seem to work.
The class that adds a new field to the java.lang.String is as follows:
| package sample;
|
| import javassist.*;
|
| public class AddFieldToString {
|
| public int f(int i) {
| return i + 1;
| }
|
| public static void main(String[] args) throws Exception {
| ClassPool pool = ClassPool.getDefault();
| CtClass cc = pool.get("java.lang.String");
| cc.addField(new CtField(CtClass.intType, "hiddenValue", cc));
| cc.writeFile(".");
| }
| }
|
A sample application is as follows:
| package sample;
|
| public class MyApp {
| public static void main(String[] args) throws Exception {
| System.out.println(String.class.getField("hiddenValue").getName());
| }
| }
|
After compiling and running the above program as shown below, I get a FieldNotFound exception.
| ./installs/javassist-3.8.0 % rm -rf ./java ;
| j javac -cp javassist.jar sample/AddFieldToString.java ;
| java -cp .:javassist.jar sample/AddFieldToString ;
| javac sample/MyApp.java ;
| java -Xbootclasspath/p:. sample/MyApp
|
| Exception in thread "main" java.lang.NoSuchFieldException: hiddenValue
| at java.lang.Class.getField(Class.java:1507)
| at sample.MyApp.main(MyApp.java:5)
|
I am sure that the generated code has a something about hidden field, but the decompiler is unable to find it too:
| ./installs/javassist-3.8.0 % cat java/lang/String.class | grep hiddenValue
| Binary file (standard input) matches
|
| /installs/javassist-3.8.0 % javap java/lang/String | grep hiddenValue
|
Am I missing something obvious? Any pointers would be helpful. Thanks for your time.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4160905#4160905
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4160905
17 years, 9 months
[Performance Tuning] - read-ahead cache invalidate before any data access
by dchsalmon
Hi,
I am trying to implement a read-ahead on-find strategy for a CMP bean using jboss 4.0.2.
The finder method appears to cache all the required data and return a collection of local objects with cached data as evidenced by log output like
2008-06-26 07:13:43,875 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.StockData#findByPing] Executing SQL: SELECT DISTINCT t0_o.id, t0_o.ticker, t0_o.name, t0_o.currency, t0_o.quote, t0_o.open, t0_o.high, t0_o.low, t0_o.delta, t0_o.volume, t0_o.marketcap, t0_o.range, t0_o.divdate, t0_o.divyield, t0_o.exchange, t0_o.divrate, t0_o.pubdate, t0_o.provider, t0_o.updated FROM stockdata t0_o LEFT OUTER JOIN stockping t1_o_ping ON t0_o.id=t1_o_ping.id WHERE t1_o_ping.ping > ? AND t0_o.quote IS NOT NULL
2008-06-26 07:13:43,875 TRACE [org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery.StockData#findByPing] param: i=1, type=INTEGER, value=20240053
2008-06-26 07:13:43,875 TRACE [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.StockData#id] result: i=1, type=java.lang.Integer, value=36
2008-06-26 07:13:43,875 TRACE [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.StockData#ticker] result: i=2, type=java.lang.String, value=USTYN
2008-06-26 07:13:43,875 TRACE [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.StockData] Add preload data: entity=StockData pk=36 field=ticker
However, when I call the value method for each of the local objects in the collection I get:
2008-06-26 08:02:00,437 TRACE [org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.StockData] RESET PERSISTENCE CONTEXT: id=36
2008-06-26 08:02:00,437 TRACE [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.StockData] load data: entity=StockData pk=36
2008-06-26 08:02:00,437 TRACE [org.jboss.ejb.plugins.cmp.jdbc.ReadAheadCache.StockData] No preload data found: entity=StockData pk=36
2008-06-26 08:02:00,437 TRACE [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge.StockData] Default eager-load for entity: readahead=null
2008-06-26 08:02:00,437 DEBUG [org.jboss.ejb.plugins.cmp.jdbc.JDBCLoadEntityCommand.StockData] Executing SQL: SELECT ticker, name, currency, quote, open, high, low, delta, volume, marketcap, range, divdate, divyield, exchange, divrate, pubdate, provider, updated FROM stockdata WHERE (id=?)
2008-06-26 08:02:00,437 TRACE [org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMP2xFieldBridge.StockData#id] param: i=1, type=INTEGER, value=36
This indicates to me that all the cached data is tossed out and reloaded.
The method invoked is running as a transaction and consists essentially of
Collection coll = StockDataUtil.getLocalHome().findByPing(currMinutes);
for (Iterator i = coll.iterator(); i.hasNext(); )
{
StockDataLocal sdl = (StockDataLocal)i.next();
StockUpdateValue val = sdl.getUpdateValue();
stockMap.add(val);
}
Any help would be appreciated.
Dave Salmon
FreeRange Communications, Inc
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4160904#4160904
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4160904
17 years, 9 months
[Messaging, JMS & JBossMQ] - JBoss4.2.1 Out of Memory while restart
by Unnijboss
I am getting an exception while restarting our production server.
org.jboss.mq.SpyJMSException: Could not resolve uncommited transactions. Message recovery may not be accurate; - nested throwable: (java.sql.SQLException: out of memory)
But when I delete the files under jboss4.2.1/server/<server_name>/data/hypersonic, the server is coming up.
I think it is trying to recover the messages in the queue, which we do not require. Is there any way to disable the recovery while restart in HSQL/JMS?
2008-06-25 21:36:17,774 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.nestedTraceEnabled=false
2008-06-25 21:36:17,774 DEBUG [org.jboss.util.NestedThrowable] org.jboss.util.NestedThrowable.detectDuplicateNesting=true
2008-06-25 21:36:17,778 WARN [org.jboss.system.ServiceController] Problem starting service jboss.mq:service=PersistenceManager
org.jboss.mq.SpyJMSException: Could not resolve uncommited transactions. Message recovery may not be accurate; - nested throwable: (java.sql.SQLException: out of memory)
at org.jboss.mq.pm.jdbc2.PersistenceManager.resolveAllUncommitedTXs(PersistenceManager.java:495)
at org.jboss.mq.pm.jdbc2.PersistenceManager.startService(PersistenceManager.java:1809)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at org.jboss.system.ServiceController.start(ServiceController.java:435)
at org.jboss.system.ServiceController.start(ServiceController.java:435)
at org.jboss.system.ServiceController.start(ServiceController.java:435)
at org.jboss.system.ServiceController.start(ServiceController.java:435)
at org.jboss.system.ServiceController.start(ServiceController.java:435)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy4.start(Unknown Source)
at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy42.start(Unknown Source)
at org.jboss.deployment.XSLSubDeployer.start(XSLSubDeployer.java:197)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy9.deploy(Unknown Source)
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421)
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:634)
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263)
at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(AbstractDeploymentScanner.java:336)
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289)
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978)
at $Proxy0.start(Unknown Source)
at org.jboss.system.ServiceController.start(ServiceController.java:417)
at sun.reflect.GeneratedMethodAccessor9.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy4.start(Unknown Source)
at org.jboss.deployment.SARDeployer.start(SARDeployer.java:302)
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782)
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:766)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210)
at $Proxy5.deploy(Unknown Source)
at org.jboss.system.server.ServerImpl.doStart(ServerImpl.java:482)
at org.jboss.system.server.ServerImpl.start(ServerImpl.java:362)
at org.jboss.Main.boot(Main.java:200)
at org.jboss.Main$1.run(Main.java:508)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: out of memory
at org.hsqldb.jdbc.Util.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate(Unknown Source)
at org.jboss.resource.adapter.jdbc.CachedPreparedStatement.executeUpdate(CachedPreparedStatement.java:95)
at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:251)
at org.jboss.mq.pm.jdbc2.PersistenceManager.resolveAllUncommitedTXs(PersistenceManager.java:437)
... 112 more
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4160899#4160899
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4160899
17 years, 9 months