fb-contrib-commit Mailing List for fb-contrib (Page 66)
Brought to you by:
dbrosius
You can subscribe to this list here.
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(56) |
Oct
(60) |
Nov
(58) |
Dec
(89) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2006 |
Jan
(66) |
Feb
(55) |
Mar
(85) |
Apr
(115) |
May
(35) |
Jun
(28) |
Jul
(3) |
Aug
(48) |
Sep
(37) |
Oct
(22) |
Nov
(14) |
Dec
(66) |
| 2007 |
Jan
(45) |
Feb
(63) |
Mar
(10) |
Apr
(1) |
May
(1) |
Jun
(12) |
Jul
|
Aug
|
Sep
(25) |
Oct
(21) |
Nov
(39) |
Dec
|
| 2008 |
Jan
(7) |
Feb
|
Mar
(26) |
Apr
(5) |
May
(2) |
Jun
(32) |
Jul
(9) |
Aug
(10) |
Sep
|
Oct
(3) |
Nov
(1) |
Dec
|
| 2009 |
Jan
(10) |
Feb
(31) |
Mar
(32) |
Apr
(35) |
May
(25) |
Jun
|
Jul
(31) |
Aug
(10) |
Sep
(95) |
Oct
(35) |
Nov
(10) |
Dec
(34) |
| 2010 |
Jan
(90) |
Feb
(4) |
Mar
(7) |
Apr
(20) |
May
(20) |
Jun
(13) |
Jul
(7) |
Aug
(18) |
Sep
(25) |
Oct
(4) |
Nov
(16) |
Dec
(2) |
| 2011 |
Jan
(1) |
Feb
|
Mar
(11) |
Apr
(3) |
May
(2) |
Jun
(26) |
Jul
(10) |
Aug
(2) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
(1) |
| 2012 |
Jan
(3) |
Feb
(4) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
(14) |
Nov
(3) |
Dec
(4) |
| 2013 |
Jan
(3) |
Feb
(2) |
Mar
(1) |
Apr
(4) |
May
|
Jun
(1) |
Jul
(3) |
Aug
|
Sep
|
Oct
(4) |
Nov
(3) |
Dec
(3) |
| 2014 |
Jan
(4) |
Feb
(2) |
Mar
(4) |
Apr
(1) |
May
(2) |
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
(3) |
Dec
(3) |
| 2016 |
Jan
(2) |
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
(1) |
Aug
(2) |
Sep
(4) |
Oct
(2) |
Nov
(7) |
Dec
|
| 2017 |
Jan
(1) |
Feb
|
Mar
(4) |
Apr
(5) |
May
(2) |
Jun
|
Jul
(2) |
Aug
|
Sep
(4) |
Oct
|
Nov
|
Dec
(3) |
| 2018 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
(5) |
Jun
(2) |
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Dave B. <dbr...@us...> - 2006-01-14 03:33:28
|
Update of /cvsroot/fb-contrib/fb-contrib/etc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3202/etc Modified Files: findbugs.xml Log Message: prepare for a 2.0.1 release Index: findbugs.xml =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/etc/findbugs.xml,v retrieving revision 1.50 retrieving revision 1.51 diff -u -d -r1.50 -r1.51 --- findbugs.xml 2 Jan 2006 03:41:07 -0000 1.50 +++ findbugs.xml 14 Jan 2006 03:33:17 -0000 1.51 @@ -128,7 +128,8 @@ <Detector class="com.mebigfatguy.fbcontrib.detect.BloatedSynchronizedBlock" speed="fast" - reports="BSB_BLOATED_SYNCHRONIZED_BLOCK" /> + reports="BSB_BLOATED_SYNCHRONIZED_BLOCK" + hidden="true" /> <!-- BugPattern --> |
|
From: Dave B. <dbr...@us...> - 2006-01-14 03:33:28
|
Update of /cvsroot/fb-contrib/fb-contrib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3202 Modified Files: build.xml Log Message: prepare for a 2.0.1 release Index: build.xml =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/build.xml,v retrieving revision 1.24 retrieving revision 1.25 diff -u -d -r1.24 -r1.25 --- build.xml 2 Jan 2006 00:39:26 -0000 1.24 +++ build.xml 14 Jan 2006 03:33:17 -0000 1.25 @@ -18,7 +18,7 @@ <property name="javac.deprecation" value="on"/> <property name="javac.debug" value="on"/> - <property name="fb-contrib.version" value="2.1.0"/> + <property name="fb-contrib.version" value="2.0.1"/> <target name="clean" description="removes all generated collateral"> <delete dir="${classes.dir}"/> |
|
From: Dave B. <dbr...@us...> - 2006-01-14 03:19:48
|
Update of /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1369/src/com/mebigfatguy/fbcontrib/detect Modified Files: SpuriousThreadStates.java Log Message: Bug 1404975: guard against npes. Index: SpuriousThreadStates.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/SpuriousThreadStates.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- SpuriousThreadStates.java 4 Jan 2006 02:40:42 -0000 1.5 +++ SpuriousThreadStates.java 14 Jan 2006 03:19:39 -0000 1.6 @@ -82,14 +82,16 @@ if (itm != null) { JavaClass cls = itm.getJavaClass(); boolean found = false; - if ("java.lang.Thread".equals(cls.getClassName())) - found = true; - else { - JavaClass[] supers = cls.getSuperClasses(); - for (JavaClass jc : supers) { - if ("java.lang.Thread".equals(jc.getClassName())) { - found = true; - break; + if (cls != null) { + if ("java.lang.Thread".equals(cls.getClassName())) + found = true; + else { + JavaClass[] supers = cls.getSuperClasses(); + for (JavaClass jc : supers) { + if ("java.lang.Thread".equals(jc.getClassName())) { + found = true; + break; + } } } } |
|
From: Dave B. <dbr...@us...> - 2006-01-08 03:19:29
|
Update of /cvsroot/fb-contrib/fb-contrib/samples In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16875/samples Modified Files: DRE_Sample.java Log Message: test a custom runtime exception class Index: DRE_Sample.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/samples/DRE_Sample.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- DRE_Sample.java 15 Sep 2005 04:03:12 -0000 1.1 +++ DRE_Sample.java 8 Jan 2006 03:19:16 -0000 1.2 @@ -16,4 +16,14 @@ if (c == 0) throw new SQLException("test"); } + + public void test4(int d) throws CustomRuntimeException { + if (d == 0) + throw new CustomRuntimeException(); + } +} + +class CustomRuntimeException extends RuntimeException +{ + } \ No newline at end of file |
|
From: Dave B. <dbr...@us...> - 2006-01-07 05:52:51
|
Update of /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26497/src/com/mebigfatguy/fbcontrib/detect Modified Files: BloatedSynchronizedBlock.java Log Message: ah poo, any static access is unsafe Index: BloatedSynchronizedBlock.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedSynchronizedBlock.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- BloatedSynchronizedBlock.java 7 Jan 2006 05:29:43 -0000 1.8 +++ BloatedSynchronizedBlock.java 7 Jan 2006 05:52:41 -0000 1.9 @@ -27,7 +27,6 @@ import edu.umd.cs.findbugs.BugInstance; import edu.umd.cs.findbugs.BugReporter; import edu.umd.cs.findbugs.BytecodeScanningDetector; -import edu.umd.cs.findbugs.FieldAnnotation; import edu.umd.cs.findbugs.OpcodeStack; import edu.umd.cs.findbugs.StatelessDetector; @@ -37,7 +36,6 @@ private static final String BSB_MIN_SAFE_CODE_SIZE = "fb-contrib.bsb.minsize"; private OpcodeStack stack = new OpcodeStack(); private Set<Integer> unsafeAliases = new HashSet<Integer>(); - private Set<String> unsafeFields = new HashSet<String>(); private int syncPC; private int lastPC; private boolean isStatic; @@ -51,7 +49,7 @@ */ public BloatedSynchronizedBlock(BugReporter bugReporter) { this.bugReporter = bugReporter; - minSafeCodeLength = Integer.getInteger(BSB_MIN_SAFE_CODE_SIZE, 10); + minSafeCodeLength = Integer.getInteger(BSB_MIN_SAFE_CODE_SIZE, 15).intValue(); } /** @@ -77,7 +75,6 @@ lastPC = -1; isStatic = obj.isStatic(); unsafeAliases.clear(); - unsafeFields.clear(); thisCallOccurred = false; stack.resetForMethodEntry(this); } @@ -110,7 +107,8 @@ thisCallOccurred = false; } else thisCallOccurred = false; - } + } else if (seen == INVOKESTATIC) + thisCallOccurred = (getClassConstantOperand().equals(this.getClassContext().getJavaClass())); else thisCallOccurred = false; @@ -122,27 +120,17 @@ int monitorReg = itm.getRegisterNumber(); if (monitorReg >= 0) { unsafeAliases.add(new Integer(monitorReg)); - } else { - FieldAnnotation fa = itm.getField(); - if (fa != null) { - String name = fa.getFieldName(); - if (name != null) - unsafeFields.add(name); - } - } - + } } } } else if (seen == MONITOREXIT) syncPC = -1; else if (syncPC >= 0) { - boolean unsafe = ((seen == PUTFIELD) || (seen == GETFIELD)); + boolean unsafe = ((seen == PUTFIELD) || (seen == GETFIELD) || (seen == GETSTATIC) || (seen == PUTSTATIC)); unsafe |= (!isStatic) && ((seen == ALOAD_0) || (seen == ASTORE_0)); int aloadReg = aloadReg(seen); unsafe |= (aloadReg >= 0) && unsafeAliases.contains(new Integer(aloadReg)); - String getStaticName = getStaticName(seen); - unsafe |= (getStaticName != null) && unsafeFields.contains(getStaticName); if (unsafe) { if ((getPC() - syncPC) > minSafeCodeLength) { bugReporter.reportBug(new BugInstance(this, "BSB_BLOATED_SYNCHRONIZED_BLOCK", NORMAL_PRIORITY) @@ -188,21 +176,4 @@ return seen - ASTORE_0; return -1; } - - /** - * returns the name of the field that is loaded with GETSTATIC, or null if not the getstatic instruction - * - * @param seen the currently visited opcode - * - * @return the fieldname used if it's a getstatic instruction, or null otherwise - */ - public String getStaticName(int seen) { - if (seen == GETSTATIC) { - FieldAnnotation fa = FieldAnnotation.fromReferencedField(this); - if (fa != null) - return fa.getFieldName(); - } - return null; - } - } |
|
From: Dave B. <dbr...@us...> - 2006-01-07 05:29:53
|
Update of /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23245/src/com/mebigfatguy/fbcontrib/detect Modified Files: BloatedSynchronizedBlock.java Log Message: accessing a static field that is synchronized on, is also unsafe Index: BloatedSynchronizedBlock.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedSynchronizedBlock.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- BloatedSynchronizedBlock.java 4 Jan 2006 02:40:42 -0000 1.7 +++ BloatedSynchronizedBlock.java 7 Jan 2006 05:29:43 -0000 1.8 @@ -27,6 +27,7 @@ import edu.umd.cs.findbugs.BugInstance; import edu.umd.cs.findbugs.BugReporter; import edu.umd.cs.findbugs.BytecodeScanningDetector; +import edu.umd.cs.findbugs.FieldAnnotation; import edu.umd.cs.findbugs.OpcodeStack; import edu.umd.cs.findbugs.StatelessDetector; @@ -36,6 +37,7 @@ private static final String BSB_MIN_SAFE_CODE_SIZE = "fb-contrib.bsb.minsize"; private OpcodeStack stack = new OpcodeStack(); private Set<Integer> unsafeAliases = new HashSet<Integer>(); + private Set<String> unsafeFields = new HashSet<String>(); private int syncPC; private int lastPC; private boolean isStatic; @@ -75,6 +77,7 @@ lastPC = -1; isStatic = obj.isStatic(); unsafeAliases.clear(); + unsafeFields.clear(); thisCallOccurred = false; stack.resetForMethodEntry(this); } @@ -119,7 +122,15 @@ int monitorReg = itm.getRegisterNumber(); if (monitorReg >= 0) { unsafeAliases.add(new Integer(monitorReg)); - } + } else { + FieldAnnotation fa = itm.getField(); + if (fa != null) { + String name = fa.getFieldName(); + if (name != null) + unsafeFields.add(name); + } + } + } } } @@ -130,6 +141,8 @@ unsafe |= (!isStatic) && ((seen == ALOAD_0) || (seen == ASTORE_0)); int aloadReg = aloadReg(seen); unsafe |= (aloadReg >= 0) && unsafeAliases.contains(new Integer(aloadReg)); + String getStaticName = getStaticName(seen); + unsafe |= (getStaticName != null) && unsafeFields.contains(getStaticName); if (unsafe) { if ((getPC() - syncPC) > minSafeCodeLength) { bugReporter.reportBug(new BugInstance(this, "BSB_BLOATED_SYNCHRONIZED_BLOCK", NORMAL_PRIORITY) @@ -175,4 +188,21 @@ return seen - ASTORE_0; return -1; } + + /** + * returns the name of the field that is loaded with GETSTATIC, or null if not the getstatic instruction + * + * @param seen the currently visited opcode + * + * @return the fieldname used if it's a getstatic instruction, or null otherwise + */ + public String getStaticName(int seen) { + if (seen == GETSTATIC) { + FieldAnnotation fa = FieldAnnotation.fromReferencedField(this); + if (fa != null) + return fa.getFieldName(); + } + return null; + } + } |
Update of /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18978/src/com/mebigfatguy/fbcontrib/detect Modified Files: AbnormalFinallyBlockReturn.java AbstractClassEmptyMethods.java AbstractOverriddenMethod.java ArrayBasedCollections.java BloatedSynchronizedBlock.java ClassEnvy.java ConfusingAutoboxedOverloading.java CopiedOverriddenMethod.java CustomBuiltXML.java CyclomaticComplexity.java DeclaredRuntimeException.java DubiousListCollection.java FinalParameters.java FloatingPointLoops.java InefficientStringBuffering.java ListIndexedIterating.java LiteralStringComparison.java ManualArrayCopy.java NeedlessAutoboxing.java NonCollectionMethodUse.java OrphanedDOMNode.java OverlyConcreteParameter.java ParallelLists.java PartiallyConstructedObjectAccess.java SpuriousThreadStates.java StaticMethodInstanceInvocation.java SyncCollectionIterators.java UnnecessaryStoreBeforeReturn.java UnrelatedCollectionContents.java Log Message: update copyright to 2005-2006 Index: NonCollectionMethodUse.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/NonCollectionMethodUse.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- NonCollectionMethodUse.java 5 Dec 2005 05:21:15 -0000 1.3 +++ NonCollectionMethodUse.java 4 Jan 2006 02:40:42 -0000 1.4 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: BloatedSynchronizedBlock.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedSynchronizedBlock.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- BloatedSynchronizedBlock.java 4 Jan 2006 02:28:19 -0000 1.6 +++ BloatedSynchronizedBlock.java 4 Jan 2006 02:40:42 -0000 1.7 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: AbstractClassEmptyMethods.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/AbstractClassEmptyMethods.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- AbstractClassEmptyMethods.java 5 Dec 2005 05:30:24 -0000 1.4 +++ AbstractClassEmptyMethods.java 4 Jan 2006 02:40:42 -0000 1.5 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: NeedlessAutoboxing.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/NeedlessAutoboxing.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- NeedlessAutoboxing.java 17 Dec 2005 04:31:01 -0000 1.4 +++ NeedlessAutoboxing.java 4 Jan 2006 02:40:42 -0000 1.5 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: CopiedOverriddenMethod.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/CopiedOverriddenMethod.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- CopiedOverriddenMethod.java 23 Dec 2005 03:24:35 -0000 1.4 +++ CopiedOverriddenMethod.java 4 Jan 2006 02:40:42 -0000 1.5 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: ConfusingAutoboxedOverloading.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/ConfusingAutoboxedOverloading.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- ConfusingAutoboxedOverloading.java 6 Dec 2005 05:55:44 -0000 1.6 +++ ConfusingAutoboxedOverloading.java 4 Jan 2006 02:40:42 -0000 1.7 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: ParallelLists.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/ParallelLists.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- ParallelLists.java 5 Dec 2005 05:21:15 -0000 1.7 +++ ParallelLists.java 4 Jan 2006 02:40:42 -0000 1.8 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: PartiallyConstructedObjectAccess.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/PartiallyConstructedObjectAccess.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- PartiallyConstructedObjectAccess.java 5 Dec 2005 05:21:15 -0000 1.4 +++ PartiallyConstructedObjectAccess.java 4 Jan 2006 02:40:42 -0000 1.5 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: SpuriousThreadStates.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/SpuriousThreadStates.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- SpuriousThreadStates.java 5 Dec 2005 05:21:15 -0000 1.4 +++ SpuriousThreadStates.java 4 Jan 2006 02:40:42 -0000 1.5 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: DubiousListCollection.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/DubiousListCollection.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- DubiousListCollection.java 6 Dec 2005 05:48:21 -0000 1.9 +++ DubiousListCollection.java 4 Jan 2006 02:40:42 -0000 1.10 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: AbnormalFinallyBlockReturn.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/AbnormalFinallyBlockReturn.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- AbnormalFinallyBlockReturn.java 5 Dec 2005 05:21:15 -0000 1.7 +++ AbnormalFinallyBlockReturn.java 4 Jan 2006 02:40:42 -0000 1.8 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: FinalParameters.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/FinalParameters.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- FinalParameters.java 6 Dec 2005 05:53:56 -0000 1.10 +++ FinalParameters.java 4 Jan 2006 02:40:42 -0000 1.11 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: ArrayBasedCollections.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/ArrayBasedCollections.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ArrayBasedCollections.java 22 Dec 2005 19:12:47 -0000 1.3 +++ ArrayBasedCollections.java 4 Jan 2006 02:40:42 -0000 1.4 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: UnnecessaryStoreBeforeReturn.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/UnnecessaryStoreBeforeReturn.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- UnnecessaryStoreBeforeReturn.java 5 Dec 2005 05:21:15 -0000 1.5 +++ UnnecessaryStoreBeforeReturn.java 4 Jan 2006 02:40:42 -0000 1.6 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: FloatingPointLoops.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/FloatingPointLoops.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- FloatingPointLoops.java 5 Dec 2005 05:21:15 -0000 1.7 +++ FloatingPointLoops.java 4 Jan 2006 02:40:42 -0000 1.8 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: OrphanedDOMNode.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/OrphanedDOMNode.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- OrphanedDOMNode.java 24 Dec 2005 04:59:42 -0000 1.3 +++ OrphanedDOMNode.java 4 Jan 2006 02:40:42 -0000 1.4 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: ListIndexedIterating.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/ListIndexedIterating.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- ListIndexedIterating.java 6 Dec 2005 06:55:53 -0000 1.10 +++ ListIndexedIterating.java 4 Jan 2006 02:40:42 -0000 1.11 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: SyncCollectionIterators.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/SyncCollectionIterators.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- SyncCollectionIterators.java 5 Dec 2005 05:21:15 -0000 1.9 +++ SyncCollectionIterators.java 4 Jan 2006 02:40:42 -0000 1.10 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: AbstractOverriddenMethod.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/AbstractOverriddenMethod.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- AbstractOverriddenMethod.java 28 Dec 2005 03:40:18 -0000 1.1 +++ AbstractOverriddenMethod.java 4 Jan 2006 02:40:42 -0000 1.2 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: ClassEnvy.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/ClassEnvy.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- ClassEnvy.java 5 Dec 2005 05:43:44 -0000 1.17 +++ ClassEnvy.java 4 Jan 2006 02:40:42 -0000 1.18 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: LiteralStringComparison.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/LiteralStringComparison.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- LiteralStringComparison.java 6 Dec 2005 06:57:22 -0000 1.6 +++ LiteralStringComparison.java 4 Jan 2006 02:40:42 -0000 1.7 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: OverlyConcreteParameter.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/OverlyConcreteParameter.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- OverlyConcreteParameter.java 5 Dec 2005 05:21:15 -0000 1.25 +++ OverlyConcreteParameter.java 4 Jan 2006 02:40:42 -0000 1.26 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: DeclaredRuntimeException.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/DeclaredRuntimeException.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- DeclaredRuntimeException.java 6 Dec 2005 05:42:44 -0000 1.8 +++ DeclaredRuntimeException.java 4 Jan 2006 02:40:42 -0000 1.9 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: UnrelatedCollectionContents.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/UnrelatedCollectionContents.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- UnrelatedCollectionContents.java 5 Dec 2005 05:21:15 -0000 1.10 +++ UnrelatedCollectionContents.java 4 Jan 2006 02:40:42 -0000 1.11 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: CustomBuiltXML.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/CustomBuiltXML.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- CustomBuiltXML.java 31 Dec 2005 03:21:42 -0000 1.4 +++ CustomBuiltXML.java 4 Jan 2006 02:40:42 -0000 1.5 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: CyclomaticComplexity.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/CyclomaticComplexity.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- CyclomaticComplexity.java 6 Dec 2005 05:40:57 -0000 1.8 +++ CyclomaticComplexity.java 4 Jan 2006 02:40:42 -0000 1.9 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: StaticMethodInstanceInvocation.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/StaticMethodInstanceInvocation.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- StaticMethodInstanceInvocation.java 5 Dec 2005 05:21:15 -0000 1.4 +++ StaticMethodInstanceInvocation.java 4 Jan 2006 02:40:42 -0000 1.5 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: ManualArrayCopy.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/ManualArrayCopy.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ManualArrayCopy.java 5 Dec 2005 05:21:15 -0000 1.3 +++ ManualArrayCopy.java 4 Jan 2006 02:40:42 -0000 1.4 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public Index: InefficientStringBuffering.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/InefficientStringBuffering.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- InefficientStringBuffering.java 5 Dec 2005 05:21:15 -0000 1.6 +++ InefficientStringBuffering.java 4 Jan 2006 02:40:42 -0000 1.7 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public |
|
From: Dave B. <dbr...@us...> - 2006-01-04 02:40:49
|
Update of /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18978/src/com/mebigfatguy/fbcontrib Modified Files: FBContrib.java Log Message: update copyright to 2005-2006 Index: FBContrib.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/FBContrib.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- FBContrib.java 22 Nov 2005 03:48:14 -0000 1.4 +++ FBContrib.java 4 Jan 2006 02:40:41 -0000 1.5 @@ -1,6 +1,6 @@ /* * fb-contrib - Auxilliary detectors for Java programs - * Copyright (C) 2005 Dave Brosius + * Copyright (C) 2005-2006 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public |
|
From: Dave B. <dbr...@us...> - 2006-01-04 02:28:27
|
Update of /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16950/src/com/mebigfatguy/fbcontrib/detect Modified Files: BloatedSynchronizedBlock.java Log Message: oopsey Index: BloatedSynchronizedBlock.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedSynchronizedBlock.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- BloatedSynchronizedBlock.java 2 Jan 2006 16:44:01 -0000 1.5 +++ BloatedSynchronizedBlock.java 4 Jan 2006 02:28:19 -0000 1.6 @@ -98,7 +98,7 @@ || (seen == INVOKEINTERFACE)) { String methodSig = getSigConstantOperand(); Type returnType = Type.getReturnType(methodSig); - if (!(returnType.equals(Type.VOID)) { + if (!(returnType.equals(Type.VOID))) { int parmCount = Type.getArgumentTypes(methodSig).length; if (stack.getStackDepth() > parmCount) { OpcodeStack.Item itm = stack.getStackItem(parmCount); |
|
From: Dave B. <dbr...@us...> - 2006-01-02 16:44:11
|
Update of /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1245/src/com/mebigfatguy/fbcontrib/detect Modified Files: BloatedSynchronizedBlock.java Log Message: keep track of local variables that are aliases to the results of methods calls on this. Consider all such loads on these variables as unsafe. Index: BloatedSynchronizedBlock.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedSynchronizedBlock.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- BloatedSynchronizedBlock.java 2 Jan 2006 14:57:11 -0000 1.4 +++ BloatedSynchronizedBlock.java 2 Jan 2006 16:44:01 -0000 1.5 @@ -18,7 +18,11 @@ */ package com.mebigfatguy.fbcontrib.detect; +import java.util.HashSet; +import java.util.Set; + import org.apache.bcel.classfile.Method; +import org.apache.bcel.generic.Type; import edu.umd.cs.findbugs.BugInstance; import edu.umd.cs.findbugs.BugReporter; @@ -31,11 +35,12 @@ private BugReporter bugReporter; private static final String BSB_MIN_SAFE_CODE_SIZE = "fb-contrib.bsb.minsize"; private OpcodeStack stack = new OpcodeStack(); + private Set<Integer> unsafeAliases = new HashSet<Integer>(); private int syncPC; private int lastPC; - private int monitorReg; private boolean isStatic; private int minSafeCodeLength; + private boolean thisCallOccurred; /** * constructs a BSB detector given the reporter to report bugs on @@ -68,8 +73,9 @@ else syncPC = -1; lastPC = -1; - monitorReg = -1; isStatic = obj.isStatic(); + unsafeAliases.clear(); + thisCallOccurred = false; stack.resetForMethodEntry(this); } @@ -81,12 +87,39 @@ */ public void sawOpcode(int seen) { try { + if (thisCallOccurred && ((seen == ASTORE) || ((seen >= ASTORE_0) && (seen <= ASTORE_3)))) { + int storeReg = astoreReg(seen); + if (storeReg >= 0) + unsafeAliases.add(new Integer(storeReg)); + } + + if ((seen == INVOKEVIRTUAL) + || (seen == INVOKESPECIAL) + || (seen == INVOKEINTERFACE)) { + String methodSig = getSigConstantOperand(); + Type returnType = Type.getReturnType(methodSig); + if (!(returnType.equals(Type.VOID)) { + int parmCount = Type.getArgumentTypes(methodSig).length; + if (stack.getStackDepth() > parmCount) { + OpcodeStack.Item itm = stack.getStackItem(parmCount); + thisCallOccurred = (itm.getRegisterNumber() == 0); + } else + thisCallOccurred = false; + } else + thisCallOccurred = false; + } + else + thisCallOccurred = false; + if (seen == MONITORENTER) { if (syncPC < 0) { syncPC = getPC(); if (stack.getStackDepth() > 0) { OpcodeStack.Item itm = stack.getStackItem(0); - monitorReg = itm.getRegisterNumber(); + int monitorReg = itm.getRegisterNumber(); + if (monitorReg >= 0) { + unsafeAliases.add(new Integer(monitorReg)); + } } } } @@ -95,7 +128,8 @@ else if (syncPC >= 0) { boolean unsafe = ((seen == PUTFIELD) || (seen == GETFIELD)); unsafe |= (!isStatic) && ((seen == ALOAD_0) || (seen == ASTORE_0)); - unsafe |= (monitorReg >= 0) && (aloadReg(seen) == monitorReg); + int aloadReg = aloadReg(seen); + unsafe |= (aloadReg >= 0) && unsafeAliases.contains(new Integer(aloadReg)); if (unsafe) { if ((getPC() - syncPC) > minSafeCodeLength) { bugReporter.reportBug(new BugInstance(this, "BSB_BLOATED_SYNCHRONIZED_BLOCK", NORMAL_PRIORITY) @@ -126,4 +160,19 @@ return seen - ALOAD_0; return -1; } + + /** + * return the register number used in this ASTORE method, if it is an astore instruction + * + * @param seen the currently visited opcode + * + * @return the register used if it's an astore instruction, or -1 otherwise + */ + public int astoreReg(int seen) { + if (seen == ASTORE) + return getRegisterOperand(); + if ((seen >= ASTORE_0) && (seen <= ASTORE_3)) + return seen - ASTORE_0; + return -1; + } } |
|
From: Dave B. <dbr...@us...> - 2006-01-02 16:44:10
|
Update of /cvsroot/fb-contrib/fb-contrib/samples In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1245/samples Modified Files: BSB_Sample.java Log Message: keep track of local variables that are aliases to the results of methods calls on this. Consider all such loads on these variables as unsafe. Index: BSB_Sample.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/samples/BSB_Sample.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- BSB_Sample.java 2 Jan 2006 14:57:11 -0000 1.3 +++ BSB_Sample.java 2 Jan 2006 16:44:01 -0000 1.4 @@ -29,6 +29,18 @@ } } + public void testAliasedLocalBeginBloated(int j) + { + Set<String> i = getInfo(); + synchronized(info) + { + StringBuffer sb = new StringBuffer(); + sb.append("Test"); + sb.append(j); + i.add(sb.toString()); + } + } + public Set<String> getInfo() { return info; |
|
From: Dave B. <dbr...@us...> - 2006-01-02 14:57:20
|
Update of /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13635/src/com/mebigfatguy/fbcontrib/detect Modified Files: BloatedSynchronizedBlock.java Log Message: any load on the object that is the synchronizing object, is unsafe Index: BloatedSynchronizedBlock.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedSynchronizedBlock.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- BloatedSynchronizedBlock.java 2 Jan 2006 04:23:21 -0000 1.3 +++ BloatedSynchronizedBlock.java 2 Jan 2006 14:57:11 -0000 1.4 @@ -23,14 +23,17 @@ import edu.umd.cs.findbugs.BugInstance; import edu.umd.cs.findbugs.BugReporter; import edu.umd.cs.findbugs.BytecodeScanningDetector; +import edu.umd.cs.findbugs.OpcodeStack; import edu.umd.cs.findbugs.StatelessDetector; public class BloatedSynchronizedBlock extends BytecodeScanningDetector implements StatelessDetector { private BugReporter bugReporter; private static final String BSB_MIN_SAFE_CODE_SIZE = "fb-contrib.bsb.minsize"; + private OpcodeStack stack = new OpcodeStack(); private int syncPC; private int lastPC; + private int monitorReg; private boolean isStatic; private int minSafeCodeLength; @@ -65,7 +68,9 @@ else syncPC = -1; lastPC = -1; + monitorReg = -1; isStatic = obj.isStatic(); + stack.resetForMethodEntry(this); } /** @@ -75,25 +80,50 @@ * @param seen the opcode of the currently parsed instruction */ public void sawOpcode(int seen) { - if (seen == MONITORENTER) { - if (syncPC < 0) - syncPC = getPC(); - } - else if (seen == MONITOREXIT) - syncPC = -1; - else if (syncPC >= 0) { - boolean unsafe = ((seen == PUTFIELD) || (seen == GETFIELD)); - unsafe |= (!isStatic) && ((seen == ALOAD_0) || (seen == ASTORE_0)); - if (unsafe) { - if ((getPC() - syncPC) > minSafeCodeLength) { - bugReporter.reportBug(new BugInstance(this, "BSB_BLOATED_SYNCHRONIZED_BLOCK", NORMAL_PRIORITY) - .addClass(this) - .addMethod(this) - .addSourceLineRange(this, syncPC + 1, lastPC)); + try { + if (seen == MONITORENTER) { + if (syncPC < 0) { + syncPC = getPC(); + if (stack.getStackDepth() > 0) { + OpcodeStack.Item itm = stack.getStackItem(0); + monitorReg = itm.getRegisterNumber(); + } } + } + else if (seen == MONITOREXIT) syncPC = -1; + else if (syncPC >= 0) { + boolean unsafe = ((seen == PUTFIELD) || (seen == GETFIELD)); + unsafe |= (!isStatic) && ((seen == ALOAD_0) || (seen == ASTORE_0)); + unsafe |= (monitorReg >= 0) && (aloadReg(seen) == monitorReg); + if (unsafe) { + if ((getPC() - syncPC) > minSafeCodeLength) { + bugReporter.reportBug(new BugInstance(this, "BSB_BLOATED_SYNCHRONIZED_BLOCK", NORMAL_PRIORITY) + .addClass(this) + .addMethod(this) + .addSourceLineRange(this, syncPC + 1, lastPC)); + } + syncPC = -1; + } } + lastPC = getPC(); + } finally { + stack.sawOpcode(this, seen); } - lastPC = getPC(); + } + + /** + * return the register number used in this ALOAD method, if it is an aload instruction + * + * @param seen the currently visited opcode + * + * @return the register used if it's an aload instruction, or -1 otherwise + */ + public int aloadReg(int seen) { + if (seen == ALOAD) + return getRegisterOperand(); + if ((seen >= ALOAD_0) && (seen <= ALOAD_3)) + return seen - ALOAD_0; + return -1; } } |
|
From: Dave B. <dbr...@us...> - 2006-01-02 14:57:19
|
Update of /cvsroot/fb-contrib/fb-contrib/samples In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13635/samples Modified Files: BSB_Sample.java Log Message: any load on the object that is the synchronizing object, is unsafe Index: BSB_Sample.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/samples/BSB_Sample.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- BSB_Sample.java 2 Jan 2006 03:41:07 -0000 1.2 +++ BSB_Sample.java 2 Jan 2006 14:57:11 -0000 1.3 @@ -6,7 +6,7 @@ private Object lock = new Object(); private Set<String> info = new HashSet<String>(); - public void testBeginBloated(int i, int j) + public void testFieldBeginBloated(int i, int j) { synchronized(lock) { @@ -16,4 +16,21 @@ info.add(sb.toString()); } } + + public void testLocalBeginBloated(int j) + { + Set<String> i = getInfo(); + synchronized(i) + { + StringBuffer sb = new StringBuffer(); + sb.append("Test"); + sb.append(j); + i.add(sb.toString()); + } + } + + public Set<String> getInfo() + { + return info; + } } |
|
From: Dave B. <dbr...@us...> - 2006-01-02 04:23:30
|
Update of /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv350/src/com/mebigfatguy/fbcontrib/detect Modified Files: BloatedSynchronizedBlock.java Log Message: remove some now unused guff Index: BloatedSynchronizedBlock.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedSynchronizedBlock.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- BloatedSynchronizedBlock.java 2 Jan 2006 03:41:07 -0000 1.2 +++ BloatedSynchronizedBlock.java 2 Jan 2006 04:23:21 -0000 1.3 @@ -18,20 +18,17 @@ */ package com.mebigfatguy.fbcontrib.detect; -import org.apache.bcel.Constants; import org.apache.bcel.classfile.Method; import edu.umd.cs.findbugs.BugInstance; import edu.umd.cs.findbugs.BugReporter; import edu.umd.cs.findbugs.BytecodeScanningDetector; -import edu.umd.cs.findbugs.OpcodeStack; import edu.umd.cs.findbugs.StatelessDetector; public class BloatedSynchronizedBlock extends BytecodeScanningDetector implements StatelessDetector { private BugReporter bugReporter; private static final String BSB_MIN_SAFE_CODE_SIZE = "fb-contrib.bsb.minsize"; - private OpcodeStack stack = new OpcodeStack(); private int syncPC; private int lastPC; private boolean isStatic; @@ -67,7 +64,6 @@ syncPC = 0; else syncPC = -1; - stack.resetForMethodEntry(this); lastPC = -1; isStatic = obj.isStatic(); } @@ -79,29 +75,25 @@ * @param seen the opcode of the currently parsed instruction */ public void sawOpcode(int seen) { - try { - if (seen == MONITORENTER) { - if (syncPC < 0) - syncPC = getPC(); - } - else if (seen == MONITOREXIT) - syncPC = -1; - else if (syncPC >= 0) { - boolean unsafe = ((seen == PUTFIELD) || (seen == GETFIELD)); - unsafe |= (!isStatic) && ((seen == ALOAD_0) || (seen == ASTORE_0)); - if (unsafe) { - if ((getPC() - syncPC) > minSafeCodeLength) { - bugReporter.reportBug(new BugInstance(this, "BSB_BLOATED_SYNCHRONIZED_BLOCK", NORMAL_PRIORITY) - .addClass(this) - .addMethod(this) - .addSourceLineRange(this, syncPC + 1, lastPC)); - } - syncPC = -1; + if (seen == MONITORENTER) { + if (syncPC < 0) + syncPC = getPC(); + } + else if (seen == MONITOREXIT) + syncPC = -1; + else if (syncPC >= 0) { + boolean unsafe = ((seen == PUTFIELD) || (seen == GETFIELD)); + unsafe |= (!isStatic) && ((seen == ALOAD_0) || (seen == ASTORE_0)); + if (unsafe) { + if ((getPC() - syncPC) > minSafeCodeLength) { + bugReporter.reportBug(new BugInstance(this, "BSB_BLOATED_SYNCHRONIZED_BLOCK", NORMAL_PRIORITY) + .addClass(this) + .addMethod(this) + .addSourceLineRange(this, syncPC + 1, lastPC)); } + syncPC = -1; } - lastPC = getPC(); - } finally { - stack.sawOpcode(this, seen); } + lastPC = getPC(); } } |
|
From: Dave B. <dbr...@us...> - 2006-01-02 03:41:16
|
Update of /cvsroot/fb-contrib/fb-contrib/etc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26877/etc Modified Files: findbugs.xml messages.xml Log Message: finding BSB at the end of a synchronized block seems very problematic. For now just look for beginning BSB Index: messages.xml =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/etc/messages.xml,v retrieving revision 1.43 retrieving revision 1.44 diff -u -d -r1.43 -r1.44 --- messages.xml 2 Jan 2006 02:48:55 -0000 1.43 +++ messages.xml 2 Jan 2006 03:41:07 -0000 1.44 @@ -375,7 +375,7 @@ <Details> <![CDATA[ <p>Looks for methods that are implemented using synchronized blocks, but are overly - synchronized because the beginning or end of the block only accesses local variables, + synchronized because the beginning of the block only accesses local variables, and not member variables, or this.</p> <p>It is a fast Detector</p> ]]> @@ -739,9 +739,9 @@ <LongDescription>method {1} overly synchronizes a block of code</LongDescription> <Details> <![CDATA[ - <p>This methods implements a synchronized blocks, but the code found at the beginning - or endare overly only accesses local variables, and not member variables, or this. - To be better performance move the code that access local variables only, outside the + <p>This methods implements a synchronized block, but the code found at the beginning + of this block only accesses local variables, and not member variables, or this. + To be better performance move the code that access local variables only, above the synchronized block, and leave the synchronized block only for field accesses, or access to this object.</p> ]]> Index: findbugs.xml =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/etc/findbugs.xml,v retrieving revision 1.49 retrieving revision 1.50 diff -u -d -r1.49 -r1.50 --- findbugs.xml 2 Jan 2006 02:48:55 -0000 1.49 +++ findbugs.xml 2 Jan 2006 03:41:07 -0000 1.50 @@ -128,8 +128,7 @@ <Detector class="com.mebigfatguy.fbcontrib.detect.BloatedSynchronizedBlock" speed="fast" - reports="BSB_BLOATED_SYNCHRONIZED_BLOCK" - hidden="true" /> + reports="BSB_BLOATED_SYNCHRONIZED_BLOCK" /> <!-- BugPattern --> |
|
From: Dave B. <dbr...@us...> - 2006-01-02 03:41:16
|
Update of /cvsroot/fb-contrib/fb-contrib/samples In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26877/samples Modified Files: BSB_Sample.java Log Message: finding BSB at the end of a synchronized block seems very problematic. For now just look for beginning BSB Index: BSB_Sample.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/samples/BSB_Sample.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- BSB_Sample.java 2 Jan 2006 02:48:55 -0000 1.1 +++ BSB_Sample.java 2 Jan 2006 03:41:07 -0000 1.2 @@ -16,15 +16,4 @@ info.add(sb.toString()); } } - - public String testEndBloated(int i, int j) - { - synchronized(lock) - { - String s = info.iterator().next(); - s = s + i; - s = s.substring(0, j); - return s; - } - } } |
|
From: Dave B. <dbr...@us...> - 2006-01-02 03:41:15
|
Update of /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26877/src/com/mebigfatguy/fbcontrib/detect Modified Files: BloatedSynchronizedBlock.java Log Message: finding BSB at the end of a synchronized block seems very problematic. For now just look for beginning BSB Index: BloatedSynchronizedBlock.java =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect/BloatedSynchronizedBlock.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- BloatedSynchronizedBlock.java 2 Jan 2006 02:48:55 -0000 1.1 +++ BloatedSynchronizedBlock.java 2 Jan 2006 03:41:07 -0000 1.2 @@ -34,7 +34,6 @@ private OpcodeStack stack = new OpcodeStack(); private int syncPC; private int lastPC; - private int startSafe; private boolean isStatic; private int minSafeCodeLength; @@ -69,7 +68,6 @@ else syncPC = -1; stack.resetForMethodEntry(this); - startSafe = 0; lastPC = -1; isStatic = obj.isStatic(); } @@ -82,49 +80,23 @@ */ public void sawOpcode(int seen) { try { - if ("BSB_Sample".equals(getClassName())) - System.out.println(Constants.OPCODE_NAMES[seen]); if (seen == MONITORENTER) { - if (syncPC < 0) { + if (syncPC < 0) syncPC = getPC(); - startSafe = this.getNextPC(); - } } - else if (seen == MONITOREXIT) { - if ((startSafe >= 0) && ((getPC() - startSafe) > minSafeCodeLength)) { - bugReporter.reportBug(new BugInstance(this, "BSB_BLOATED_SYNCHRONIZED_BLOCK", NORMAL_PRIORITY) - .addClass(this) - .addMethod(this) - .addSourceLineRange(this, startSafe, lastPC)); - } + else if (seen == MONITOREXIT) syncPC = -1; - startSafe = -1; - } - else { + else if (syncPC >= 0) { boolean unsafe = ((seen == PUTFIELD) || (seen == GETFIELD)); unsafe |= (!isStatic) && ((seen == ALOAD_0) || (seen == ASTORE_0)); if (unsafe) { - if (syncPC >= 0) { - if ((getPC() - startSafe) > minSafeCodeLength) { - bugReporter.reportBug(new BugInstance(this, "BSB_BLOATED_SYNCHRONIZED_BLOCK", NORMAL_PRIORITY) - .addClass(this) - .addMethod(this) - .addSourceLineRange(this, startSafe, lastPC)); - } + if ((getPC() - syncPC) > minSafeCodeLength) { + bugReporter.reportBug(new BugInstance(this, "BSB_BLOATED_SYNCHRONIZED_BLOCK", NORMAL_PRIORITY) + .addClass(this) + .addMethod(this) + .addSourceLineRange(this, syncPC + 1, lastPC)); } - startSafe = -1; syncPC = -1; - } else if (startSafe < 0) { - int depth = stack.getStackDepth(); - int i; - for (i = 0; i < depth; i++) { - OpcodeStack.Item item = stack.getStackItem(i); - if (item.getField() != null) { - break; - } - } - if (i == depth) - startSafe = getPC(); } } lastPC = getPC(); |
|
From: Dave B. <dbr...@us...> - 2006-01-02 02:49:07
|
Update of /cvsroot/fb-contrib/fb-contrib/etc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19962/etc Modified Files: findbugs.xml messages.xml Log Message: initial checkin - BSB -- not working yet, so hidden Index: messages.xml =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/etc/messages.xml,v retrieving revision 1.42 retrieving revision 1.43 diff -u -d -r1.42 -r1.43 --- messages.xml 31 Dec 2005 03:18:56 -0000 1.42 +++ messages.xml 2 Jan 2006 02:48:55 -0000 1.43 @@ -371,6 +371,17 @@ </Details> </Detector> + <Detector class="com.mebigfatguy.fbcontrib.detect.BloatedSynchronizedBlock"> + <Details> + <![CDATA[ + <p>Looks for methods that are implemented using synchronized blocks, but are overly + synchronized because the beginning or end of the block only accesses local variables, + and not member variables, or this.</p> + <p>It is a fast Detector</p> + ]]> + </Details> + </Detector> + <!-- BugPattern --> <BugPattern type="ISB_INEFFICIENT_STRING_BUFFERING"> @@ -723,6 +734,21 @@ </Details> </BugPattern> + <BugPattern type="BSB_BLOATED_SYNCHRONIZED_BLOCK"> + <ShortDescription>method overly synchronizes a block of code</ShortDescription> + <LongDescription>method {1} overly synchronizes a block of code</LongDescription> + <Details> + <![CDATA[ + <p>This methods implements a synchronized blocks, but the code found at the beginning + or endare overly only accesses local variables, and not member variables, or this. + To be better performance move the code that access local variables only, outside the + synchronized block, and leave the synchronized block only for field accesses, or access + to this object.</p> + ]]> + </Details> + + </BugPattern> + <!-- BugCode --> <BugCode abbrev="ISB">Inefficient String Buffering</BugCode> @@ -753,4 +779,5 @@ <BugCode abbrev="ODN">Orphaned DOM Node</BugCode> <BugCode abbrev="AOM">Abstract Overridden Method</BugCode> <BugCode abbrev="CBX">Custom Built XML</BugCode> + <BugCode abbrev="BSB">Bloated Synchronized Block</BugCode> </MessageCollection> \ No newline at end of file Index: findbugs.xml =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/etc/findbugs.xml,v retrieving revision 1.48 retrieving revision 1.49 diff -u -d -r1.48 -r1.49 --- findbugs.xml 31 Dec 2005 03:18:56 -0000 1.48 +++ findbugs.xml 2 Jan 2006 02:48:55 -0000 1.49 @@ -125,6 +125,11 @@ <Detector class="com.mebigfatguy.fbcontrib.detect.CustomBuiltXML" speed="moderate" reports="CBX_CUSTOM_BUILT_XML" /> + + <Detector class="com.mebigfatguy.fbcontrib.detect.BloatedSynchronizedBlock" + speed="fast" + reports="BSB_BLOATED_SYNCHRONIZED_BLOCK" + hidden="true" /> <!-- BugPattern --> @@ -152,8 +157,9 @@ <BugPattern abbrev="NAB" type="NAB_NEEDLESS_AUTOBOXING" category="PERFORMANCE" /> <BugPattern abbrev="USBR" type="USBR_UNNECESSARY_STORE_BEFORE_RETURN" category="STYLE" /> <BugPattern abbrev="COM" type="COM_COPIED_OVERRIDDEN_METHOD" category="STYLE" /> - <BugPattern abbrev="ABC" type="ABC_ARRAY_BASED_COLLECTIONS" category="CORRECTNESS" experimental="true" /> - <BugPattern abbrev="ODN" type="ODN_ORPHANED_DOM_NODE" category="CORRECTNESS" experimental="true" /> - <BugPattern abbrev="AOM" type="AOM_ABSTRACT_OVERRIDDEN_METHOD" category="CORRECTNESS" experimental="true" /> - <BugPattern abbrev="CBX" type="CBX_CUSTOM_BUILT_XML" category="STYLE" experimental="true" /> + <BugPattern abbrev="ABC" type="ABC_ARRAY_BASED_COLLECTIONS" category="CORRECTNESS" /> + <BugPattern abbrev="ODN" type="ODN_ORPHANED_DOM_NODE" category="CORRECTNESS" /> + <BugPattern abbrev="AOM" type="AOM_ABSTRACT_OVERRIDDEN_METHOD" category="CORRECTNESS" /> + <BugPattern abbrev="CBX" type="CBX_CUSTOM_BUILT_XML" category="STYLE" /> + <BugPattern abbrev="BSB" type="BSB_BLOATED_SYNCHRONIZED_BLOCK" category="PERFORMANCE" experimental="true" /> </FindbugsPlugin> \ No newline at end of file |
|
From: Dave B. <dbr...@us...> - 2006-01-02 02:49:07
|
Update of /cvsroot/fb-contrib/fb-contrib/samples In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19962/samples Added Files: BSB_Sample.java Log Message: initial checkin - BSB -- not working yet, so hidden --- NEW FILE: BSB_Sample.java --- import java.util.HashSet; import java.util.Set; public class BSB_Sample { private Object lock = new Object(); private Set<String> info = new HashSet<String>(); public void testBeginBloated(int i, int j) { synchronized(lock) { StringBuffer sb = new StringBuffer(); sb.append("Test"); sb.append(i); info.add(sb.toString()); } } public String testEndBloated(int i, int j) { synchronized(lock) { String s = info.iterator().next(); s = s + i; s = s.substring(0, j); return s; } } } |
|
From: Dave B. <dbr...@us...> - 2006-01-02 02:49:07
|
Update of /cvsroot/fb-contrib/fb-contrib/src/com/mebigfatguy/fbcontrib/detect In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19962/src/com/mebigfatguy/fbcontrib/detect Added Files: BloatedSynchronizedBlock.java Log Message: initial checkin - BSB -- not working yet, so hidden --- NEW FILE: BloatedSynchronizedBlock.java --- /* * fb-contrib - Auxilliary detectors for Java programs * Copyright (C) 2005 Dave Brosius * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ package com.mebigfatguy.fbcontrib.detect; import org.apache.bcel.Constants; import org.apache.bcel.classfile.Method; import edu.umd.cs.findbugs.BugInstance; import edu.umd.cs.findbugs.BugReporter; import edu.umd.cs.findbugs.BytecodeScanningDetector; import edu.umd.cs.findbugs.OpcodeStack; import edu.umd.cs.findbugs.StatelessDetector; public class BloatedSynchronizedBlock extends BytecodeScanningDetector implements StatelessDetector { private BugReporter bugReporter; private static final String BSB_MIN_SAFE_CODE_SIZE = "fb-contrib.bsb.minsize"; private OpcodeStack stack = new OpcodeStack(); private int syncPC; private int lastPC; private int startSafe; private boolean isStatic; private int minSafeCodeLength; /** * constructs a BSB detector given the reporter to report bugs on * @param bugReporter the sync of bug reports */ public BloatedSynchronizedBlock(BugReporter bugReporter) { this.bugReporter = bugReporter; minSafeCodeLength = Integer.getInteger(BSB_MIN_SAFE_CODE_SIZE, 10); } /** * clone this detector so that it can be a StatelessDetector * * @return a clone of this object */ public Object clone() throws CloneNotSupportedException { return super.clone(); } /** * implement the visitor to reset the sync count, the stack, and gather some information * * @param obj the context object for the currently parsed method */ @Override public void visitMethod(Method obj) { if (obj.isSynchronized()) syncPC = 0; else syncPC = -1; stack.resetForMethodEntry(this); startSafe = 0; lastPC = -1; isStatic = obj.isStatic(); } /** * implement the visitor to find bloated sync blocks. This implementation * only checks the outer most block * * @param seen the opcode of the currently parsed instruction */ public void sawOpcode(int seen) { try { if ("BSB_Sample".equals(getClassName())) System.out.println(Constants.OPCODE_NAMES[seen]); if (seen == MONITORENTER) { if (syncPC < 0) { syncPC = getPC(); startSafe = this.getNextPC(); } } else if (seen == MONITOREXIT) { if ((startSafe >= 0) && ((getPC() - startSafe) > minSafeCodeLength)) { bugReporter.reportBug(new BugInstance(this, "BSB_BLOATED_SYNCHRONIZED_BLOCK", NORMAL_PRIORITY) .addClass(this) .addMethod(this) .addSourceLineRange(this, startSafe, lastPC)); } syncPC = -1; startSafe = -1; } else { boolean unsafe = ((seen == PUTFIELD) || (seen == GETFIELD)); unsafe |= (!isStatic) && ((seen == ALOAD_0) || (seen == ASTORE_0)); if (unsafe) { if (syncPC >= 0) { if ((getPC() - startSafe) > minSafeCodeLength) { bugReporter.reportBug(new BugInstance(this, "BSB_BLOATED_SYNCHRONIZED_BLOCK", NORMAL_PRIORITY) .addClass(this) .addMethod(this) .addSourceLineRange(this, startSafe, lastPC)); } } startSafe = -1; syncPC = -1; } else if (startSafe < 0) { int depth = stack.getStackDepth(); int i; for (i = 0; i < depth; i++) { OpcodeStack.Item item = stack.getStackItem(i); if (item.getField() != null) { break; } } if (i == depth) startSafe = getPC(); } } lastPC = getPC(); } finally { stack.sawOpcode(this, seen); } } } |
|
From: Dave B. <dbr...@us...> - 2006-01-02 00:47:44
|
Update of /cvsroot/fb-contrib/fb-contrib/htdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1092/htdocs Modified Files: index.html Log Message: get ready for 2.2.0 development Index: index.html =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/htdocs/index.html,v retrieving revision 1.50 retrieving revision 1.51 diff -u -d -r1.50 -r1.51 --- index.html 2 Jan 2006 00:45:22 -0000 1.50 +++ index.html 2 Jan 2006 00:47:35 -0000 1.51 @@ -44,6 +44,13 @@ <a href="http://www.sourceforge.net/projects/fb-contrib">Project Page</a> <hr/> + <img id="cvs_image" src="flip1.gif" onClick="toggleBlock('cvs', 'cvs_image');" align="top"/> + Detectors added in CVS<br/> + Note: these detectors are still in testing<br/> + <div id="cvs" style="display:none;"> + </div> + + <hr/> <img id="v2_0_0_image" src="flip2.gif" onClick="toggleBlock('v2_0_0', 'v2_0_0_image');" align="top"/> Detectors added in v2.0.0<br/> <div id="v2_0_0" style="display:block;"> |
|
From: Dave B. <dbr...@us...> - 2006-01-02 00:45:31
|
Update of /cvsroot/fb-contrib/fb-contrib/htdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv681/htdocs Modified Files: index.html Log Message: fix the version format Index: index.html =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/htdocs/index.html,v retrieving revision 1.49 retrieving revision 1.50 diff -u -d -r1.49 -r1.50 --- index.html 2 Jan 2006 00:43:39 -0000 1.49 +++ index.html 2 Jan 2006 00:45:22 -0000 1.50 @@ -45,7 +45,7 @@ <hr/> <img id="v2_0_0_image" src="flip2.gif" onClick="toggleBlock('v2_0_0', 'v2_0_0_image');" align="top"/> - Detectors added in v2_0_0<br/> + Detectors added in v2.0.0<br/> <div id="v2_0_0" style="display:block;"> <ul> <li><b>Array Based Collections</b><br/> @@ -70,7 +70,7 @@ <hr/> <img id="v1_8_0_image" src="flip1.gif" onClick="toggleBlock('v1_8_0', 'v1_8_0_image');" align="top"/> - Detectors added in v1_8_0<br/> + Detectors added in v1.8.0<br/> <div id="v1_8_0" style="display:none;"> <ul> <li><b>Spurious Thread States</b><br/> |
|
From: Dave B. <dbr...@us...> - 2006-01-02 00:43:47
|
Update of /cvsroot/fb-contrib/fb-contrib/htdocs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv346/htdocs Modified Files: index.html Log Message: fix image id Index: index.html =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/htdocs/index.html,v retrieving revision 1.48 retrieving revision 1.49 diff -u -d -r1.48 -r1.49 --- index.html 1 Jan 2006 06:35:55 -0000 1.48 +++ index.html 2 Jan 2006 00:43:39 -0000 1.49 @@ -44,7 +44,7 @@ <a href="http://www.sourceforge.net/projects/fb-contrib">Project Page</a> <hr/> - <img id="v2_0_0" src="flip2.gif" onClick="toggleBlock('v2_0_0', 'v2_0_0_image');" align="top"/> + <img id="v2_0_0_image" src="flip2.gif" onClick="toggleBlock('v2_0_0', 'v2_0_0_image');" align="top"/> Detectors added in v2_0_0<br/> <div id="v2_0_0" style="display:block;"> <ul> |
|
From: Dave B. <dbr...@us...> - 2006-01-02 00:39:37
|
Update of /cvsroot/fb-contrib/fb-contrib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32155 Modified Files: build.xml Log Message: start work on the 2.2.0 release Index: build.xml =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/build.xml,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- build.xml 1 Jan 2006 06:35:55 -0000 1.23 +++ build.xml 2 Jan 2006 00:39:26 -0000 1.24 @@ -18,7 +18,7 @@ <property name="javac.deprecation" value="on"/> <property name="javac.debug" value="on"/> - <property name="fb-contrib.version" value="2.0.0"/> + <property name="fb-contrib.version" value="2.1.0"/> <target name="clean" description="removes all generated collateral"> <delete dir="${classes.dir}"/> |
|
From: Dave B. <dbr...@us...> - 2006-01-01 06:36:05
|
Update of /cvsroot/fb-contrib/fb-contrib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7424 Modified Files: build.xml Log Message: get ready for v2_0_0 release Index: build.xml =================================================================== RCS file: /cvsroot/fb-contrib/fb-contrib/build.xml,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- build.xml 10 Dec 2005 03:41:54 -0000 1.22 +++ build.xml 1 Jan 2006 06:35:55 -0000 1.23 @@ -18,7 +18,7 @@ <property name="javac.deprecation" value="on"/> <property name="javac.debug" value="on"/> - <property name="fb-contrib.version" value="1.9.0"/> + <property name="fb-contrib.version" value="2.0.0"/> <target name="clean" description="removes all generated collateral"> <delete dir="${classes.dir}"/> |