[Soot-list] Help for Java Web App Data Flow

Jafar Mirzaei jm.csh2009 at gmail.com
Fri Jul 27 10:49:54 EDT 2012


thank you dear marc  for attention

I want to find all statements which can impact doPost's RESPONSE
parameter.for example:
"
out=response.getWriter();
String s=myClass.getuserNameFromDB(id);
out.println(s);
"
'id' can impact* some statements in method*  'getuserNameFromDB' and *return
statement* can impact '*s*' and 's' impact in '*out*' variable and finally '
*response*' may be impacted.

I want to find underlined statements(may be a class for reading data from
file or BD) in whole application and edit those.

stack trace of exception for option
= option.setPhaseOption("cg.spark","enabled:true,verbose:true");
is:
@parameter1: javax.servlet.http.HttpServletResponse =>
@this: asc.reset.ResetDatabaseServlet
@this: asc.reset.ResetDatabaseServlet =>
@this: asc.reset.ResetDatabaseServlet
@parameter0: javax.servlet.http.HttpServletRequest =>
@this: asc.reset.ResetDatabaseServlet
@this: asc.reset.ResetDatabaseServlet =>
this
@parameter0: javax.servlet.http.HttpServletRequest =>
request
@parameter1: javax.servlet.http.HttpServletResponse =>
response
java.lang.NullPointerException
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.handleInvokeExpr(SmartMethodInfoFlowAn
alysis.java:410)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.addFlowToCdfg(SmartMethodInfoFlowAnaly
sis.java:825)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.generateAbbreviatedInfoFlowGraph(Smart
MethodInfoFlowAnalysis.java:154)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.<init>(SmartMethodInfoFlowAnalysis.jav
a:131)
at
soot.jimple.toolkits.infoflow.ClassInfoFlowAnalysis.getMethodInfoFlowSummary(ClassInfoFlowAnalys
is.java:89)
at
soot.jimple.toolkits.infoflow.InfoFlowAnalysis.getMethodInfoFlowSummary(InfoFlowAnalysis.java:11
2)
at DFtestClass.test2(DFtestClass.java:187)


in line 410 in SmartMethodInfoFlowAnalysis the dataFlowSummary is null.



I test by this
options= setPhaseOption("cg","enabled:true,verbose:true,implicit-entry:true,trim-clinit:true,safe-newinstance:true,safe-forname:true,all-reachable:true");

and saw this warnings:

Warning: Class org.hsqldb.jdbcDriver is a dynamic class, and you did not
specify it as such; graph w
ill be incomplete!
Warning: Class sun.font.FreetypeFontScaler is a dynamic class, and you did
not specify it as such; g
raph will be incomplete!
Warning: Class sun.font.T2KFontScaler is a dynamic class, and you did not
specify it as such; graph
will be incomplete!
Warning: Class sun.net.spi.DefaultProxySelector is a dynamic class, and you
did not specify it as su
ch; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<sun.net.www.protocol.http.NTLMAuthenticati
onProxy: boolean supportsTransparentAuth()>; graph will be incomplete!
Warning: Class sun.security.provider.VerificationProvider is a dynamic
class, and you did not specif
y it as such; graph will be incomplete!
Warning: Class sun.lwawt.macosx.EventDispatchAccess is a dynamic class, and
you did not specify it a
s such; graph will be incomplete!
Warning: Class sun.nio.cs.ext.ExtendedCharsets is a dynamic class, and you
did not specify it as suc
h; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<javax.xml.transform.TransformerException:
void printStackTrace(java.io.PrintWriter)>; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<com.sun.naming.internal.ResourceManager$Ap
pletParameter: java.lang.Object get(java.lang.Object,java.lang.String)>;
graph will be incomplete!
Warning: Class sun.dc.DuctusRenderingEngine is a dynamic class, and you did
not specify it as such;
graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<sun.reflect.misc.MethodUtil: java.lang.Obj
ect invoke(java.lang.reflect.Method,java.lang.Object,java.lang.Object[])>;
graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<sun.text.bidi.BidiBase$NumericShapings: vo
id shape(java.lang.Object,char[],int,int)>; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from <java.lang.Class:
java.lang.Object[] getEnu
mConstantsShared()>; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<sun.awt.datatransfer.DataTransferer$1: sun
.awt.datatransfer.DataTransferer run()>; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<javax.imageio.ImageIO$ContainsFilter: bool
ean filter(java.lang.Object)>; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<sun.net.www.protocol.http.NTLMAuthenticati
onProxy: boolean isTrustedSite(java.net.URL)>; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<javax.swing.plaf.metal.MetalLookAndFeel$Me
talLazyValue: java.lang.Object createValue(javax.swing.UIDefaults)>; graph
will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<sun.swing.SwingLazyValue: java.lang.Object
 createValue(javax.swing.UIDefaults)>; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<javax.swing.JOptionPane$5: void propertyCh
