Win a copy of Five Lines of Code this week in the OO, Patterns, UML and Refactoring forum!

Abhijeet Premkumar

+ Follow
since Nov 02, 2000
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Abhijeet Premkumar

You don't need to javadoc the implementing classes too. A "Specified by" link appears in the appropriate places when you run the javadoc tool.


Originally posted by Matt DeLacey:
Hey All,
I've started doing all the JavaDoc stuff. I don't mind most
of it but I have an interface called DataClient. It is implemented by RemoteDataClient and LocalDataClient. All 3 of these have all the same methods. Do I have to put javadoc comments around all the methods of all 3 classes? Slowly...falling...asleep. Gosh, I appreciated the value of
good documentation, but it can be frustrating.
With Respect,
Matt DeLacey

You're not the only person Kanchan Sharma has emailed to regarding the assignment. Her first mail came to me when I had posted a few responses on the forum. She had blatantly asked for my assignment (java2.jar). I promptly ignored the mail.
I got an exact copy of the mail she sent you. She had asked me for my completed assignment after I posted my success story on the forum. It's unbelievable that someone can stoop to such a level as to attempt to plagiarize one's work.
However, I did reply to this mail detailing why I will not share my work with her and let her off with a warning that any further requests for the completed source code etc. would be reported to Sun Education Services.
Just for your reference....all such requests can be forwarded to .
I believe they know how to deal with problems like this.
I didn't see any point in publicly humiliating this person but I now realize that this is not an isolated incident and therefore feel that I have to speak up and be heard.
Discussing design issues is not a problem with me but what really riles me is someone asking for the solution outright!
Just my opinion though...

Originally posted by Steve Wayne:
I got this as a response from someone to my recent posting about passing the scjd. Incredible!!
Hello Steve Wayne sir,
first of all i want to congractulate you on your brilliant success .
probabely you don't know me i am a javarancher as you are. i had passed scjp
with 96%. and downloaded the scjd assignment two month before. i enclosed
that assignment copy with this mail. actully i want your kind cooperation.
first of all i want to tell you some thing about me. i am a college student
i am in the final year of my engineering now. i am doing part time job to
continue my studies. when i download scjd assignment i feel that i can do
that. but after reading the instruction and objectives i feel that is not in
my limits. now i feel my 14000\-Rs ($250) will be wasted.
i can't explain you that how difficult was me for arrange that big money as
a student. can you please kindly give me your assignment so after studying
your way of implementing solution i also be able to make that assignment. i
know that sun microsystem has made an agreement with every candidate to not
to disclose their assignment and solution and every solution should be
unique. no one can copy else solution. but i promise you i didn't do my
assignment as you are. i just want to know how exacly the gui should be look
alike. i want to see how exactly can one implement that database server by
hand.i will be very greatful to you if you please give me your solution
regarding scjd assignment. i am not in the condition to lose my scjd fees.
because only i know that how exacly i collect that fees. and what i have to
do for that money. now because you are passed so i request(bag) you please
give me your solution. because i don't think that may cause any difficulti
to you and for me it will be a great help. please sir help me on the basis
of humanity . i will be very greatfull to you till my whole life . please
sir help me.
-Kanchan Sharma

His e-mail is if you want to contact him.

I referred to James Cooper's design pattern book.
With warm regards

Originally posted by joey phillip:
Congrats Abhjeet! you got a greate score!
1)Did you read any java design pattern books?
2)Could you please explain your RMI Design(local and network mode)
with respect

I'm glad I could help and thank you for the wishes.
With warm regards

Originally posted by Matt DeLacey:
Wow! Thanks a lot for the feedback. It's really helpful in quashing fears. I am VERY grateful. Hope all your hard work results in significant career advancement, or, if that's not your goal, personal satisfaction.
With Respect,

