Torsten,

I made a few changes so that debug code doesn't run by default (I don't think applications want to see the class file dumps in the current directory!) I hope this change is OK with you.

I have a few other debug code related issues.

The first one is easy one. I saw that javaflow.jar ships with simplelog.properties, which configures the logger to print the debug messages. Shouldn't this file be moved to the src/test?

Second, because of the way javaflow instruments 'new' instruction, every constructor argument goes through a Stack object.

So when the code is like:

void foo() {
  InputStream is = new BufferedInputStream(new FileInputStream(...));
  ...
  is.close();
  is = null;

  Continuation.suspend();
}

I still get a warning saying "FileInputStream is not serializable" when the first line is executed (not when the execution suspends.) When we are capturing the stack, this warning message could be useful (especially because it can point to a specific stack frame), but this false positive isn't desirable. Also, there are perfectly good use cases of javaflow that doesn't involve in serialization.

So I'm wondering what to do with this.

One idea that occurred to me is that when we see a non-serializable object pushed into a stack, we just create an exception without throwing it.

Later in the writeObject method, if a non-serializable object is going to be serialized, we can use this exception to tell users where this object was captured.

Or you might think it's a non-issue (in the sense that users can just turn off the logging to get rid of the warnings.)


The trouble I have in the workflow engine is that I want to ship it with logging turned off by default (because of those false-positives), but when there's actually a problem, I want to provide a meaningful errors right away. Telling them to manually turn on the logging won't be a very good user experience.

--
Kohsuke Kawaguchi

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

Reply via email to