ange(java.beans.PropertyChangeEvent)>; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<sun.awt.SunToolkit: void wakeupEventQueue(
java.awt.EventQueue,boolean)>; graph will be incomplete!
Warning: Class javax.swing.text.html.parser.ParserDelegator is a dynamic
class, and you did not spec
ify it as such; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<javax.swing.text.html.ObjectView: void set
Parameters(java.awt.Component,javax.swing.text.AttributeSet)>; graph will
be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<java.io.ObjectStreamClass: java.lang.Objec
t invokeWriteReplace(java.lang.Object)>; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<java.awt.EventDispatchThread$2: boolean ev
aluate()>; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<javax.swing.plaf.basic.BasicComboBoxEditor
: java.lang.Object getItem()>; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<sun.awt.SunToolkit: boolean isEQEmpty()>;
graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<java.io.ObjectStreamClass: java.lang.Objec
t invokeReadResolve(java.lang.Object)>; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<javax.swing.plaf.basic.LazyActionMap: void
 loadIfNecessary()>; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<java.io.ObjectStreamClass: void invokeWrit
eObject(java.lang.Object,java.io.ObjectOutputStream)>; graph will be
incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<java.io.ObjectStreamClass: void invokeRead
Object(java.lang.Object,java.io.ObjectInputStream)>; graph will be
incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<java.io.ObjectStreamClass: void invokeRead
ObjectNoData(java.lang.Object)>; graph will be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<javax.swing.BufferStrategyPaintManager$Buf
ferInfo: java.awt.image.BufferStrategy
createBufferStrategy(java.awt.Container,boolean)>; graph will
 be incomplete!
Warning: call to java.lang.reflect.Method: invoke() from
<javax.swing.BufferStrategyPaintManager$Buf
ferInfo: boolean hasBufferStrategyChanged()>; graph will be incomplete!

and this exception:


