Thanks for the answer. However, I guess I was not very clear about what I'm 
trying to accomplish. Let me be a bit more concise and give an example:

I want to debug Hivemind itself. Suppose I have a project running on Hivemind. 
I'm creating registry from a .sdl file (check the code below). I single step 
into RegistryBuilder.constructDefaultRegistry() (This, I can accomplish).

public void run() {
                Registry registry = RegistryBuilder.constructDefaultRegistry();
                Calculator c = (Calculator) 
registry.getService("com.kocbank.falez.onlineservers.hsmserver.Calculator", 
Calculator.class);

I step into the method and see the following in Eclipse. I can step through 
below lines. Wheee..

    public static Registry constructDefaultRegistry()
    {
        ClassResolver resolver = new DefaultClassResolver();
        RegistryBuilder builder = new RegistryBuilder();

        builder.processModules(resolver);

However, when I try to inspect the resolver object created inside the function, 
Eclipse complains that 'resolver cannot be resolved' (yes, I compiled Hivemind 
with debug info).

I single step into builder.processModules(resolver); line. And see:
    public void processModules(ClassResolver resolver)
    {
        if (LOG.isDebugEnabled())
            LOG.debug("Processing modules visible to " + resolver);

        processModulesResources(resolver, HIVE_MODULE_SDL);
        processModulesResources(resolver, HIVE_MODULE_XML);

Which is nice. Here, I still can't inspect (or display) resolver object itself. 
Eclipse still complains that resolver cannot be resolved. However, in the 
variables pane, I can see resolver object's contents. But displayed as arg0. 
Not resolver. 

In other libraries included in my project, take servlet-api for instance, I can 
inspect variables. 

I guess this is a bit more clear. Appreciate any comments. 

Regards,
Bulent Erdemir





-----Original Message-----
From: Howard Lewis Ship [mailto:[EMAIL PROTECTED]
Sent: Sat 7/10/2004 5:16 AM
To: [email protected]
Subject: Re: Debugging Hivemind
 
I doubt you can debug the runtime-generated proxies.  There's
literally no Java source file to step through.  That you can't iPut
the breakpoints in your own code and don't worry about how you get
there :-)

I'm working on a HiveMind-driven project right now, so as necessary I
set break points in my code, i.e.:

Thread [PoolThread-0] (Suspended (breakpoint at line 31 in
ForumThreadDataSource))
        ForumThreadDataSource.getThreadsInRange(int, int) line: 31
        $Interceptor_fda6d35c7c_11.getThreadsInRange(int, int) line: not
available [local variables unavailable]
        $InnerProxy_fda6d3590b_8.getThreadsInRange(int, int) line: not
available [local variables unavailable]
        $SingletonProxy_fda6d358f7_7.getThreadsInRange(int, int) line: not
available [local variables unavailable]
        ThreadSummaries$Enhance_51(ThreadList).prepareForRender(IRequestCycle) 
line: 57
        ThreadSummaries$Enhance_51(AbstractComponent).render(IMarkupWriter,
IRequestCycle) line: 853


So I see what you mean; this is a Javassist issue, not a HiveMind issue.

Again, don't be concerned with the HiveMind proxies and interceptors,
set your breakpoints in your own code.

-- 
Howard M. Lewis Ship
Independent J2EE / Open-Source Java Consultant
Creator, Jakarta Tapestry
Creator, Jakarta HiveMind
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


<<winmail.dat>>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to