Thank you for the wishes. It does feel great to have that work pay off. I really did slog to make sure that things were perfect before submission. Sure, I'll answer any questions that you may have...
1. It took me 1 month to design + code + test and another month to get the docs organized (boring stuff).
2. Once I saw that the code was running on several different machine configs and after the bugs had ironed out I did feel a lot at ease.
a. The strongest part of the assignment was writing the code for the Data Client (not the GUI). I felt pretty sure that I had refactored the code enough so that it was simple and efficient.
b. The weakest part of the assignment was the GUI. I simply had 2 labels , 2 JComboBoxes, 1 JTable and 3 buttons (Search, Book Seats, Exit). I changed the title of the frame to show the filter currently in place when the Search button is clicked.
a. My GUI was fairly rudimentary (No Menubar, No Statusbar, No splash screen) so I guess it was only natural that I lost some points there. (My classes for the GUI were reusable though except the main loader)
b. I seem to have lost some points in the General consideration sections and I think it was because I had to break quite a few expressions and the Java Coding conventions are not too clear on how that is to be accomplished or maybe I missed something.
5. No. I was fairly sure that I would get a pass but didn't have a clue that the results would be this good.
6. I had 3 text file (user manuals for client, server, data convertor)
1 file for design choices (11 pages in word)
1 readme.txt file ( contained instructions for installing & working with the app on both Win32 & UNIX based systems)
My major design decisions are as follows:
My major design choices were:
* Used RMI over serialized objects
* Modified Data
* Changed lock/unlock signatures
* Used a queue based record locking scheme
* Implemented the -1 db lock
* Did not implement a timeout for locking
* threw exceptions (both Database & Remote) all the way up to the client
* DataConvertor uses a Schema file (simple text file, not java
properties file)
* Used Adapter, Command, Factory & Singleton patterns
I hope that helps
With warm regards

Originally posted by Matt DeLacey:
Abhijeet. Congratulations. You must feel great about that. If you don't mind it is really helpful to those of us here if you comment...don't give us any specifics, just answer things like:
1.) How long did it take you?
2.) Were you confident that you would pass?
3.) What did you feel was the weekest/strongest parts of your assignment?
4.) Why do you feel you lost the points that you did?
5.) Did you have any fears after taking written portion of exam?
6.) How much documentation did you have?
And anything else (nonspecific) that you think would be helpful..Thanks.

With Respect,
Matt DeLacey

Thanks. Sure..I'll stay around...
With warm regards

Originally posted by Adrian Yan:
Very good score!
Hope you will stay around to help out us the wannabes

I just checked the Sun Certification Database today and found that I've passed SCJD with a score of 147/155 (94.83 %).
Uploaded Assignment : 29-Jan-2001
Gave follow-up test : 31-Jan-2001
Results published : 08-Feb-2001
My score distribution was as follows:
General Considerations (maximum = 72): 67
Documentation (maximum = 10) : 10
Object-Oriented Design (maximum = 6) : 6
GUI (maximum = 20) : 17
Data conversion program(maximum = 10) : 10
Server (maximum = 37) : 37
Best of luck to all working on their assignments
With warm regards
I use JBuilder 3 Professional too. It does add a few dependancy files but I've found Jbuilder to be an invaluable tool while debugging the assignment. You could always delete the dependancy files later on. However I've never come across the problem that you describe when you run the app on a different system where JBuilder is not installed. Could you please elaborate?

With warm regards

Originally posted by Ray Smilgius:
I have JBuilder but its seems to add a dependency package. Is it better to perhaps to use a text editor I have found one that has built in Macros to allow compiling directly in the text GUI.I have found that applications can display a different behavior if not runned on a system without JBuilder. Any suggestions???

Thanks Ray

[This message has been edited by Abhijeet Premkumar (edited January 31, 2001).]
Hi ,
Yes, It is possible for some clients to be blocked while the -1 db lock is requested. You have the choice of waiting till all locks are released or you can treat it as an administrative function which locks out all new lock requests and lets the existing locks to finish. But be sure to document your approach and assumptions. Just my opinion. Any comments from certified developers?
With warm regards