@parameter1: javax.servlet.http.HttpServletResponse =>
@this: asc.reset.ResetDatabaseServlet
@this: asc.reset.ResetDatabaseServlet =>
@this: asc.reset.ResetDatabaseServlet
@parameter0: javax.servlet.http.HttpServletRequest =>
@this: asc.reset.ResetDatabaseServlet
@this: asc.reset.ResetDatabaseServlet =>
this
@parameter0: javax.servlet.http.HttpServletRequest =>
request
@parameter1: javax.servlet.http.HttpServletResponse =>
response
@this: javax.servlet.http.NoBodyResponse =>
@this: javax.servlet.http.NoBodyResponse
fakethis.<javax.servlet.http.NoBodyResponse:
javax.servlet.http.HttpServletResponse resp> =>
fakethis.<javax.servlet.http.NoBodyResponse:
javax.servlet.http.HttpServletResponse resp>
@parameter0: java.lang.String =>
@this: javax.servlet.http.NoBodyResponse
@parameter0: java.lang.String =>
fakethis.<javax.servlet.http.NoBodyResponse:
javax.servlet.http.HttpServletResponse resp>
@this: javax.servlet.http.NoBodyResponse =>
this
@parameter0: java.lang.String =>
type
fakethis.<javax.servlet.http.NoBodyResponse:
javax.servlet.http.HttpServletResponse resp> =>
$r0
type =>
fakethis.<javax.servlet.http.NoBodyResponse:
javax.servlet.http.HttpServletResponse resp>
fakethis.<javax.servlet.http.NoBodyResponse:
javax.servlet.http.HttpServletResponse resp> =>
fakethis.<javax.servlet.http.NoBodyResponse:
javax.servlet.http.HttpServletResponse resp>
@parameter0: java.lang.String =>
fakethis.<javax.servlet.http.NoBodyResponse:
javax.servlet.http.HttpServletResponse resp>
"text/html" =>
fakethis.<javax.servlet.http.NoBodyResponse:
javax.servlet.http.HttpServletResponse resp>
@this: asc.reset.ResetDatabaseServlet =>
@this: asc.reset.ResetDatabaseServlet
@this: asc.reset.ResetDatabaseServlet =>
@parameter-1: java.lang.Exception
@this: asc.reset.ResetDatabaseServlet =>
this
<asc.ASCApp: asc.db.ConnectionProvider connectionProvider> =>
<asc.ASCApp: asc.db.ConnectionProvider connectionProvider>
<asc.ASCApp: asc.db.ConnectionProvider connectionProvider> =>
@parameter-1: asc.db.ConnectionProvider
<asc.ASCApp: asc.DatabaseService databaseService> =>
<asc.ASCApp: asc.DatabaseService databaseService>
<asc.ASCApp: asc.DatabaseService databaseService> =>
<java.lang.System: java.io.PrintStream err>
<asc.ASCApp: asc.DatabaseService databaseService> =>
<asc.ASCApp: asc.db.ConnectionProvider connectionProvider>
<java.lang.System: java.io.PrintStream err> =>
<asc.ASCApp: asc.DatabaseService databaseService>
<java.lang.System: java.io.PrintStream err> =>
<java.lang.System: java.io.PrintStream err>
<java.lang.System: java.io.PrintStream err> =>
<asc.ASCApp: asc.db.ConnectionProvider connectionProvider>
<asc.ASCApp: asc.db.ConnectionProvider connectionProvider> =>
<asc.ASCApp: asc.DatabaseService databaseService>
<asc.ASCApp: asc.db.ConnectionProvider connectionProvider> =>
<java.lang.System: java.io.PrintStream err>
<asc.ASCApp: asc.db.ConnectionProvider connectionProvider> =>
<asc.ASCApp: asc.db.ConnectionProvider connectionProvider>
<asc.ASCApp: asc.DatabaseService databaseService> =>
$r0
new asc.db.connection.DatasourceConnectionProvider =>
$r1
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context envContext> =>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context envContext>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context envContext> =>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context initContext>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context envContext> =>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.sql.DataSource dataSource>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context initContext> =>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context envContext>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context initContext> =>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context initContext>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context initContext> =>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.sql.DataSource dataSource>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.sql.DataSource dataSource> =>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context envContext>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.sql.DataSource dataSource> =>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context initContext>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.sql.DataSource dataSource> =>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.sql.DataSource dataSource>
@this: asc.db.connection.DatasourceConnectionProvider =>
@this: asc.db.connection.DatasourceConnectionProvider
@this: asc.db.connection.DatasourceConnectionProvider =>
this
@this: java.lang.Object =>
@this: java.lang.Object
@this: java.lang.Object =>
l0
new javax.naming.InitialContext =>
$r0
@this: javax.naming.InitialContext =>
@this: javax.naming.InitialContext
fakethis.<javax.naming.InitialContext: boolean gotDefault> =>
fakethis.<javax.naming.InitialContext: javax.naming.Context defaultInitCtx>
fakethis.<javax.naming.InitialContext: boolean gotDefault> =>
fakethis.<javax.naming.InitialContext: java.util.Hashtable myProps>
fakethis.<javax.naming.InitialContext: javax.naming.Context defaultInitCtx>
=>
fakethis.<javax.naming.InitialContext: javax.naming.Context defaultInitCtx>
fakethis.<javax.naming.InitialContext: javax.naming.Context defaultInitCtx>
=>
fakethis.<javax.naming.InitialContext: java.util.Hashtable myProps>
fakethis.<javax.naming.InitialContext: java.util.Hashtable myProps> =>
fakethis.<javax.naming.InitialContext: javax.naming.Context defaultInitCtx>
fakethis.<javax.naming.InitialContext: java.util.Hashtable myProps> =>
fakethis.<javax.naming.InitialContext: java.util.Hashtable myProps>
@this: javax.naming.InitialContext =>
l0
null =>
fakethis.<javax.naming.InitialContext: java.util.Hashtable myProps>
null =>
fakethis.<javax.naming.InitialContext: javax.naming.Context defaultInitCtx>
0 =>
fakethis.<javax.naming.InitialContext: boolean gotDefault>
@this: javax.naming.InitialContext =>
@this: javax.naming.InitialContext
fakethis.<javax.naming.InitialContext: java.util.Hashtable myProps> =>
fakethis.<javax.naming.InitialContext: java.util.Hashtable myProps>
@parameter0: java.util.Hashtable =>
@this: javax.naming.InitialContext
@parameter0: java.util.Hashtable =>
fakethis.<javax.naming.InitialContext: java.util.Hashtable myProps>
fakethis.<javax.naming.InitialContext: java.util.Hashtable myProps> =>
fakethis.<javax.naming.InitialContext: java.util.Hashtable myProps>
null =>
fakethis.<javax.naming.InitialContext: java.util.Hashtable myProps>
$r0 =>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context initContext>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context initContext> =>
$r1
@parameter0: java.lang.String =>
@this: javax.naming.spi.ContinuationContext
@parameter0: java.lang.String =>
@parameter-1: java.lang.Object
@this: javax.naming.spi.ContinuationContext =>
@this: javax.naming.spi.ContinuationContext
@this: javax.naming.spi.ContinuationContext =>
@parameter-1: java.lang.Object
@this: javax.naming.spi.ContinuationContext =>
l0
@parameter0: java.lang.String =>
l1
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
@parameter-1: javax.naming.Context
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
@parameter-1: javax.naming.Context
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
@parameter-1: javax.naming.Context
@this: javax.naming.spi.ContinuationContext =>
@this: javax.naming.spi.ContinuationContext
@this: javax.naming.spi.ContinuationContext =>
@parameter-1: javax.naming.Context
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
l2
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
l2
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
l2
l0 =>
l2
@this: javax.naming.InitialContext =>
@this: javax.naming.InitialContext
@this: javax.naming.InitialContext =>
@parameter-1: java.lang.Object
@parameter0: java.lang.String =>
@this: javax.naming.InitialContext
@parameter0: java.lang.String =>
@parameter-1: java.lang.Object
@this: javax.naming.InitialContext =>
@this: javax.naming.InitialContext
@this: javax.naming.InitialContext =>
@parameter-1: java.lang.Object
@parameter0: java.lang.String =>
@this: javax.naming.InitialContext
@parameter0: java.lang.String =>
@parameter-1: java.lang.Object
l2 =>
$r0
l1 =>
$r0
l2 =>
$r0
$r0 =>
@parameter-1: java.lang.Object
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
@parameter-1: java.lang.Object
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
@parameter-1: java.lang.Object
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
@parameter-1: java.lang.Object
@this: javax.naming.spi.ContinuationContext =>
@parameter-1: java.lang.Object
@parameter0: java.lang.String =>
@parameter-1: java.lang.Object
@this: javax.naming.InitialContext =>
@this: javax.naming.InitialContext
@this: javax.naming.InitialContext =>
@parameter-1: java.lang.Object
@parameter0: java.lang.String =>
@this: javax.naming.InitialContext
@parameter0: java.lang.String =>
@parameter-1: java.lang.Object
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
$r2
$r1 =>
$r2
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
$r2
"java:/comp/env" =>
$r2
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
$r2
$r1 =>
$r2
$r2 =>
$r1
$r1 =>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context envContext>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.naming.Context envContext> =>
$r1
@this: javax.naming.InitialContext =>
@this: javax.naming.InitialContext
@this: javax.naming.InitialContext =>
@parameter-1: java.lang.Object
@parameter0: java.lang.String =>
@this: javax.naming.InitialContext
@parameter0: java.lang.String =>
@parameter-1: java.lang.Object
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe>
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env>
fakethis.<javax.naming.spi.ContinuationContext:
javax.naming.CannotProceedException cpe> =>
$r2
$r1 =>
$r2
fakethis.<javax.naming.spi.ContinuationContext: java.util.Hashtable env> =>
$r2
"jdbc/asdb" =>
$r2
fakethis.<javax.naming.spi.ContinuationContext: javax.naming.Context
contCtx> =>
$r2
$r1 =>
$r2
$r2 =>
$r3
$r3 =>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.sql.DataSource dataSource>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.sql.DataSource dataSource> =>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.sql.DataSource dataSource>
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.sql.DataSource dataSource> =>
@parameter-1: java.sql.Connection
@this: asc.db.connection.DatasourceConnectionProvider =>
@this: asc.db.connection.DatasourceConnectionProvider
@this: asc.db.connection.DatasourceConnectionProvider =>
@parameter-1: java.sql.Connection
@this: asc.db.connection.DatasourceConnectionProvider =>
this
fakethis.<asc.db.connection.DatasourceConnectionProvider:
javax.sql.DataSource dataSource> =>
$r0
java.lang.NullPointerException
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.handleInvokeExpr(SmartMethodInfoFlowAn
alysis.java:410)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.addFlowToCdfg(SmartMethodInfoFlowAnaly
sis.java:795)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.generateAbbreviatedInfoFlowGraph(Smart
MethodInfoFlowAnalysis.java:154)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.<init>(SmartMethodInfoFlowAnalysis.jav
a:131)
at
soot.jimple.toolkits.infoflow.ClassInfoFlowAnalysis.getMethodInfoFlowSummary(ClassInfoFlowAnalys
is.java:89)
at
soot.jimple.toolkits.infoflow.InfoFlowAnalysis.getMethodInfoFlowSummary(InfoFlowAnalysis.java:11
2)
at
soot.jimple.toolkits.infoflow.InfoFlowAnalysis.getInvokeInfoFlowSummary(InfoFlowAnalysis.java:21
0)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.handleInvokeExpr(SmartMethodInfoFlowAn
alysis.java:391)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.addFlowToCdfg(SmartMethodInfoFlowAnaly
sis.java:795)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.generateAbbreviatedInfoFlowGraph(Smart
MethodInfoFlowAnalysis.java:154)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.<init>(SmartMethodInfoFlowAnalysis.jav
a:131)
at
soot.jimple.toolkits.infoflow.ClassInfoFlowAnalysis.getMethodInfoFlowSummary(ClassInfoFlowAnalys
is.java:89)
at
soot.jimple.toolkits.infoflow.InfoFlowAnalysis.getMethodInfoFlowSummary(InfoFlowAnalysis.java:11
2)
at
soot.jimple.toolkits.infoflow.InfoFlowAnalysis.getInvokeInfoFlowSummary(InfoFlowAnalysis.java:21
0)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.handleInvokeExpr(SmartMethodInfoFlowAn
alysis.java:391)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.addFlowToCdfg(SmartMethodInfoFlowAnaly
sis.java:825)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.generateAbbreviatedInfoFlowGraph(Smart
MethodInfoFlowAnalysis.java:154)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.<init>(SmartMethodInfoFlowAnalysis.jav
a:131)
at
soot.jimple.toolkits.infoflow.ClassInfoFlowAnalysis.getMethodInfoFlowSummary(ClassInfoFlowAnalys
is.java:89)
at
soot.jimple.toolkits.infoflow.InfoFlowAnalysis.getMethodInfoFlowSummary(InfoFlowAnalysis.java:11
2)
at
soot.jimple.toolkits.infoflow.InfoFlowAnalysis.getInvokeInfoFlowSummary(InfoFlowAnalysis.java:21
0)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.handleInvokeExpr(SmartMethodInfoFlowAn
alysis.java:391)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.addFlowToCdfg(SmartMethodInfoFlowAnaly
sis.java:825)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.generateAbbreviatedInfoFlowGraph(Smart
MethodInfoFlowAnalysis.java:154)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.<init>(SmartMethodInfoFlowAnalysis.jav
a:131)
at
soot.jimple.toolkits.infoflow.ClassInfoFlowAnalysis.getMethodInfoFlowSummary(ClassInfoFlowAnalys
is.java:89)
at
soot.jimple.toolkits.infoflow.InfoFlowAnalysis.getMethodInfoFlowSummary(InfoFlowAnalysis.java:11
2)
at
soot.jimple.toolkits.infoflow.InfoFlowAnalysis.getInvokeInfoFlowSummary(InfoFlowAnalysis.java:21
0)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.handleInvokeExpr(SmartMethodInfoFlowAn
alysis.java:391)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.addFlowToCdfg(SmartMethodInfoFlowAnaly
sis.java:795)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.generateAbbreviatedInfoFlowGraph(Smart
MethodInfoFlowAnalysis.java:154)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.<init>(SmartMethodInfoFlowAnalysis.jav
a:131)
at
soot.jimple.toolkits.infoflow.ClassInfoFlowAnalysis.getMethodInfoFlowSummary(ClassInfoFlowAnalys
is.java:89)
at
soot.jimple.toolkits.infoflow.InfoFlowAnalysis.getMethodInfoFlowSummary(InfoFlowAnalysis.java:11
2)
at
soot.jimple.toolkits.infoflow.InfoFlowAnalysis.getInvokeInfoFlowSummary(InfoFlowAnalysis.java:21
0)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.handleInvokeExpr(SmartMethodInfoFlowAn
alysis.java:391)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.addFlowToCdfg(SmartMethodInfoFlowAnaly
sis.java:795)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.generateAbbreviatedInfoFlowGraph(Smart
MethodInfoFlowAnalysis.java:154)
at
soot.jimple.toolkits.infoflow.SmartMethodInfoFlowAnalysis.<init>(SmartMethodInfoFlowAnalysis.jav
a:131)
at
soot.jimple.toolkits.infoflow.ClassInfoFlowAnalysis.getMethodInfoFlowSummary(ClassInfoFlowAnalys
is.java:89)
at
soot.jimple.toolkits.infoflow.InfoFlowAnalysis.getMethodInfoFlowSummary(InfoFlowAnalysis.java:11
2)
at DFtestClass.test2(DFtestClass.java:187)



... :((



Best regards
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.cs.mcgill.ca/pipermail/soot-list/attachments/20120727/62591483/attachment-0001.html 


More information about the Soot-list mailing list