• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

SCJD passed with score 353

 
Gytis Jakutonis
Ranch Hand
Posts: 76
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Score: 353
Comment: This report shows the total 1.4 SCJD points that could have been awarded in each section, and the actual number of points you were awarded. This is provided to give you per-section feedback on your strengths. The maximum possible score is 400; the minimum to pass is 320. General Considerations (maximum = 100): 99 Documentation (maximum = 70): 69 O-O Design (maximum = 30): 30 GUI (maximum = 40): 31 Locking (maximum = 80): 44 Data store (maximum = 40): 40 Network server (maximum = 40): 40
-------
Major decisions (briefly discussed in this forum):
1. RMI, but no remote interface for DBMain - remote interface with business logic, called Services, with three methods (book, release, find).
2. DuplicateKeyException not used at all, RecordNotFoundException not used for find method.
3. runtime wrapper for IOException called RuntimeIOException
4. Server mode has no gui (maybe I've lost some points on this?)
5. MVC for client GUI, but my View component does not use events - it calls Controller directly. I guess I've lost some points because of these issues: no gui configuration is saved (I store only database file location, host and port), default JTable management (I've added simple sorting only), specific MVC implementation (no events), I've forgot to handle RuntimeIOException and show some dialog with error message.
6. Seems like I've failed with my locking. I've implemented locking, based on record-weak_reference_to_client map and synchronized lock() unlock() methods. I've used wait() and motifyAll(). Weak references are added to ReferenceQueue in order to cleanup later by utility thread (since my DBMain is not exported remotelly, I guess I've lost some points because of this unnecessary cleanup). Also I've implemented deadlock detection and reentrant locking support. I've tested all locking with multiple threads, deadlock also, so my locking works fine, so I'm a bit confused about the lost points.

Anyway, I'm quite satisfied with the results, since I've lost many points only in one section, which means that either my implementation was too complex or I've missed smth in requirements.
 
Andrew Monkhouse
author and jackaroo
Marshal Commander
Pie
Posts: 12007
215
C++ Firefox Browser IntelliJ IDE Java Mac Oracle
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Congratulations Gytis
 
Eben Hewitt
Author
Ranch Hand
Posts: 36
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Congratulations!
 
Robert Konigsberg
Ranch Hand
Posts: 172
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It's very interesting that you had a couple of one-less-than-top ratings. I wonder why that is. Also it shows how significant the Row Locking is. I suspect that if you get Row Locking 80/80 then you can at least have one big blunder somewhere else. That's pretty strict.

RK
 
Gytis Jakutonis
Ranch Hand
Posts: 76
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Robert,
I think I've lost some points on general considerations and documentation because of my poor english And one more point - I see a lot of discussions considering documentation amount. I'm sure that there is no need to write pages of text for choices.txt and userguide.txt - my both files are only two printed pages long.
 
Philippe Maquet
Bartender
Posts: 1872
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Congratulations, Gytis!

That's a great global score, despite the locking issue!

6. Seems like I've failed with my locking. I've implemented locking, based on record-weak_reference_to_client map and synchronized lock() unlock() methods. I've used wait() and motifyAll(). Weak references are added to ReferenceQueue in order to cleanup later by utility thread (since my DBMain is not exported remotelly, I guess I've lost some points because of this unnecessary cleanup). Also I've implemented deadlock detection and reentrant locking support. I've tested all locking with multiple threads, deadlock also, so my locking works fine, so I'm a bit confused about the lost points.


As Mark wrote in The Mysterious 44/80 Locking score thread (recently recalled by Andrew), it looks like that "mysterious" locking score comes from issues in the way your locking implementation *works*. In other words, whatever your locking design is, it must work. OK, it's so obvious that the only relevant information in that thread is that the lost points in the locking section don't *necessarily* come from a design issue.

Anyway, you can now forget it! You're SCJD, moreover with a score you can be proud of. Congratulations again!

Best regards,

Phil.
 
Philippe Maquet
Bartender
Posts: 1872
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm sorry about it, but I must move this thread to the Certification Results forum, where you can now find it here.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic