The code acts as if a previously corrected bug is still there. | Rogue Tile Chapter 7 |
Errors are popping up in a job with lots of cut-and-paste code. | Rogue Tile Chapter 7 |
A change in the type of a value field in a class is causing an error. | Rogue Tile Chapter 7 |
A modified method compiles but returns a reasonable, but wrong, value. | Rogue Tile Chapter 7 |
I've built a separate TreeVisitor interface with separate accept() methods for each return type I want to use. | Rogue Tile Chapter 7 |
At runtime, I get a ClassCastException even though I use the same TreeVisitor interface for all occasions and insert casts as appropriate with each Visitor method invocation. | Rogue Tile Chapter 7 |
I got a damned NullPointerException and I can't figure out what it's telling me! | Null Pointers Chapter 8 Dangling Composite Chapter 9 Null Flag Chapter 10 Run-On Initializer Chapter 9 |
I got a NullPointerException; how do I find where the variable is assigned to null? | Null Pointers Chapter 8 |
Is there a rule or tool to help statically determine which programs will throw NullPointerExceptions? | Null Pointers Chapter 8 |
I'm getting a NullPointerException in code that uses recursively defined datatypes. | Dangling Composite Chapter 9 |
Is there a problem in defining a recursive datatype so that some base cases of the definition are not given their own classes? | Dangling Composite Chapter 9 |
Is there a problem with inserting null pointers into the various composite datatypes? | Dangling Composite Chapter 9 |
My code throws a ClassCastException when I do a recursive descent over the data. | Double Descent Chapter 11 |
Help! When I recursively descend my data, more than one step down is taken in a single recursive call. | Double Descent Chapter 11 |
Is there a problem with creating multiple identical instances of the same class? | Double Descent Chapter 11 |
I'm using instanceof and equals to check for class and object identity; is there a better method? | Double Descent Chapter 11 |
What can I do to weed out "0" values in consecutive nodes? | Double Descent Chapter 11 |
I can't get my code to dispatch properly after a method call. | Double Descent Chapter 11 |
Would eliminating the Leaf class and representing Leaf nodes with null values in the left and right fields of a Branch fix the ClassCastException and keep me from having to cast? | Null Pointers Chapter 11 |
I don't really see why I need to comment all the invariants in my code. | Double Descent Chapter 11 |
I've got it! To avoid a ClassCastException, I'll wrap each cast in an instanceof check. Right? | Double Descent Chapter 11 |
What are the disadvantages of using an instanceof check to avoid a ClassCastException? | Double Descent Chapter 11 |
Are there any "gotchas" when it comes to the design of GUIs? | Liar View Chapter 12 |
My GUI passed all my tests, but now my customer is calling me with problems. What's up? | Liar View Chapter 12 |
I know about writing unit tests as a way to debug, but do I really need so many? | Liar View Chapter 12 |
My tests and the runtime behavior of my code don't match. Why? | Liar View Chapter 12 |
My tests and the runtime behavior give inconsistent results. Could the tests be wrong? | Liar View Chapter 12 |
How do GUI tests work? | Liar View Chapter 12 |
Can the Model-View-Controller (MVQ architecture be at fault in my code? | Liar View Chapter 12 |
Is there a best time to check the model through the view? | Liar View Chapter 12 |
If I can't easily automate GUI tests, how can I use tests to check my code? | Liar View Chapter 12 |
Should I refactor all the time? | Liar View Chapter 12 |
Are there other components necessary to \effective, perpetual refactoring of code? | Liar View Chapter 12 |
I've heard the Java Robot class is good for GUI testing. Is it useful in every instance? | Liar View Chapter 12 |
Can non-GUI data-displaying software also show discrepancies in testing and runtime results? | Liar View Chapter 12 |
My data-input code works fine for a while, then crashes, even though it's working on the same task. What's wrong? | Saboteur Data Chapter 13 |
The data that causes a crash comes from a large data structure over a network (instead of in memory or from a database). Is that the problem? | Saboteur Data Chapter 13 |
Which is the probable cause of the data corruption—syntax or semantics? | Saboteur Data Chapter 13 |
Which is the probable cause of the data corruption—manual editing or automatic file generation? | Saboteur Data Chapter 13 |
Checking for corrupt input data by parsing seems like a lot of work! Isn't that what compilers are for? | Saboteur Data Chapter 13 |
Would type checking help identify semantically corrupt data? | Saboteur Data Chapter 13 |
What if I can't check the data on input, as I can with existing data? | Saboteur Data Chapter 13 |
Would iteration of the data be a good tool for weeding out corruption? Under what circumstances? | Saboteur Data Chapter 13 |
Should I iterate over data, accessing each bit of data as it would be accessed in the deployed application? | Saboteur Data Chapter 13 |
Is it always possible to discover corrupt data before it causes a problem? If not, why? | Saboteur Data Chapter 13 |
Hey, can splitting a text line into two Strings cause hard-to-detect, corrupt data? | Saboteur Data Chapter 13 |
OK. I overloaded one method, then another one (that I didn't touch) broke. What gives? | Broken Dispatch Chapter 14 |
Is it possible that my method arguments don't match? | Broken Dispatch Chapter 14 |
Can adding new methods cause others to break? | Broken Dispatch Chapter 14 |
If a constructor with a general method is overloaded with a more specific method, what happens? | Broken Dispatch Chapter 14 |
Should I "infest" my code with tests? | Broken Dispatch Chapter 14 |
My code is treating different types of data as the same type. What's up? | Impostor Type Chapter 15 |
My code won't recognize some of my data types. | Impostor Type Chapter 15 |
Are there any problems in using tags in special fields to distinguish data types? | Impostor Type Chapter 15 |
Why should I use the static type system to distinguish data types? | Impostor Type Chapter 15 |
I've got a solution to avoid type mismatches: I'll use an if -then-else block to dispatch on the appropriate type. Will that work? | Impostor Type Chapter 15 |
My code leaks memory. What could be the cause? | Split Cleaner Chapter 16 |
Why is my program freeing up resources, such as my database connection, too early? | Split Cleaner Chapter 16 |
To free resources, should I get and free the resource in the same method? | Split Cleaner Chapter 16 |
To ensure that my resource is freed, should I trace through each possible execution path of the code? | Split Cleaner Chapter 16 |
Some execution paths of my code aren't freeing the resource exactly one time. Why? | Split Cleaner Chapter 16 |
Should I try to anticipate and code for all the ways in which a program will be extended? | Split Cleaner Chapter 16 |
I discovered an execution path that doesn't include the appropriate clean up code, so I'm adding it to that path. That'll work, right? | Split Cleaner Chapter 16 |
How can I go about formally specifying an interface? | Fictitious Implementation Chapter 17 |
Why, when I make a certain implementation of an interface, does one client class that's supposed to work with the interface break? | Fictitious Implementation Chapter 17 |
Is it OK not to explicitly document invariants in an interface? | Fictitious Implementation Chapter 17 |
What are the drawbacks of loading my code with extra invariants? | Fictitious Implementation Chapter 17 |
As a safeguard, can I specify invariants that can all be checked statically? | Fictitious Implementation Chapter 17 |
Is it OK to restrict the specification of interface invariants to type signatures? | Fictitious Implementation Chapter 17 |
What is an assertion? Are there different types assertions? | Fictitious Implementation of Chapter 17 |
Where should assertions be included in an interface implementation? | Fictitious Implementation Chapter 17 |
Does the inclusion of assertions add heavily to execution overhead? | Fictitious Implementation Chapter 17 |
Would assertions alone be enough to capture all of the rules I want to specify on an interface? | Fictitious Implementation Chapter 17 |
Can I use unit tests to provide limited specification of extra invariants for an interface? | Fictitious Implementation Chapter 17 |
Can my set of unit tests check an interface implementation over all possible inputs? | Fictitious Implementation Chapter 17 |
Which are more expressive, type signatures or unit tests? | Fictitious Implementation Chapter 17 |
My multithreaded code locks up and prints stack traces to standard error. Why? | Orphaned Thread Chapter 18 |
What about if I just use single-threaded design from now on? | Orphaned Thread Chapter 18 |
My program just freezes, which is confusing. Are there other ways I can notify the user that there is a problem? | Orphaned Thread Chapter 18 |
Hey! Did the stop() method on threads change? | Orphaned Thread Chapter 18 |
In what type of programming am I more likely to encounter an abandoned second thread? | Orphaned Thread Chapter 18 |
I've got a NullPointerException where an uninitialized field is accessed. What's up? | Run-On Initializer Chapter 19 |
I don't think all the fields of my class are initializing. Did I not build the constructor correctly? | Run-On Initializer Chapter 19 |
Is there something wrong with constructors that require client classes to initialize instances in several steps? | Run-On Initializer Chapter 19 |
This class has had fields added several times. Is it possible that it is not initializing properly because of the additions? | Run-On Initializer Chapter 19 |
Does it matter what order I execute statements in? | Run-On Initializer Chapter 19 |
Should I convince my customer to throw out old code and start fresh? | Run-On Initializer Chapter 19 |
I'm working with legacy code. Is it OK to modify the constructor signatures? | Run-On Initializer Chapter 19 |
What's the best way to control NullPointerException errors when working with legacy code? | Run-On Initializer Chapter 19 |
What about using an isInitialized() method in the class? | Run-On Initializer Chapter 19 |
How can I ensure that instances of my class will be in a well-defined state at all times? | Run-On Initializer Chapter 19 |
If I filled in class fields with null values, wouldn't that help with initializing? | Run-On Initializer Chapter 19 |
What's a quick way to determine whether an instance has been initialized? | Run-On Initializer Chapter 19 |
What should I do to avoid initialization problems with new contexts? | Run-On Initializer Chapter 19 |
What is the best way to represent default values? | Run-On Initializer Chapter 19 |
Will using special classes to represent default values cause a performance hit? If so, why? | Run-On Initializer Chapter 19 |
Is there a way to check for initialization without casting at runtime and taking the associated performance hit? | Run-On Initializer Chapter 19 |
Someone told me that including methods that always throw exceptions is sometimes justified, but that seems stupid. What do you think? | Run-On Initializer Chapter 19 |
Why does my code work on some Java Virtual Machines but not on others? | Platform-Dependent Bugs Chapter 20 |
Why does my code work on some versions of a JVM and but on others? | Platform-Dependent Bugs Chapter 20 |
Why does my code work on some operating systems and not on others? | Platform-Dependent Bugs Chapter 20 |
What's the difference between a specification-related bug and an implementation-related bug? | Bugs/Specs/Implement Chapter 20 |
Is there a roundup of the bugs caused by specifications and implementations of Java? | Platform-Dependent Bugs Chapter 20 |