Originally posted by Ajit Kumar:
hi Guys,
The following is part of the comment block for the lock method.
" If the argument is -1, lock the whole database. "
Let us assume that client A issues a call to the lock method with -1 as argument (record number). It is possible for some of the records to be already locked by other clients at that moment.
How can client A lock the entire database(I mean all records)?. Does he have to wait indefinitely till he gets all records available for locking?.
i would appreciate your comments on this.

Spot on. I think these assumptions are pretty fair. The specs never make mention of the fact that you would need to create a new db. This would also mean that you don't have to provide the constructor to the data class.
In my opinion the GUI is the only part in the entire assignment which would be more or less unusable for future projects. What do you think?
With warm regards

Originally posted by Douglas Kent:
I am making the assumption that since the instructions did not talk about creating an administrative interface, the only user features we need to implment are lookup and flight booking. This would lead to a further assumption that since the interface is limited to these functions, the new database constructor for "Data" would never be needed in the user interface either. Am I going wrong here? Or is it implicit that since the add record method is implemented in "Data", we need to support that in the GUI?

Hi Dilip,
In my opinion...the specs clearly state that networking is to be bypassed and I interpret it as NO LOOKUP. You may instantiate the server object directly in the same jvm OR create a new class which acts as an adapter and calls data's methods directly and implements the same interface as the server. This will achieve the effect that you're looking for. Just my opinion though.
I hope this helps.
With warm regards
Hi Joey,
Well. To answer your questions....
1. The easiest way to implement the criteriaFind method is to take a look at the find method provided in the data class. Find checks only the first field. You only need to copy it to your criteriaFind method and extend its functionality to take other database fields into account. You may also need to decide now how you will implement the ANY parameter search.
2. The GUI is the easy part. You may use any component like JList Box or JComboBox or JTextField. You will only need to justify why
you used the controls you did. You will then need to create your criteria String from the User selection in the GUI and pass it to your criteriaFind method. But that I believe comes much later.
I hope this helps.
With warm regards

Originally posted by joey phillip:
(1)Can anyone suggest me how to implement criteriaFind method to search for multiple fields like "Career='SpeedyAir',Destination='SFO'".
(2) How to design GUI for this search. by creating individual JTextField for everyfield or by creating general search


I've implemented a simple linear search. I don't see any point in complicating matters.
With warm regards

Originally posted by Adrian Yan:
What type of algorithm should we implement? I'm kind of stuck at this point, I'm trying to find the correct algorithm.
Any help is welcome.

Hi Jodie,
To answer your questions
1. No. The criteriaFind method should be generic and be able to take apart a criteria string of any length. It should not be dependant on the underlying database as well.
2. I do not understand what you mean. Please rephrase.
3. You will need to explain the problem in greater detail.
With warm regards

Originally posted by foolsee:
Hi, all.
I have some questions about criteriaFind().
1. I think we only need to implement this method for Origin airport
and Destination airport. Am I correct? Or should I do this for
every possible fieldName?
2. in any cases, should I use StringTokenizer to get fieldName or can
I just hard code it from DataSet?
3. I used Vector class to store DataInfo[], however mine looks like
it returns the last record not the record of the record number.
Could you tell me what is wrong?
Please comment.
Thank you in advance.

I've implemented a hash-queue based locking system which grants locks to clients in the order the requests the first client in the queue gets the lock and the others have to wait in line.
And...I have had to use an external object to synchronize on to provide this functionality. Just my opinion though....
Hope this helps.
With warm regards


Originally posted by Douglas Kent:
I think your approach mis-states the way "wait" works. Wait can only be called by a program in a synchronized block. It releases the lock on that object, allowing other threads that are blocked awaiting access to that object. For this to work, I believe that the object that has the lock would have to execute a synchronized code block that would have as a first item of business setting the lock flag. It would then execute the update, release the lock, then exit the synchronized code. Another thread that has been blocked awaiting access to the synchronized code would then be granted access, and set its lock, and so on. I think this will work, but with the synchonization providing the real locking mechanism, is there a need for some external (to the database) object that holds locks for each record?