QualityChecker Rules violations

qcr-maven-plugin-qcr4java_h2-1.3.170

##### Project Documentation

- Project Information
- Project Reports
  - QC98 Non regression report
  - QC99 Email dispatch of critical informations
  - QC01 Rules violations
  - QC02 Class hierarchy

## Root directory D:\maven-qcr-plugin-testsunitaires\qcr4java\h2-1.3.170-sources\targetqcr

### Table of contents

Rules aggregated counters
Rules details
Top 10 Rules occurrences
Top 10 Files Rules occurrences
Directories details
Files details

### Rules aggregated counters

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
BLOCKER | QC-BLOCKER | Total number of Blocker violations | 174
CRITICAL | QC-CRITICAL | Total number of High violations | 20
MAJOR | QC-MAJOR | Total number of Major violations | 1686
MINOR | QC-MINOR | Total number of Minor violations | 7
INFO | QC-INFO | Total number of Info violations | 156

### Rules details

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
BLOCKER | QC-JAVCWE078 | Potential OS command injection | 0
BLOCKER | QC-JAVCWE080 | Potential Basic XSS | 0
BLOCKER | QC-JAVCWE089 | Potential SQL Injection | 146
BLOCKER | QC-JAVCWE369 | Division by ZERO | 0
BLOCKER | QC-JAVCWE412 | Unrestricted Externally Accessible Lock | 0
BLOCKER | QC-JAVCWE470 | Use of externally-controlled (unsafe reflection) | 0
BLOCKER | QC-JAVCWE572 | Call to Thread run() instead of start() | 1
BLOCKER | QC-JAVCWE833 | Potential deadlock between at least two ressources | 26
BLOCKER | QC-JAV999999 | Syntax analysis failure on the source code | 1
CRITICAL | QC-JAVCWE096 | Insufficient control of directives in statically saved code | 0
CRITICAL | QC-JAVCWE476 | Null pointer reference | 20
CRITICAL | QC-JAVCWE484 | Omitted Break Statement in Switch | 0
CRITICAL | QC-JAVCWE570 | Condition NEVER true | 0
CRITICAL | QC-JAVCWE616 | Incomplete identification of uploaded file | 0
MAJOR | QC-JAVCWE190 | Overflow | 0
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 92
MAJOR | QC-JAVCWE392 | Failure to report error in status code | 4
MAJOR | QC-JAVCWE481 | Assigning instead of comparing | 4
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 76
MAJOR | QC-JAVCWE584 | Return inside finally block | 0
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1510
MAJOR | QC-JAV000002 | The same new XX() is repeated at least twice, use a local instance variable instead, huge performance impact | 0
MINOR | QC-JAVCWE252 | Return type of function is not tested | 0
MINOR | QC-JAVCWE500 | Static public field not marked final | 4
MINOR | QC-JAVCWE582 | Array declared public, final and static | 3
MINOR | QC-JAVCWE585 | The software contains an empty synchronized block | 0
MINOR | QC-JAVCWE626 | Null byte interaction error | 0
MINOR | QC-JAVCWE627 | Dynamic variable evaluation for variable | 0
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 156

### Top 10 Rules occurrences

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1510
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 156
BLOCKER | QC-JAVCWE089 | Potential SQL Injection | 146
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 92
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 76
BLOCKER | QC-JAVCWE833 | Potential deadlock between at least two ressources | 26
CRITICAL | QC-JAVCWE476 | Null pointer reference | 20
MAJOR | QC-JAVCWE392 | Failure to report error in status code | 4
MAJOR | QC-JAVCWE481 | Assigning instead of comparing | 4
MINOR | QC-JAVCWE500 | Static public field not marked final | 4

### Top 10 Rules BLOCKER occurrences

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
BLOCKER | QC-JAVCWE089 | Potential SQL Injection | 146
BLOCKER | QC-JAVCWE833 | Potential deadlock between at least two ressources | 26
BLOCKER | QC-JAVCWE572 | Call to Thread run() instead of start() | 1
BLOCKER | QC-JAV999999 | Syntax analysis failure on the source code | 1

### Top 10 Rules CRITICAL occurrences

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 20

### Top 10 Rules MAJOR occurrences

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1510
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 92
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 76
MAJOR | QC-JAVCWE392 | Failure to report error in status code | 4
MAJOR | QC-JAVCWE481 | Assigning instead of comparing | 4

### Top 10 Rules MINOR occurrences

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MINOR | QC-JAVCWE500 | Static public field not marked final | 4
MINOR | QC-JAVCWE582 | Array declared public, final and static | 3

### Top 10 Rules INFO occurrences

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 156

### Top 10 Files Rules occurrences

File name | Total nb of violations | BLOCKER | CRITICAL | MAJOR | MINOR | INFO
--- | --- | --- | --- | --- | --- | ---
lecode\command\Parser.java | 133 | 0 | 0 | 128 | 0 | 5
lecode\table\MetaTable.java | 108 | 0 | 0 | 104 | 0 | 4
lecode\aa__all_files.java | 93 | 93 | 0 | 0 | 0 | 0
lecode\command\dml\Select.java | 81 | 0 | 0 | 78 | 0 | 3
lecode\fulltext\FullText.java | 60 | 24 | 0 | 35 | 0 | 1
lecode\security\AES.java | 50 | 0 | 0 | 0 | 0 | 50
lecode\command\dml\Query.java | 44 | 0 | 0 | 44 | 0 | 0
lecode\server\web\WebApp.java | 43 | 0 | 1 | 41 | 0 | 1
lecode\tools\Recover.java | 37 | 0 | 0 | 36 | 0 | 1
lecode\engine\Database.java | 35 | 3 | 0 | 32 | 0 | 0

### Directories details

Directory name | Number of files | Total nb of violations | BLOCKER | CRITICAL | MAJOR | MINOR | INFO
--- | --- | --- | --- | --- | --- | --- | ---
lecode to _f | 1 | 1 | 0 | 0 | 1 | 0 | 0
lecode\aa__all _f to \A | 1 | 93 | 93 | 0 | 0 | 0 | 0
lecode\api \A to \B | 5 | 0 | 0 | 0 | 0 | 0 | 0
lecode\bnf \B to \C | 10 | 8 | 0 | 0 | 8 | 0 | 0
lecode\command \C to \A | 7 | 157 | 0 | 0 | 151 | 0 | 6
lecode\command\ddl \A to \A | 44 | 52 | 0 | 0 | 52 | 0 | 0
lecode\command\dml \A to \C | 23 | 246 | 0 | 0 | 240 | 0 | 6
lecode\compress \C to \D | 6 | 4 | 0 | 0 | 3 | 0 | 1
lecode\constant \D to \C | 3 | 8 | 0 | 0 | 5 | 3 | 0
lecode\constraint \C to \C | 4 | 27 | 0 | 0 | 25 | 0 | 2
lecode\engine \C to \A | 27 | 117 | 3 | 1 | 112 | 0 | 1
lecode\expression \A to \F | 32 | 44 | 1 | 0 | 37 | 0 | 6
lecode\fulltext \F to \B | 4 | 90 | 34 | 0 | 55 | 0 | 1
lecode\index \B to \J | 41 | 97 | 0 | 1 | 95 | 0 | 1
lecode\jdbc \J to \J | 14 | 85 | 20 | 1 | 32 | 0 | 32
lecode\jdbcx \J to \D | 5 | 7 | 0 | 0 | 7 | 0 | 0
lecode\jmx \D to \D | 3 | 4 | 0 | 0 | 4 | 0 | 0
lecode\message \D to \C | 6 | 10 | 0 | 0 | 10 | 0 | 0
lecode\mvstore \C to \C | 11 | 52 | 0 | 2 | 47 | 0 | 3
lecode\mvstore\cache \C to \M | 3 | 9 | 0 | 0 | 9 | 0 | 0
lecode\mvstore\rtree \M to \D | 3 | 27 | 0 | 0 | 26 | 0 | 1
lecode\mvstore\type \D to \L | 5 | 1 | 0 | 0 | 0 | 0 | 1
lecode\result \L to \C | 15 | 37 | 0 | 3 | 32 | 1 | 1
lecode\schema \C to \A | 6 | 16 | 0 | 0 | 16 | 0 | 0
lecode\security \A to \S | 7 | 55 | 0 | 0 | 0 | 0 | 55
lecode\server \S to \P | 4 | 20 | 6 | 0 | 14 | 0 | 0
lecode\server\pg \P to \C | 2 | 31 | 12 | 0 | 19 | 0 | 0
lecode\server\web \C to \D | 13 | 134 | 0 | 2 | 130 | 0 | 2
lecode\store \D to \F | 21 | 84 | 0 | 0 | 71 | 0 | 13
lecode\store\fs \F to \C | 14 | 31 | 0 | 0 | 31 | 0 | 0
lecode\table \C to \B | 17 | 208 | 0 | 4 | 199 | 0 | 5
lecode\tools \B to \D | 18 | 146 | 0 | 0 | 138 | 0 | 8
lecode\upgrade \D to \A | 1 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util \A to \C | 36 | 92 | 1 | 5 | 75 | 3 | 8

### Files details 441

File name | Size in bytes | Total nb of violations | BLOCKER | CRITICAL | MAJOR | MINOR | INFO
--- | --- | --- | --- | --- | --- | --- | ---
lecode\Driver.java | 5639 | 1 | 0 | 0 | 1 | 0 | 0
lecode\aa__all_files.java | 4 | 93 | 93 | 0 | 0 | 0 | 0
lecode\api\AggregateFunction.java | 1576 | 0 | 0 | 0 | 0 | 0 | 0
lecode\api\DatabaseEventListener.java | 3104 | 0 | 0 | 0 | 0 | 0 | 0
lecode\api\JavaObjectSerializer.java | 835 | 0 | 0 | 0 | 0 | 0 | 0
lecode\api\TableEngine.java | 658 | 0 | 0 | 0 | 0 | 0 | 0
lecode\api\Trigger.java | 3196 | 0 | 0 | 0 | 0 | 0 | 0
lecode\bnf\Bnf.java | 11550 | 6 | 0 | 0 | 6 | 0 | 0
lecode\bnf\BnfVisitor.java | 1236 | 0 | 0 | 0 | 0 | 0 | 0
lecode\bnf\Rule.java | 914 | 0 | 0 | 0 | 0 | 0 | 0
lecode\bnf\RuleElement.java | 2385 | 2 | 0 | 0 | 2 | 0 | 0
lecode\bnf\RuleFixed.java | 6537 | 0 | 0 | 0 | 0 | 0 | 0
lecode\bnf\RuleHead.java | 798 | 0 | 0 | 0 | 0 | 0 | 0
lecode\bnf\RuleList.java | 1875 | 0 | 0 | 0 | 0 | 0 | 0
lecode\bnf\RuleOptional.java | 885 | 0 | 0 | 0 | 0 | 0 | 0
lecode\bnf\RuleRepeat.java | 943 | 0 | 0 | 0 | 0 | 0 | 0
lecode\bnf\Sentence.java | 5189 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\Command.java | 9934 | 7 | 0 | 0 | 7 | 0 | 0
lecode\command\CommandContainer.java | 3418 | 3 | 0 | 0 | 3 | 0 | 0
lecode\command\CommandInterface.java | 9645 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\CommandList.java | 1737 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\CommandRemote.java | 8880 | 13 | 0 | 0 | 12 | 0 | 1
lecode\command\Parser.java | 200776 | 133 | 0 | 0 | 128 | 0 | 5
lecode\command\Prepared.java | 10551 | 1 | 0 | 0 | 1 | 0 | 0
lecode\command\ddl\AlterIndexRename.java | 1518 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\AlterSchemaRename.java | 1770 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\AlterTableAddConstraint.java | 14405 | 1 | 0 | 0 | 1 | 0 | 0
lecode\command\ddl\AlterTableAlterColumn.java | 18098 | 25 | 0 | 0 | 25 | 0 | 0
lecode\command\ddl\AlterTableDropConstraint.java | 1637 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\AlterTableRename.java | 2037 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\AlterTableRenameColumn.java | 1616 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\AlterUser.java | 3322 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\AlterView.java | 1029 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\Analyze.java | 4137 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\CreateAggregate.java | 1944 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\CreateConstant.java | 1929 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\CreateFunctionAlias.java | 2614 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\CreateIndex.java | 3433 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\CreateLinkedTable.java | 3343 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\CreateRole.java | 1593 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\CreateSchema.java | 1733 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\CreateSequence.java | 2534 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\CreateTable.java | 9616 | 6 | 0 | 0 | 6 | 0 | 0
lecode\command\ddl\CreateTableData.java | 1466 | 12 | 0 | 0 | 12 | 0 | 0
lecode\command\ddl\CreateTrigger.java | 3250 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\CreateUser.java | 3196 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\CreateUserDataType.java | 2260 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\CreateView.java | 3616 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\DeallocateProcedure.java | 827 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\DefineCommand.java | 1169 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\DropAggregate.java | 1414 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\DropConstant.java | 1491 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\DropDatabase.java | 3950 | 2 | 0 | 0 | 2 | 0 | 0
lecode\command\ddl\DropFunctionAlias.java | 1514 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\DropIndex.java | 2502 | 1 | 0 | 0 | 1 | 0 | 0
lecode\command\ddl\DropRole.java | 1562 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\DropSchema.java | 1544 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\DropSequence.java | 1647 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\DropTable.java | 3744 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\DropTrigger.java | 1606 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\DropUser.java | 1877 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\DropUserDataType.java | 1425 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\DropView.java | 2352 | 1 | 0 | 0 | 1 | 0 | 0
lecode\command\ddl\GrantRevoke.java | 5489 | 4 | 0 | 0 | 4 | 0 | 0
lecode\command\ddl\PrepareProcedure.java | 1425 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\SchemaCommand.java | 868 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\SetComment.java | 4952 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\ddl\TruncateTable.java | 1164 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\dml\AlterSequence.java | 2699 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\dml\AlterTableSet.java | 1717 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\dml\BackupCommand.java | 4743 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\dml\Call.java | 2924 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\dml\Delete.java | 4629 | 3 | 0 | 0 | 3 | 0 | 0
lecode\command\dml\ExecuteProcedure.java | 2308 | 2 | 0 | 0 | 2 | 0 | 0
lecode\command\dml\Explain.java | 3740 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\dml\Insert.java | 8367 | 23 | 0 | 0 | 23 | 0 | 0
lecode\command\dml\Merge.java | 9915 | 27 | 0 | 0 | 27 | 0 | 0
lecode\command\dml\NoOperation.java | 1044 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\dml\Optimizer.java | 7951 | 6 | 0 | 0 | 6 | 0 | 0
lecode\command\dml\Query.java | 16884 | 44 | 0 | 0 | 44 | 0 | 0
lecode\command\dml\RunScriptCommand.java | 2671 | 1 | 0 | 0 | 1 | 0 | 0
lecode\command\dml\ScriptBase.java | 6571 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\dml\ScriptCommand.java | 24659 | 29 | 0 | 0 | 26 | 0 | 3
lecode\command\dml\Select.java | 47136 | 81 | 0 | 0 | 78 | 0 | 3
lecode\command\dml\SelectListColumnResolver.java | 2237 | 2 | 0 | 0 | 2 | 0 | 0
lecode\command\dml\SelectOrderBy.java | 1525 | 5 | 0 | 0 | 5 | 0 | 0
lecode\command\dml\SelectUnion.java | 13106 | 7 | 0 | 0 | 7 | 0 | 0
lecode\command\dml\Set.java | 16839 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\dml\SetTypes.java | 7320 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\dml\TransactionCommand.java | 4558 | 0 | 0 | 0 | 0 | 0 | 0
lecode\command\dml\Update.java | 7410 | 16 | 0 | 0 | 16 | 0 | 0
lecode\compress\CompressDeflate.java | 3236 | 2 | 0 | 0 | 2 | 0 | 0
lecode\compress\CompressLZF.java | 11244 | 2 | 0 | 0 | 1 | 0 | 1
lecode\compress\CompressNo.java | 973 | 0 | 0 | 0 | 0 | 0 | 0
lecode\compress\Compressor.java | 1666 | 0 | 0 | 0 | 0 | 0 | 0
lecode\compress\LZFInputStream.java | 3550 | 0 | 0 | 0 | 0 | 0 | 0
lecode\compress\LZFOutputStream.java | 2785 | 0 | 0 | 0 | 0 | 0 | 0
lecode\constant\DbSettings.java | 13653 | 2 | 0 | 0 | 2 | 0 | 0
lecode\constant\ErrorCode.java | 64473 | 0 | 0 | 0 | 0 | 0 | 0
lecode\constant\SysProperties.java | 18250 | 6 | 0 | 0 | 3 | 3 | 0
lecode\constraint\Constraint.java | 5068 | 0 | 0 | 0 | 0 | 0 | 0
lecode\constraint\ConstraintCheck.java | 4149 | 0 | 0 | 0 | 0 | 0 | 0
lecode\constraint\ConstraintReferential.java | 22010 | 27 | 0 | 0 | 25 | 0 | 2
lecode\constraint\ConstraintUnique.java | 4258 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\Comment.java | 3044 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\ConnectionInfo.java | 19230 | 6 | 0 | 0 | 6 | 0 | 0
lecode\engine\Constants.java | 14411 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\Database.java | 79398 | 35 | 3 | 0 | 32 | 0 | 0
lecode\engine\DatabaseCloser.java | 3122 | 3 | 0 | 0 | 3 | 0 | 0
lecode\engine\DbObject.java | 4032 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\DbObjectBase.java | 3456 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\Engine.java | 12106 | 7 | 0 | 0 | 7 | 0 | 0
lecode\engine\FunctionAlias.java | 17885 | 11 | 0 | 1 | 10 | 0 | 0
lecode\engine\MetaRecord.java | 3947 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\Mode.java | 5581 | 14 | 0 | 0 | 14 | 0 | 0
lecode\engine\Procedure.java | 720 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\Right.java | 4173 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\RightOwner.java | 4454 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\Role.java | 2314 | 2 | 0 | 0 | 2 | 0 | 0
lecode\engine\Session.java | 36929 | 12 | 0 | 0 | 12 | 0 | 0
lecode\engine\SessionFactory.java | 594 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\SessionInterface.java | 2940 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\SessionRemote.java | 24624 | 18 | 0 | 0 | 18 | 0 | 0
lecode\engine\SessionWithState.java | 1841 | 2 | 0 | 0 | 2 | 0 | 0
lecode\engine\Setting.java | 1723 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\SettingsBase.java | 2848 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\UndoLog.java | 7852 | 6 | 0 | 0 | 5 | 0 | 1
lecode\engine\UndoLogRecord.java | 8038 | 1 | 0 | 0 | 1 | 0 | 0
lecode\engine\User.java | 7667 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\UserAggregate.java | 2069 | 0 | 0 | 0 | 0 | 0 | 0
lecode\engine\UserDataType.java | 1361 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\Aggregate.java | 18119 | 5 | 0 | 0 | 5 | 0 | 0
lecode\expression\AggregateData.java | 9345 | 1 | 0 | 0 | 1 | 0 | 0
lecode\expression\Alias.java | 2577 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\CompareLike.java | 14000 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\Comparison.java | 17338 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\Condition.java | 711 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\ConditionAndOr.java | 9270 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\ConditionExists.java | 1930 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\ConditionIn.java | 6216 | 2 | 0 | 0 | 2 | 0 | 0
lecode\expression\ConditionInConstantSet.java | 4337 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\ConditionInSelect.java | 5474 | 1 | 0 | 0 | 1 | 0 | 0
lecode\expression\ConditionNot.java | 2583 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\Expression.java | 9755 | 5 | 0 | 0 | 5 | 0 | 0
lecode\expression\ExpressionColumn.java | 10230 | 2 | 0 | 0 | 2 | 0 | 0
lecode\expression\ExpressionList.java | 3316 | 3 | 0 | 0 | 3 | 0 | 0
lecode\expression\ExpressionVisitor.java | 8166 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\Function.java | 83157 | 6 | 1 | 0 | 0 | 0 | 5
lecode\expression\FunctionCall.java | 1858 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\FunctionInfo.java | 986 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\JavaAggregate.java | 6062 | 2 | 0 | 0 | 2 | 0 | 0
lecode\expression\JavaFunction.java | 5093 | 1 | 0 | 0 | 1 | 0 | 0
lecode\expression\Operation.java | 14137 | 1 | 0 | 0 | 0 | 0 | 1
lecode\expression\Parameter.java | 4187 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\ParameterInterface.java | 1620 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\ParameterRemote.java | 2455 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\Rownum.java | 2353 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\SequenceValue.java | 2619 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\Subquery.java | 3548 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\TableFunction.java | 5402 | 15 | 0 | 0 | 15 | 0 | 0
lecode\expression\ValueExpression.java | 4456 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\Variable.java | 2621 | 0 | 0 | 0 | 0 | 0 | 0
lecode\expression\Wildcard.java | 2341 | 0 | 0 | 0 | 0 | 0 | 0
lecode\fulltext\FullText.java | 40857 | 60 | 24 | 0 | 35 | 0 | 1
lecode\fulltext\FullTextLucene.java | 30129 | 30 | 10 | 0 | 20 | 0 | 0
lecode\fulltext\FullTextSettings.java | 5839 | 0 | 0 | 0 | 0 | 0 | 0
lecode\fulltext\IndexInfo.java | 791 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\BaseIndex.java | 10558 | 5 | 0 | 0 | 5 | 0 | 0
lecode\index\Cursor.java | 1365 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\FunctionCursor.java | 1261 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\FunctionCursorResultSet.java | 2091 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\FunctionIndex.java | 2865 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\HashIndex.java | 3271 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\Index.java | 6248 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\IndexCondition.java | 9749 | 1 | 0 | 0 | 1 | 0 | 0
lecode\index\IndexCursor.java | 9157 | 7 | 0 | 0 | 7 | 0 | 0
lecode\index\IndexType.java | 4317 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\LinkedCursor.java | 2023 | 2 | 0 | 0 | 2 | 0 | 0
lecode\index\LinkedIndex.java | 8194 | 11 | 0 | 0 | 10 | 0 | 1
lecode\index\MetaCursor.java | 1032 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\MetaIndex.java | 2715 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\MultiVersionCursor.java | 5778 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\MultiVersionIndex.java | 9303 | 6 | 0 | 0 | 6 | 0 | 0
lecode\index\NonUniqueHashCursor.java | 1343 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\NonUniqueHashIndex.java | 2694 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\PageBtree.java | 7309 | 2 | 0 | 0 | 2 | 0 | 0
lecode\index\PageBtreeCursor.java | 2282 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\PageBtreeIndex.java | 14594 | 10 | 0 | 0 | 10 | 0 | 0
lecode\index\PageBtreeLeaf.java | 12163 | 1 | 0 | 0 | 1 | 0 | 0
lecode\index\PageBtreeNode.java | 19907 | 6 | 0 | 0 | 6 | 0 | 0
lecode\index\PageData.java | 5625 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\PageDataCursor.java | 2745 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\PageDataIndex.java | 17154 | 8 | 0 | 0 | 8 | 0 | 0
lecode\index\PageDataLeaf.java | 19701 | 4 | 0 | 0 | 4 | 0 | 0
lecode\index\PageDataNode.java | 13918 | 6 | 0 | 0 | 6 | 0 | 0
lecode\index\PageDataOverflow.java | 7130 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\PageDelegateIndex.java | 3569 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\PageIndex.java | 923 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\RangeCursor.java | 1228 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\RangeIndex.java | 2828 | 2 | 0 | 0 | 2 | 0 | 0
lecode\index\ScanCursor.java | 2019 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\ScanIndex.java | 6954 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\SingleRowCursor.java | 1038 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\TreeCursor.java | 2840 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\TreeIndex.java | 11200 | 10 | 0 | 0 | 10 | 0 | 0
lecode\index\TreeNode.java | 1090 | 0 | 0 | 0 | 0 | 0 | 0
lecode\index\ViewCursor.java | 2150 | 3 | 0 | 0 | 3 | 0 | 0
lecode\index\ViewIndex.java | 13422 | 13 | 0 | 1 | 12 | 0 | 0
lecode\jdbc\JdbcArray.java | 8763 | 0 | 0 | 0 | 0 | 0 | 0
lecode\jdbc\JdbcBatchUpdateException.java | 1689 | 0 | 0 | 0 | 0 | 0 | 0
lecode\jdbc\JdbcBlob.java | 10515 | 0 | 0 | 0 | 0 | 0 | 0
lecode\jdbc\JdbcCallableStatement.java | 51451 | 0 | 0 | 0 | 0 | 0 | 0
lecode\jdbc\JdbcClob.java | 8372 | 0 | 0 | 0 | 0 | 0 | 0
lecode\jdbc\JdbcConnection.java | 59096 | 12 | 0 | 1 | 7 | 0 | 4
lecode\jdbc\JdbcDatabaseMetaData.java | 96985 | 33 | 20 | 0 | 5 | 0 | 8
lecode\jdbc\JdbcParameterMetaData.java | 6879 | 0 | 0 | 0 | 0 | 0 | 0
lecode\jdbc\JdbcPreparedStatement.java | 52413 | 23 | 0 | 0 | 14 | 0 | 9
lecode\jdbc\JdbcResultSet.java | 111262 | 13 | 0 | 0 | 3 | 0 | 10
lecode\jdbc\JdbcResultSetMetaData.java | 13844 | 0 | 0 | 0 | 0 | 0 | 0
lecode\jdbc\JdbcSQLException.java | 4853 | 1 | 0 | 0 | 0 | 0 | 1
lecode\jdbc\JdbcSavepoint.java | 3201 | 0 | 0 | 0 | 0 | 0 | 0
lecode\jdbc\JdbcStatement.java | 33855 | 3 | 0 | 0 | 3 | 0 | 0
lecode\jdbcx\JdbcConnectionPool.java | 10353 | 3 | 0 | 0 | 3 | 0 | 0
lecode\jdbcx\JdbcDataSource.java | 11322 | 0 | 0 | 0 | 0 | 0 | 0
lecode\jdbcx\JdbcDataSourceFactory.java | 3071 | 0 | 0 | 0 | 0 | 0 | 0
lecode\jdbcx\JdbcXAConnection.java | 14189 | 4 | 0 | 0 | 4 | 0 | 0
lecode\jdbcx\JdbcXid.java | 2577 | 0 | 0 | 0 | 0 | 0 | 0
lecode\jmx\DatabaseInfo.java | 6711 | 3 | 0 | 0 | 3 | 0 | 0
lecode\jmx\DatabaseInfoMBean.java | 3461 | 0 | 0 | 0 | 0 | 0 | 0
lecode\jmx\DocumentedMBean.java | 2426 | 1 | 0 | 0 | 1 | 0 | 0
lecode\message\DbException.java | 12090 | 7 | 0 | 0 | 7 | 0 | 0
lecode\message\Trace.java | 9320 | 1 | 0 | 0 | 1 | 0 | 0
lecode\message\TraceObject.java | 10563 | 0 | 0 | 0 | 0 | 0 | 0
lecode\message\TraceSystem.java | 10407 | 2 | 0 | 0 | 2 | 0 | 0
lecode\message\TraceWriter.java | 1141 | 0 | 0 | 0 | 0 | 0 | 0
lecode\message\TraceWriterAdapter.java | 1943 | 0 | 0 | 0 | 0 | 0 | 0
lecode\mvstore\ChangeCursor.java | 6802 | 6 | 0 | 0 | 6 | 0 | 0
lecode\mvstore\Chunk.java | 4176 | 0 | 0 | 0 | 0 | 0 | 0
lecode\mvstore\Cursor.java | 3082 | 1 | 0 | 0 | 1 | 0 | 0
lecode\mvstore\CursorPos.java | 700 | 1 | 0 | 0 | 1 | 0 | 0
lecode\mvstore\DataUtils.java | 14935 | 4 | 0 | 0 | 2 | 0 | 2
lecode\mvstore\MVMap.java | 26397 | 5 | 0 | 0 | 4 | 0 | 1
lecode\mvstore\MVStore.java | 41339 | 25 | 0 | 1 | 24 | 0 | 0
lecode\mvstore\MVStoreBuilder.java | 3103 | 0 | 0 | 0 | 0 | 0 | 0
lecode\mvstore\MVStoreTool.java | 4768 | 3 | 0 | 0 | 3 | 0 | 0
lecode\mvstore\Page.java | 28623 | 6 | 0 | 1 | 5 | 0 | 0
lecode\mvstore\StreamStore.java | 12459 | 1 | 0 | 0 | 1 | 0 | 0
lecode\mvstore\cache\CacheLIRS.java | 31191 | 4 | 0 | 0 | 4 | 0 | 0
lecode\mvstore\cache\CacheLongKeyLIRS.java | 32379 | 5 | 0 | 0 | 5 | 0 | 0
lecode\mvstore\cache\FilePathCache.java | 4022 | 0 | 0 | 0 | 0 | 0 | 0
lecode\mvstore\rtree\MVRTreeMap.java | 17531 | 23 | 0 | 0 | 23 | 0 | 0
lecode\mvstore\rtree\SpatialKey.java | 2226 | 0 | 0 | 0 | 0 | 0 | 0
lecode\mvstore\rtree\SpatialType.java | 9315 | 4 | 0 | 0 | 3 | 0 | 1
lecode\mvstore\type\DataType.java | 1610 | 0 | 0 | 0 | 0 | 0 | 0
lecode\mvstore\type\DataTypeFactory.java | 1053 | 0 | 0 | 0 | 0 | 0 | 0
lecode\mvstore\type\ObjectType.java | 47095 | 1 | 0 | 0 | 0 | 0 | 1
lecode\mvstore\type\ObjectTypeFactory.java | 924 | 0 | 0 | 0 | 0 | 0 | 0
lecode\mvstore\type\StringType.java | 1193 | 0 | 0 | 0 | 0 | 0 | 0
lecode\result\LocalResult.java | 13998 | 6 | 0 | 0 | 5 | 0 | 1
lecode\result\ResultColumn.java | 2484 | 0 | 0 | 0 | 0 | 0 | 0
lecode\result\ResultDiskBuffer.java | 8598 | 6 | 0 | 2 | 4 | 0 | 0
lecode\result\ResultExternal.java | 1767 | 0 | 0 | 0 | 0 | 0 | 0
lecode\result\ResultInterface.java | 3725 | 0 | 0 | 0 | 0 | 0 | 0
lecode\result\ResultRemote.java | 6770 | 3 | 0 | 0 | 3 | 0 | 0
lecode\result\ResultTarget.java | 596 | 0 | 0 | 0 | 0 | 0 | 0
lecode\result\ResultTempTable.java | 6507 | 3 | 0 | 1 | 2 | 0 | 0
lecode\result\Row.java | 3985 | 2 | 0 | 0 | 1 | 1 | 0
lecode\result\RowList.java | 7662 | 3 | 0 | 0 | 3 | 0 | 0
lecode\result\SearchRow.java | 1586 | 0 | 0 | 0 | 0 | 0 | 0
lecode\result\SimpleRow.java | 1959 | 1 | 0 | 0 | 1 | 0 | 0
lecode\result\SimpleRowValue.java | 1464 | 0 | 0 | 0 | 0 | 0 | 0
lecode\result\SortOrder.java | 5204 | 2 | 0 | 0 | 2 | 0 | 0
lecode\result\UpdatableRow.java | 10967 | 11 | 0 | 0 | 11 | 0 | 0
lecode\schema\Constant.java | 1562 | 0 | 0 | 0 | 0 | 0 | 0
lecode\schema\Schema.java | 18844 | 14 | 0 | 0 | 14 | 0 | 0
lecode\schema\SchemaObject.java | 750 | 0 | 0 | 0 | 0 | 0 | 0
lecode\schema\SchemaObjectBase.java | 1109 | 0 | 0 | 0 | 0 | 0 | 0
lecode\schema\Sequence.java | 4836 | 0 | 0 | 0 | 0 | 0 | 0
lecode\schema\TriggerObject.java | 11455 | 2 | 0 | 0 | 2 | 0 | 0
lecode\security\AES.java | 15995 | 50 | 0 | 0 | 0 | 0 | 50
lecode\security\BlockCipher.java | 1362 | 0 | 0 | 0 | 0 | 0 | 0
lecode\security\CipherFactory.java | 11788 | 0 | 0 | 0 | 0 | 0 | 0
lecode\security\Fog.java | 3825 | 2 | 0 | 0 | 0 | 0 | 2
lecode\security\SHA256.java | 6445 | 0 | 0 | 0 | 0 | 0 | 0
lecode\security\SecureFileStore.java | 3782 | 0 | 0 | 0 | 0 | 0 | 0
lecode\security\XTEA.java | 6290 | 3 | 0 | 0 | 0 | 0 | 3
lecode\server\Service.java | 1994 | 0 | 0 | 0 | 0 | 0 | 0
lecode\server\ShutdownHandler.java | 426 | 0 | 0 | 0 | 0 | 0 | 0
lecode\server\TcpServer.java | 15918 | 17 | 6 | 0 | 11 | 0 | 0
lecode\server\TcpServerThread.java | 20159 | 3 | 0 | 0 | 3 | 0 | 0
lecode\server\pg\PgServer.java | 14495 | 12 | 6 | 0 | 6 | 0 | 0
lecode\server\pg\PgServerThread.java | 27872 | 19 | 6 | 0 | 13 | 0 | 0
lecode\server\web\ConnectionInfo.java | 1575 | 3 | 0 | 0 | 3 | 0 | 0
lecode\server\web\DbColumn.java | 1483 | 1 | 0 | 1 | 0 | 0 | 0
lecode\server\web\DbContents.java | 7938 | 7 | 0 | 0 | 7 | 0 | 0
lecode\server\web\DbContextRule.java | 9488 | 17 | 0 | 0 | 16 | 0 | 1
lecode\server\web\DbSchema.java | 2863 | 1 | 0 | 0 | 1 | 0 | 0
lecode\server\web\DbStarter.java | 2968 | 0 | 0 | 0 | 0 | 0 | 0
lecode\server\web\DbTableOrView.java | 1762 | 1 | 0 | 0 | 1 | 0 | 0
lecode\server\web\PageParser.java | 10246 | 15 | 0 | 0 | 15 | 0 | 0
lecode\server\web\WebApp.java | 74082 | 43 | 0 | 1 | 41 | 0 | 1
lecode\server\web\WebServer.java | 25364 | 18 | 0 | 0 | 18 | 0 | 0
lecode\server\web\WebServlet.java | 5323 | 6 | 0 | 0 | 6 | 0 | 0
lecode\server\web\WebSession.java | 6508 | 2 | 0 | 0 | 2 | 0 | 0
lecode\server\web\WebThread.java | 14531 | 20 | 0 | 0 | 20 | 0 | 0
lecode\store\Data.java | 41540 | 9 | 0 | 0 | 5 | 0 | 4
lecode\store\DataHandler.java | 2917 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\DataReader.java | 4586 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\FileLister.java | 3744 | 3 | 0 | 0 | 3 | 0 | 0
lecode\store\FileLock.java | 16948 | 22 | 0 | 0 | 22 | 0 | 0
lecode\store\FileStore.java | 14774 | 3 | 0 | 0 | 3 | 0 | 0
lecode\store\FileStoreInputStream.java | 4288 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\FileStoreOutputStream.java | 2477 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\InDoubtTransaction.java | 2709 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\LobStorage.java | 31507 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\Page.java | 7482 | 2 | 0 | 0 | 0 | 0 | 2
lecode\store\PageFreeList.java | 6006 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\PageInputStream.java | 4697 | 1 | 0 | 0 | 1 | 0 | 0
lecode\store\PageLog.java | 29341 | 10 | 0 | 0 | 10 | 0 | 0
lecode\store\PageOutputStream.java | 6299 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\PageStore.java | 65489 | 23 | 0 | 0 | 16 | 0 | 7
lecode\store\PageStreamData.java | 4208 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\PageStreamTrunk.java | 7791 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\RecoverTester.java | 6740 | 1 | 0 | 0 | 1 | 0 | 0
lecode\store\SessionState.java | 1362 | 4 | 0 | 0 | 4 | 0 | 0
lecode\store\WriterThread.java | 4263 | 6 | 0 | 0 | 6 | 0 | 0
lecode\store\fs\FileBase.java | 2705 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\fs\FileChannelInputStream.java | 1490 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\fs\FileChannelOutputStream.java | 1579 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\fs\FilePath.java | 8924 | 5 | 0 | 0 | 5 | 0 | 0
lecode\store\fs\FilePathDisk.java | 13983 | 6 | 0 | 0 | 6 | 0 | 0
lecode\store\fs\FilePathMem.java | 16067 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\fs\FilePathNio.java | 2980 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\fs\FilePathNioMapped.java | 7342 | 2 | 0 | 0 | 2 | 0 | 0
lecode\store\fs\FilePathRec.java | 4577 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\fs\FilePathSplit.java | 11490 | 14 | 0 | 0 | 14 | 0 | 0
lecode\store\fs\FilePathWrapper.java | 3547 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\fs\FilePathZip.java | 9508 | 4 | 0 | 0 | 4 | 0 | 0
lecode\store\fs\FileUtils.java | 11892 | 0 | 0 | 0 | 0 | 0 | 0
lecode\store\fs\Recorder.java | 1374 | 0 | 0 | 0 | 0 | 0 | 0
lecode\table\Column.java | 22136 | 3 | 0 | 1 | 2 | 0 | 0
lecode\table\ColumnResolver.java | 1846 | 0 | 0 | 0 | 0 | 0 | 0
lecode\table\FunctionTable.java | 6737 | 0 | 0 | 0 | 0 | 0 | 0
lecode\table\IndexColumn.java | 2237 | 4 | 0 | 1 | 3 | 0 | 0
lecode\table\LinkSchema.java | 3485 | 2 | 0 | 0 | 2 | 0 | 0
lecode\table\MetaTable.java | 69543 | 108 | 0 | 0 | 104 | 0 | 4
lecode\table\Plan.java | 4399 | 5 | 0 | 0 | 5 | 0 | 0
lecode\table\PlanItem.java | 995 | 0 | 0 | 0 | 0 | 0 | 0
lecode\table\RangeTable.java | 4455 | 0 | 0 | 0 | 0 | 0 | 0
lecode\table\RegularTable.java | 26591 | 29 | 0 | 1 | 28 | 0 | 0
lecode\table\SingleColumnResolver.java | 1459 | 0 | 0 | 0 | 0 | 0 | 0
lecode\table\Table.java | 32786 | 20 | 0 | 0 | 20 | 0 | 0
lecode\table\TableBase.java | 2576 | 1 | 0 | 1 | 0 | 0 | 0
lecode\table\TableFilter.java | 29887 | 7 | 0 | 0 | 7 | 0 | 0
lecode\table\TableLink.java | 22913 | 25 | 0 | 0 | 24 | 0 | 1
lecode\table\TableLinkConnection.java | 4242 | 0 | 0 | 0 | 0 | 0 | 0
lecode\table\TableView.java | 14897 | 4 | 0 | 0 | 4 | 0 | 0
lecode\tools\Backup.java | 6407 | 6 | 0 | 0 | 6 | 0 | 0
lecode\tools\ChangeFileEncryption.java | 8228 | 2 | 0 | 0 | 2 | 0 | 0
lecode\tools\CompressTool.java | 10913 | 3 | 0 | 0 | 1 | 0 | 2
lecode\tools\Console.java | 20519 | 4 | 0 | 0 | 4 | 0 | 0
lecode\tools\ConvertTraceFile.java | 8614 | 8 | 0 | 0 | 8 | 0 | 0
lecode\tools\CreateCluster.java | 7023 | 1 | 0 | 0 | 1 | 0 | 0
lecode\tools\Csv.java | 29463 | 13 | 0 | 0 | 13 | 0 | 0
lecode\tools\DeleteDbFiles.java | 3385 | 1 | 0 | 0 | 1 | 0 | 0
lecode\tools\MultiDimension.java | 11391 | 0 | 0 | 0 | 0 | 0 | 0
lecode\tools\Recover.java | 53443 | 37 | 0 | 0 | 36 | 0 | 1
lecode\tools\Restore.java | 7274 | 7 | 0 | 0 | 7 | 0 | 0
lecode\tools\RunScript.java | 12608 | 14 | 0 | 0 | 14 | 0 | 0
lecode\tools\Script.java | 6145 | 8 | 0 | 0 | 8 | 0 | 0
lecode\tools\Server.java | 23965 | 12 | 0 | 0 | 7 | 0 | 5
lecode\tools\Shell.java | 19728 | 29 | 0 | 0 | 29 | 0 | 0
lecode\tools\SimpleResultSet.java | 51428 | 0 | 0 | 0 | 0 | 0 | 0
lecode\tools\SimpleRowSource.java | 898 | 0 | 0 | 0 | 0 | 0 | 0
lecode\tools\TriggerAdapter.java | 6300 | 1 | 0 | 0 | 1 | 0 | 0
lecode\upgrade\DbUpgrade.java | 6557 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\AutoCloseInputStream.java | 1293 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\BitField.java | 4803 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\Cache.java | 2194 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\CacheHead.java | 457 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\CacheLRU.java | 11101 | 6 | 0 | 3 | 3 | 0 | 0
lecode\util\CacheObject.java | 2165 | 3 | 0 | 0 | 3 | 0 | 0
lecode\util\CacheSecondLevel.java | 1945 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\CacheTQ.java | 3413 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\CacheWriter.java | 988 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\CloseWatcher.java | 3785 | 2 | 0 | 0 | 2 | 0 | 0
lecode\util\DateTimeUtils.java | 29162 | 4 | 0 | 0 | 0 | 0 | 4
lecode\util\DbDriverActivator.java | 984 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\HashBase.java | 2594 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\IOUtils.java | 15171 | 6 | 0 | 0 | 4 | 0 | 2
lecode\util\IntArray.java | 4310 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\IntIntHashMap.java | 4168 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\JdbcUtils.java | 6723 | 4 | 0 | 0 | 4 | 0 | 0
lecode\util\MathUtils.java | 12010 | 2 | 1 | 0 | 1 | 0 | 0
lecode\util\NetUtils.java | 8951 | 6 | 0 | 0 | 6 | 0 | 0
lecode\util\New.java | 1962 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\Permutations.java | 5362 | 1 | 0 | 1 | 0 | 0 | 0
lecode\util\Profiler.java | 14166 | 24 | 0 | 0 | 24 | 0 | 0
lecode\util\ScriptReader.java | 8191 | 1 | 0 | 0 | 0 | 0 | 1
lecode\util\SmallLRUCache.java | 1184 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\SmallMap.java | 2528 | 1 | 0 | 0 | 1 | 0 | 0
lecode\util\SoftHashMap.java | 2646 | 4 | 0 | 0 | 4 | 0 | 0
lecode\util\SortedProperties.java | 5062 | 1 | 0 | 0 | 1 | 0 | 0
lecode\util\SourceCompiler.java | 8637 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\StatementBuilder.java | 2741 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\StringUtils.java | 33570 | 5 | 0 | 0 | 4 | 0 | 1
lecode\util\SynchronizedVerifier.java | 2375 | 1 | 0 | 0 | 1 | 0 | 0
lecode\util\Task.java | 2324 | 1 | 0 | 0 | 1 | 0 | 0
lecode\util\TempFileDeleter.java | 3753 | 2 | 0 | 0 | 2 | 0 | 0
lecode\util\Tool.java | 4250 | 0 | 0 | 0 | 0 | 0 | 0
lecode\util\Utils.java | 26333 | 13 | 0 | 1 | 9 | 3 | 0
lecode\util\ValueHashMap.java | 4774 | 5 | 0 | 0 | 5 | 0 | 0
lecode\value\CaseInsensitiveMap.java | 1007 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\CompareMode.java | 6682 | 1 | 0 | 0 | 1 | 0 | 0
lecode\value\CompareModeDefault.java | 2164 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\CompareModeIcu4J.java | 3119 | 1 | 0 | 0 | 1 | 0 | 0
lecode\value\DataType.java | 37451 | 24 | 0 | 0 | 24 | 0 | 0
lecode\value\Transfer.java | 23258 | 5 | 0 | 0 | 3 | 0 | 2
lecode\value\Value.java | 34044 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueArray.java | 5486 | 2 | 0 | 0 | 2 | 0 | 0
lecode\value\ValueBoolean.java | 2391 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueByte.java | 3310 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueBytes.java | 3344 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueDate.java | 3860 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueDecimal.java | 6576 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueDouble.java | 4357 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueFloat.java | 4158 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueInt.java | 4037 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueJavaObject.java | 5485 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueLob.java | 27670 | 9 | 0 | 1 | 7 | 0 | 1
lecode\value\ValueLobDb.java | 18426 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueLong.java | 5961 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueNull.java | 2912 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueResultSet.java | 4543 | 4 | 0 | 0 | 4 | 0 | 0
lecode\value\ValueShort.java | 3365 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueString.java | 3827 | 4 | 4 | 0 | 0 | 0 | 0
lecode\value\ValueStringFixed.java | 1592 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueStringIgnoreCase.java | 2278 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueTime.java | 5073 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueTimestamp.java | 8640 | 0 | 0 | 0 | 0 | 0 | 0
lecode\value\ValueUuid.java | 5711 | 0 | 0 | 0 | 0 | 0 | 0

#### File lecode\Driver.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.Driver

Module / class or interface : org.h2.Driver

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Connection | connect(String;Properties) | 5 | 3
boolean | acceptsURL(String) | 5 | 1
int | getMajorVersion() | 1 | 1
int | getMinorVersion() | 1 | 1
DriverPropertyInfo[] | getPropertyInfo(String;Properties) | 1 | 1
boolean | jdbcCompliant() | 1 | 1
Driver | load() | 2 | 2
void | unload() | 2 | 1
void | setDefaultConnection(Connection) | 1 | 1
void | setThreadContextClassLoader(Thread) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1

Line start | Criticity class | Rule
--- | --- | ---
00195 | MAJOR | QC-JAVCWE390[00195] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\aa__all_files.java 93 rule violations (XML file)

Module / class or interface : .

Security risk sequences

Seq | Step | Source / Method / Target | Risk nature
--- | --- | --- | ---
No 1 |  |  |
| 2 | org.h2.fulltext.FullText.createIndex4\---dummymethode\------org.h2.fulltext.FullText.createIndex.columnList |
| 1 | org.h2.fulltext.FullText.createIndex.columnList\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 2 |  |  |
| 2 | org.h2.fulltext.FullText.createIndex2\---dummymethode\------org.h2.fulltext.FullText.createIndex.schema |
| 1 | org.h2.fulltext.FullText.createIndex.schema\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 3 |  |  |
| 2 | org.h2.fulltext.FullText.createIndex3\---dummymethode\------org.h2.fulltext.FullText.createIndex.table |
| 1 | org.h2.fulltext.FullText.createIndex.table\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 4 |  |  |
| 2 | org.h2.fulltext.FullText.dropIndex2\---dummymethode\------org.h2.fulltext.FullText.dropIndex.schema |
| 1 | org.h2.fulltext.FullText.dropIndex.schema\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 5 |  |  |
| 2 | org.h2.fulltext.FullText.dropIndex3\---dummymethode\------org.h2.fulltext.FullText.dropIndex.table |
| 1 | org.h2.fulltext.FullText.dropIndex.table\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 6 |  |  |
| 6 | null \---org.h2.fulltext.FullText.FullTextTrigger.fire\------org.h2.fulltext.FullText.FullTextTrigger.fire2 |
| 5 | org.h2.fulltext.FullText.FullTextTrigger.fire2\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.fire.oldRow |
| 4 | org.h2.fulltext.FullText.FullTextTrigger.fire.oldRow\---org.h2.fulltext.FullText.FullTextTrigger.delete\------org.h2.fulltext.FullText.FullTextTrigger.delete1 |
| 3 | org.h2.fulltext.FullText.FullTextTrigger.delete1\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.delete.row |
| 2 | org.h2.fulltext.FullText.FullTextTrigger.delete.row\---org.h2.fulltext.FullText.FullTextTrigger.getKey\------org.h2.fulltext.FullText.FullTextTrigger.delete.key |
| 1 | org.h2.fulltext.FullText.FullTextTrigger.delete.key\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 7 |  |  |
| 2 | org.h2.tools.SimpleResultSet.next\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.getWordIds.word |
| 1 | org.h2.fulltext.FullText.FullTextTrigger.getWordIds.word\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 8 |  |  |
| 6 | "SCHEMA"\---org.h2.tools.SimpleResultSet.getString (correctly sanitized)\------org.h2.fulltext.FullText.reindex.schema | correctly sanitized
| 5 | org.h2.fulltext.FullText.reindex.schema\---org.h2.fulltext.FullText.indexExistingRows\------org.h2.fulltext.FullText.indexExistingRows2 |
| 4 | org.h2.fulltext.FullText.indexExistingRows2\---dummymethode\------org.h2.fulltext.FullText.indexExistingRows.schema |
| 3 | org.h2.fulltext.FullText.indexExistingRows.schema\---org.h2.fulltext.FullText.FullTextTrigger.init\------org.h2.fulltext.FullText.FullTextTrigger.init2 |
| 2 | org.h2.fulltext.FullText.FullTextTrigger.init2\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.init.schemaName |
| 1 | org.h2.fulltext.FullText.FullTextTrigger.init.schemaName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : None
No 9 |  |  |
| 6 | "TABLE"\---org.h2.tools.SimpleResultSet.getString (correctly sanitized)\------org.h2.fulltext.FullText.reindex.table | correctly sanitized
| 5 | org.h2.fulltext.FullText.reindex.table\---org.h2.fulltext.FullText.indexExistingRows\------org.h2.fulltext.FullText.indexExistingRows3 |
| 4 | org.h2.fulltext.FullText.indexExistingRows3\---dummymethode\------org.h2.fulltext.FullText.indexExistingRows.table |
| 3 | org.h2.fulltext.FullText.indexExistingRows.table\---org.h2.fulltext.FullText.FullTextTrigger.init\------org.h2.fulltext.FullText.FullTextTrigger.init4 |
| 2 | org.h2.fulltext.FullText.FullTextTrigger.init4\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.init.tableName |
| 1 | org.h2.fulltext.FullText.FullTextTrigger.init.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : None
No 10 |  |  |
| 7 | 1\---org.h2.tools.SimpleResultSet.getObject\------org.h2.fulltext.FullText.indexExistingRows.row |
| 6 | org.h2.fulltext.FullText.indexExistingRows.row\---org.h2.fulltext.FullText.FullTextTrigger.fire\------org.h2.fulltext.FullText.FullTextTrigger.fire3 |
| 5 | org.h2.fulltext.FullText.FullTextTrigger.fire3\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.fire.newRow |
| 4 | org.h2.fulltext.FullText.FullTextTrigger.fire.newRow\---org.h2.fulltext.FullText.FullTextTrigger.insert\------org.h2.fulltext.FullText.FullTextTrigger.insert1 |
| 3 | org.h2.fulltext.FullText.FullTextTrigger.insert1\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.insert.row |
| 2 | org.h2.fulltext.FullText.FullTextTrigger.insert.row\---org.h2.fulltext.FullText.FullTextTrigger.getKey\------org.h2.fulltext.FullText.FullTextTrigger.insert.key |
| 1 | org.h2.fulltext.FullText.FullTextTrigger.insert.key\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 11 |  |  |
| 7 | org.h2.fulltext.FullText.indexExistingRows.i\---org.h2.tools.SimpleResultSet.getObject\------org.h2.fulltext.FullText.indexExistingRows.row |
| 6 | org.h2.fulltext.FullText.indexExistingRows.row\---org.h2.fulltext.FullText.FullTextTrigger.fire\------org.h2.fulltext.FullText.FullTextTrigger.fire3 |
| 5 | org.h2.fulltext.FullText.FullTextTrigger.fire3\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.fire.newRow |
| 4 | org.h2.fulltext.FullText.FullTextTrigger.fire.newRow\---org.h2.fulltext.FullText.FullTextTrigger.insert\------org.h2.fulltext.FullText.FullTextTrigger.insert1 |
| 3 | org.h2.fulltext.FullText.FullTextTrigger.insert1\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.insert.row |
| 2 | org.h2.fulltext.FullText.FullTextTrigger.insert.row\---org.h2.fulltext.FullText.FullTextTrigger.getKey\------org.h2.fulltext.FullText.FullTextTrigger.insert.key |
| 1 | org.h2.fulltext.FullText.FullTextTrigger.insert.key\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 12 |  |  |
| 2 | org.h2.fulltext.FullText.setWhitespaceChars2\---dummymethode\------org.h2.fulltext.FullText.setWhitespaceChars.whitespaceChars |
| 1 | org.h2.fulltext.FullText.setWhitespaceChars.whitespaceChars\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 13 |  |  |
| 2 | org.h2.fulltext.FullTextLucene.createIndex4\---dummymethode\------org.h2.fulltext.FullTextLucene.createIndex.columnList |
| 1 | org.h2.fulltext.FullTextLucene.createIndex.columnList\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 14 |  |  |
| 2 | org.h2.fulltext.FullTextLucene.createIndex2\---dummymethode\------org.h2.fulltext.FullTextLucene.createIndex.schema |
| 1 | org.h2.fulltext.FullTextLucene.createIndex.schema\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 15 |  |  |
| 2 | org.h2.fulltext.FullTextLucene.createIndex3\---dummymethode\------org.h2.fulltext.FullTextLucene.createIndex.table |
| 1 | org.h2.fulltext.FullTextLucene.createIndex.table\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 16 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getBestRowIdentifier3\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getBestRowIdentifier.tableName |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getBestRowIdentifier.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 17 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getColumnPrivileges3\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getColumnPrivileges.table |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getColumnPrivileges.table\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 18 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference6\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.foreignTable |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.foreignTable\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 19 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference3\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.primaryTable |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.primaryTable\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 20 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getExportedKeys3\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getExportedKeys.tableName |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getExportedKeys.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 21 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getFunctions1\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getFunctions.section |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getFunctions.section\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 22 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getImportedKeys3\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getImportedKeys.tableName |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getImportedKeys.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 23 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getIndexInfo3\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getIndexInfo.tableName |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getIndexInfo.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 24 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getPrimaryKeys3\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getPrimaryKeys.tableName |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getPrimaryKeys.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 25 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getTables4\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getTables.types |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getTables.types\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 26 |  |  |
| 2 | org.h2.server.pg.PgServer.getOid2\---dummymethode\------org.h2.server.pg.PgServer.getOid.tableName |
| 1 | org.h2.server.pg.PgServer.getOid.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 27 |  |  |
| 2 | tableName.length\---tableName.substring\------org.h2.server.pg.PgServer.getOid.tableName |
| 1 | org.h2.server.pg.PgServer.getOid.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 28 |  |  |
| 6 | org.h2.server.pg.PgServerThread.readInt\---dummymethode\------org.h2.server.pg.PgServerThread.process.paramLen |
| 5 | org.h2.server.pg.PgServerThread.process.paramLen\---Utils.newBytes\------org.h2.server.pg.PgServerThread.process.d2 |
| 4 | org.h2.server.pg.PgServerThread.process.d2\---org.h2.server.pg.PgServerThread.setParameter\------org.h2.server.pg.PgServerThread.setParameter3 |
| 3 | org.h2.server.pg.PgServerThread.setParameter3\---dummymethode\------org.h2.server.pg.PgServerThread.setParameter.d2 |
| 2 | org.h2.server.pg.PgServerThread.setParameter.d2\---org.h2.server.pg.PgServerThread.setParameter.String\------org.h2.server.pg.PgServerThread.setParameter.s |
| 1 | org.h2.server.pg.PgServerThread.setParameter.s\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 29 |  |  |
| 4 | org.h2.value.Transfer.readString\---dummymethode\------org.h2.server.TcpServerThread.run.originalURL |
| 3 | org.h2.server.TcpServerThread.run.originalURL\---org.h2.server.TcpServer.addConnection\------org.h2.server.TcpServer.addConnection2 |
| 2 | org.h2.server.TcpServer.addConnection2\---dummymethode\------org.h2.server.TcpServer.addConnection.url |
| 1 | org.h2.server.TcpServer.addConnection.url\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 30 |  |  |
| 3 | org.h2.engine.ConnectionInfo.getUserName\---org.h2.server.TcpServer.addConnection\------org.h2.server.TcpServer.addConnection3 |
| 2 | org.h2.server.TcpServer.addConnection3\---dummymethode\------org.h2.server.TcpServer.addConnection.user |
| 1 | org.h2.server.TcpServer.addConnection.user\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 31 |  |  |
| 2 | org.h2.server.TcpServer.shutdown2\---dummymethode\------org.h2.server.TcpServer.shutdown.password |
| 1 | org.h2.server.TcpServer.shutdown.password\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 32 |  |  |
| 2 | "TABLE_NAME"\---rs.getString (correctly sanitized)\------org.h2.server.web.DbTableOrView.name | correctly sanitized
| 1 | org.h2.server.web.DbTableOrView.name\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : None
No 33 |  |  |
| 3 | org.h2.value.ValueString.ValueString1\---dummymethode\------org.h2.value.ValueString.ValueString.value |
| 2 | org.h2.value.ValueString.ValueString.value\---dummymethode\------org.h2.value.ValueString.value |
| 1 | org.h2.value.ValueString.value\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 34 |  |  |
| 3 | org.h2.server.pg.PgServerThread.process.i\---org.h2.server.pg.PgServerThread.setParameter\------org.h2.server.pg.PgServerThread.setParameter2 |
| 2 | org.h2.server.pg.PgServerThread.setParameter2\---dummymethode\------org.h2.server.pg.PgServerThread.setParameter.i |
| 1 | org.h2.server.pg.PgServerThread.setParameter.i\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString1 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 35 |  |  |
| 2 | org.h2.value.ValueString.set2\---dummymethode\------org.h2.value.ValueString.set.parameterIndex |
| 1 | org.h2.value.ValueString.set.parameterIndex\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString1 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL

Deadlock risks Ressources definition
R0:org.h2.engine.Database.reconnectSync
R1:org.h2.engine.Database.this
R2:org.h2.store.PageStore.this
R3:org.h2.schema.Sequence.flush.session
R4:org.h2.engine.Session.database
R5:org.h2.store.WriterThread.this
R6:org.h2.store.PageStore.database
R7:org.h2.engine.DbObjectBase.database
R8:org.h2.engine.DatabaseCloser.this
R9:org.h2.schema.Sequence.this
R10:org.h2.engine.Engine.openSession.database
R11:org.h2.engine.Engine.this
R12:org.h2.table.TableLinkConnection.open.map
R13:org.h2.table.TableLinkConnection.open.result
R14:org.h2.table.TableLinkConnection.open.t

Deadlock risks Sequences definition

Sequence | Step
--- | ---
No 0
| S0:org.h2.store.WriterThread.run (R5)
| S0:org.h2.engine.Database.checkpointIfRequired (R0,R1)
| S0:org.h2.engine.Database.checkpoint (R1)
| S0:org.h2.store.PageStore.checkpoint (R2)
| S0:org.h2.engine.Database.checkPowerOff
| S0:org.h2.message.TraceSystem.close
No 1
| S1:org.h2.store.PageStore.recover
| S1:org.h2.store.PageStore.readMetaData
| S1:org.h2.store.PageStore.addMeta (R6,R2)
| S1:org.h2.table.RegularTable.addIndex
| S1:org.h2.engine.Database.addSchemaObject (R1)
| S1:org.h2.schema.Schema.add
| S1:org.h2.schema.Schema.freeUniqueName (??org.h2.schema.Schema.temporaryUniqueNames??)
| S1:org.h2.schema.Schema.remove
| S1:org.h2.message.DbException.throwInternalError
| S1:RuntimeException
No 2
| S2:org.h2.store.PageStore.recover
| S2:org.h2.store.PageStore.readMetaData
| S2:org.h2.store.PageStore.addMeta (R6,R2)
| S2:org.h2.table.RegularTable.addIndex
| S2:org.h2.engine.Database.addSchemaObject (R1)
| S2:org.h2.engine.Database.addMeta (R1)
| S2:org.h2.engine.Session.log
| S2:org.h2.engine.UndoLog.add
| S2:org.h2.engine.UndoLog.clear
| S2:org.h2.engine.UndoLog.clear
| S2:org.h2.store.FileStore.closeAndDeleteSilently
| S2:org.h2.util.TempFileDeleter.deleteFile (??org.h2.util.TempFileDeleter.this??)
| S2:FileUtils.tryDelete
No 3
| S3:org.h2.store.PageStore.recover
| S3:org.h2.store.PageStore.readMetaData
| S3:org.h2.store.PageStore.addMeta (R6,R2)
| S3:org.h2.table.RegularTable.addIndex
| S3:org.h2.engine.Database.addSchemaObject (R1)
| S3:org.h2.engine.Database.addMeta (R1)
| S3:org.h2.engine.Session.log
| S3:org.h2.engine.UndoLog.add
| S3:org.h2.engine.UndoLog.add
| S3:org.h2.engine.UndoLog.saveIfPossible
| S3:org.h2.engine.UndoLogRecord.save
| S3:org.h2.engine.UndoLogRecord.append
| S3:org.h2.store.Data.getValueLen
| S3:org.h2.store.Data.getValueLen
| S3:org.h2.value.DataType.readValue
| S3:org.h2.store.LobStorage.createClob
| S3:org.h2.store.LobStorage.init (??org.h2.store.LobStorage.handler??)
| S3:org.h2.store.LobStorage.conn
No 4
| S4:org.h2.store.PageStore.recover
| S4:org.h2.store.PageStore.readMetaData
| S4:org.h2.store.PageStore.addMeta (R6,R2)
| S4:org.h2.table.RegularTable.addIndex
| S4:org.h2.engine.Database.addSchemaObject (R1)
| S4:org.h2.engine.Database.addMeta (R1)
| S4:org.h2.engine.Session.log
| S4:org.h2.engine.UndoLog.add
| S4:org.h2.engine.UndoLog.add
| S4:org.h2.engine.UndoLog.saveIfPossible
| S4:org.h2.engine.UndoLogRecord.save
| S4:org.h2.engine.UndoLogRecord.append
| S4:org.h2.store.Data.getValueLen
| S4:org.h2.store.Data.getValueLen
| S4:org.h2.value.ValueLob.convertToFileIfRequired
| S4:org.h2.value.ValueLob.link
| S4:org.h2.value.ValueLob.copyFileTo (??org.h2.store.DataHandler.getLobSyncObject??)
| S4:FileUtils.copy
No 5
| S5:org.h2.store.PageStore.recover
| S5:org.h2.store.PageStore.readMetaData
| S5:org.h2.store.PageStore.addMeta (R6,R2)
| S5:org.h2.table.RegularTable.addIndex
| S5:org.h2.engine.Database.addSchemaObject (R1)
| S5:org.h2.engine.Database.addMeta (R1)
| S5:org.h2.engine.Session.log
| S5:org.h2.engine.UndoLog.add
| S5:org.h2.engine.UndoLog.add
| S5:org.h2.engine.UndoLog.saveIfPossible
| S5:org.h2.engine.UndoLogRecord.save
| S5:org.h2.engine.UndoLogRecord.append
| S5:org.h2.store.Data.getValueLen
| S5:org.h2.store.Data.getValueLen
| S5:org.h2.value.ValueLob.convertToFileIfRequired
| S5:org.h2.value.ValueLob.link
| S5:org.h2.value.ValueLob.getNewObjectId
| S5:org.h2.value.ValueLob.getFileList (??org.h2.value.ValueLob.getFileList.cache??)
| S5:cache.get
No 6
| S6:org.h2.store.PageStore.recover
| S6:org.h2.store.PageStore.readMetaData
| S6:org.h2.store.PageStore.addMeta (R6,R2)
| S6:org.h2.table.RegularTable.addIndex
| S6:org.h2.engine.Database.addSchemaObject (R1)
| S6:org.h2.engine.Database.addMeta (R1)
| S6:org.h2.engine.Session.log
| S6:org.h2.engine.UndoLog.add
| S6:org.h2.engine.UndoLog.add
| S6:org.h2.engine.UndoLog.saveIfPossible
| S6:org.h2.engine.UndoLogRecord.save
| S6:org.h2.engine.UndoLogRecord.append
| S6:org.h2.store.Data.getValueLen
| S6:org.h2.store.Data.getValueLen
| S6:org.h2.value.ValueLob.convertToFileIfRequired
| S6:org.h2.value.ValueLob.link
| S6:org.h2.value.ValueLob.getNewObjectId
| S6:org.h2.value.ValueLob.invalidateFileList (??org.h2.value.ValueLob.invalidateFileList.cache??)
| S6:cache.remove
No 7
| S7:org.h2.store.PageStore.recover
| S7:org.h2.store.PageStore.readMetaData
| S7:org.h2.store.PageStore.addMeta (R6,R2)
| S7:org.h2.table.RegularTable.addIndex
| S7:org.h2.engine.Database.addSchemaObject (R1)
| S7:org.h2.engine.Database.addMeta (R1)
| S7:org.h2.engine.Session.log
| S7:org.h2.engine.UndoLog.add
| S7:org.h2.engine.UndoLog.add
| S7:org.h2.engine.UndoLog.saveIfPossible
| S7:org.h2.engine.UndoLogRecord.save
| S7:org.h2.engine.UndoLogRecord.append
| S7:org.h2.store.Data.getValueLen
| S7:org.h2.store.Data.getValueLen
| S7:org.h2.value.ValueLob.convertToFileIfRequired
| S7:org.h2.value.ValueLob.createFromReader
| S7:org.h2.value.ValueLob.initLarge (??org.h2.value.ValueLob.initLarge.h??)
| S7:org.h2.store.FileStore.autoDelete
| S7:org.h2.util.TempFileDeleter.addFile (??org.h2.util.TempFileDeleter.this??)
| S7:org.h2.util.TempFileDeleter.deleteUnused
| S7:org.h2.util.TempFileDeleter.deleteFile (??org.h2.util.TempFileDeleter.this??)
| S7:FileUtils.tryDelete
No 8
| S8:org.h2.index.PageBtreeIndex.PageBtreeIndex
| S8:org.h2.engine.Database.getPageStore
| S8:org.h2.engine.Database.open (R1)
| S8:org.h2.engine.Database.afterWriting (R0)
No 9
| S9:org.h2.index.PageBtreeIndex.PageBtreeIndex
| S9:org.h2.engine.Database.getPageStore
| S9:org.h2.engine.Database.open (R1)
| S9:org.h2.schema.Schema.createTable (R7)
| S9:org.h2.engine.Database.lockMeta (R1)
| S9:org.h2.table.Table.isLockedExclusivelyBy
No 10
| S10:org.h2.index.PageBtreeIndex.PageBtreeIndex
| S10:org.h2.engine.Database.getPageStore
| S10:org.h2.engine.Database.open (R1)
| S10:org.h2.engine.Database.recompileInvalidViews
| S10:org.h2.table.TableView.recompile (??org.h2.table.TableView.this??)
| S10:indexCache.clear
No 11
| S11:org.h2.index.PageBtreeIndex.PageBtreeIndex
| S11:org.h2.engine.Database.getPageStore
| S11:org.h2.engine.Database.open (R1)
| S11:org.h2.message.TraceSystem.setLevelFile
| S11:org.h2.message.TraceSystem.write
| S11:org.h2.message.TraceSystem.format (??org.h2.message.TraceSystem.this??)
| S11:org.h2.message.TraceSystem.format.SimpleDateFormat
No 12
| S12:org.h2.engine.Database.closeOpenFilesAndUnlock (R1)
| S12:org.h2.engine.Database.closeFiles (R1)
| S12:org.h2.store.PageStore.close (R2)
| S12:org.h2.store.FileStore.releaseLock (??org.h2.store.FileStore.this??)
No 13
| S13:org.h2.engine.Database.closeOpenFilesAndUnlock (R1)
| S13:org.h2.engine.Session.close
| S13:org.h2.engine.Database.checkPowerOff
| S13:org.h2.store.FileLock.unlock (??org.h2.store.FileLock.this??)
| S13:serverSocket.close
No 14
| S14:org.h2.command.dml.BackupCommand.update
| S14:org.h2.command.dml.BackupCommand.backupTo (??org.h2.engine.Database.getLobSyncObject??)
| S14:org.h2.engine.Database.close (R1)
| S14:org.h2.engine.DatabaseCloser.reset (R8)
| S14:start
No 15
| S15:org.h2.command.dml.BackupCommand.update
| S15:org.h2.command.dml.BackupCommand.backupTo (??org.h2.engine.Database.getLobSyncObject??)
| S15:org.h2.engine.Database.close (R1)
| S15:org.h2.schema.Sequence.close
| S15:org.h2.schema.Sequence.flushWithoutMargin
| S15:org.h2.schema.Sequence.flush (R3,R9)
| S15:org.h2.engine.Database.update (R1)
| S15:org.h2.engine.Database.addMeta (R1)
| S15:org.h2.engine.MetaRecord
No 16
| S16:org.h2.command.dml.BackupCommand.update
| S16:org.h2.command.dml.BackupCommand.backupTo (??org.h2.engine.Database.getLobSyncObject??)
| S16:org.h2.engine.Database.close (R1)
| S16:org.h2.engine.Database.closeAllSessionsException (R1)
| S16:org.h2.engine.Session.rollback
| S16:org.h2.engine.Session.unlockAll (R4)
| S16:org.h2.message.DbException.throwInternalError
| S16:TraceSystem.traceThrowable
No 17
| S17:org.h2.store.PageStore.recover
| S17:org.h2.store.PageStore.readMetaData
| S17:org.h2.index.PageDataIndex.find
| S17:org.h2.index.PageDataIndex.getPage
| S17:org.h2.store.PageStore.logUndo (R2)
| S17:org.h2.store.PageStore.openForWriting
| S17:org.h2.store.PageStore.checkpoint (R2)
| S17:org.h2.engine.Database.checkPowerOff
| S17:org.h2.engine.Database.stopWriter
| S17:org.h2.store.WriterThread.stopThread (R5)
| S17:notify
No 18
| S18:org.h2.store.PageStore.recover
| S18:org.h2.store.PageStore.readMetaData
| S18:org.h2.index.PageDataIndex.find
| S18:org.h2.index.PageDataIndex.getPage
| S18:org.h2.store.PageStore.logUndo (R2)
| S18:org.h2.store.PageStore.openForWriting
| S18:org.h2.store.PageStore.checkpoint (R2)
| S18:org.h2.engine.Database.checkPowerOff
| S18:org.h2.message.TraceSystem.close
| S18:org.h2.message.TraceSystem.closeWriter (??org.h2.message.TraceSystem.this??)
| S18:printWriter.flush
No 19
| S19:org.h2.store.PageStore.recover
| S19:org.h2.store.PageStore.readMetaData
| S19:org.h2.index.PageDataIndex.find
| S19:org.h2.index.PageDataIndex.getPage
| S19:org.h2.store.PageStore.logUndo (R2)
| S19:org.h2.store.PageStore.openForWriting
| S19:org.h2.store.PageStore.checkpoint (R2)
| S19:org.h2.engine.Database.checkPowerOff
| S19:org.h2.store.FileLock.unlock (??org.h2.store.FileLock.this??)
| S19:serverSocket.close
No 20
| S20:org.h2.store.PageStore.recover
| S20:org.h2.store.PageStore.readMetaData
| S20:org.h2.index.PageDataIndex.find
| S20:org.h2.index.PageDataIndex.getPage
| S20:org.h2.store.PageStore.logUndo (R2)
| S20:org.h2.store.PageStore.openForWriting
| S20:org.h2.store.PageStore.checkpoint (R2)
| S20:org.h2.engine.Database.checkPowerOff
| S20:org.h2.store.PageStore.close (R2)
| S20:org.h2.store.FileStore.releaseLock (??org.h2.store.FileStore.this??)
| S20:lock.release
No 21
| S21:org.h2.store.PageStore.recover
| S21:org.h2.store.PageStore.readMetaData
| S21:org.h2.store.PageStore.addMeta (R6,R2)
| S21:org.h2.index.PageDataIndex.add
| S21:org.h2.index.PageDataIndex.addTry
| S21:org.h2.index.PageDataIndex.remove
| S21:org.h2.index.PageDataIndex.remove
| S21:org.h2.store.PageStore.logAddOrRemoveRow (R2)
| S21:org.h2.store.PageLog.logAddOrRemoveRow
| S21:org.h2.result.Row.getByteCount
| S21:org.h2.store.Data.getValueLen
| S21:org.h2.store.Data.getValueLen
| S21:org.h2.value.DataType.readValue
| S21:org.h2.store.LobStorage.createClob
| S21:org.h2.store.LobStorage.init (??org.h2.store.LobStorage.handler??)
| S21:org.h2.store.LobStorage.conn
No 22
| S22:org.h2.store.PageStore.recover
| S22:org.h2.store.PageStore.readMetaData
| S22:org.h2.store.PageStore.addMeta (R6,R2)
| S22:org.h2.index.PageDataIndex.add
| S22:org.h2.index.PageDataIndex.addTry
| S22:org.h2.index.PageDataIndex.remove
| S22:org.h2.index.PageDataIndex.remove
| S22:org.h2.store.PageStore.logAddOrRemoveRow (R2)
| S22:org.h2.store.PageLog.logAddOrRemoveRow
| S22:org.h2.result.Row.getByteCount
| S22:org.h2.store.Data.getValueLen
| S22:org.h2.store.Data.getValueLen
| S22:org.h2.value.ValueLob.convertToFileIfRequired
| S22:org.h2.value.ValueLob.link
| S22:org.h2.store.FileStore.stopAutoDelete
| S22:org.h2.util.TempFileDeleter.stopAutoDelete
| S22:org.h2.util.TempFileDeleter.deleteUnused
| S22:org.h2.util.TempFileDeleter.deleteFile (??org.h2.util.TempFileDeleter.this??)
| S22:FileUtils.tryDelete
No 23
| S23:org.h2.store.PageStore.recover
| S23:org.h2.store.PageStore.readMetaData
| S23:org.h2.store.PageStore.addMeta (R6,R2)
| S23:org.h2.index.PageDataIndex.add
| S23:org.h2.index.PageDataIndex.addTry
| S23:org.h2.index.PageDataIndex.remove
| S23:org.h2.index.PageDataIndex.remove
| S23:org.h2.store.PageStore.logAddOrRemoveRow (R2)
| S23:org.h2.store.PageLog.logAddOrRemoveRow
| S23:org.h2.result.Row.getByteCount
| S23:org.h2.store.Data.getValueLen
| S23:org.h2.store.Data.getValueLen
| S23:org.h2.value.ValueLob.convertToFileIfRequired
| S23:org.h2.value.ValueLob.link
| S23:org.h2.value.ValueLob.copyFileTo (??org.h2.store.DataHandler.getLobSyncObject??)
| S23:FileUtils.copy
No 24
| S24:org.h2.store.PageStore.recover
| S24:org.h2.store.PageStore.readMetaData
| S24:org.h2.store.PageStore.addMeta (R6,R2)
| S24:org.h2.index.PageDataIndex.add
| S24:org.h2.index.PageDataIndex.addTry
| S24:org.h2.index.PageDataIndex.remove
| S24:org.h2.index.PageDataIndex.remove
| S24:org.h2.store.PageStore.logAddOrRemoveRow (R2)
| S24:org.h2.store.PageLog.logAddOrRemoveRow
| S24:org.h2.result.Row.getByteCount
| S24:org.h2.store.Data.getValueLen
| S24:org.h2.store.Data.getValueLen
| S24:org.h2.value.ValueLob.convertToFileIfRequired
| S24:org.h2.value.ValueLob.link
| S24:org.h2.value.ValueLob.getNewObjectId
| S24:org.h2.value.ValueLob.getFileList (??org.h2.value.ValueLob.getFileList.cache??)
| S24:cache.get
No 25
| S25:org.h2.store.PageStore.recover
| S25:org.h2.store.PageStore.readMetaData
| S25:org.h2.store.PageStore.addMeta (R6,R2)
| S25:org.h2.index.PageDataIndex.add
| S25:org.h2.index.PageDataIndex.addTry
| S25:org.h2.index.PageDataIndex.remove
| S25:org.h2.index.PageDataIndex.remove
| S25:org.h2.store.PageStore.logAddOrRemoveRow (R2)
| S25:org.h2.store.PageLog.logAddOrRemoveRow
| S25:org.h2.result.Row.getByteCount
| S25:org.h2.store.Data.getValueLen
| S25:org.h2.store.Data.getValueLen
| S25:org.h2.value.ValueLob.convertToFileIfRequired
| S25:org.h2.value.ValueLob.link
| S25:org.h2.value.ValueLob.getNewObjectId
| S25:org.h2.value.ValueLob.invalidateFileList (??org.h2.value.ValueLob.invalidateFileList.cache??)
| S25:cache.remove
No 26
| S26:org.h2.store.PageStore.recover
| S26:org.h2.store.PageStore.readMetaData
| S26:org.h2.store.PageStore.addMeta (R6,R2)
| S26:org.h2.index.PageDataIndex.add
| S26:org.h2.index.PageDataIndex.addTry
| S26:org.h2.index.PageDataIndex.remove
| S26:org.h2.index.PageDataIndex.remove
| S26:org.h2.store.PageStore.logAddOrRemoveRow (R2)
| S26:org.h2.store.PageLog.logAddOrRemoveRow
| S26:org.h2.result.Row.getByteCount
| S26:org.h2.store.Data.getValueLen
| S26:org.h2.store.Data.getValueLen
| S26:org.h2.value.ValueLob.convertToFileIfRequired
| S26:org.h2.value.ValueLob.createFromReader
| S26:org.h2.value.ValueLob.initLarge (??org.h2.value.ValueLob.initLarge.h??)
| S26:org.h2.store.FileStore.autoDelete
| S26:org.h2.util.TempFileDeleter.addFile (??org.h2.util.TempFileDeleter.this??)
| S26:org.h2.util.TempFileDeleter.deleteUnused
| S26:org.h2.util.TempFileDeleter.deleteFile (??org.h2.util.TempFileDeleter.this??)
| S26:FileUtils.tryDelete
No 27
| S27:org.h2.store.PageStore.recover
| S27:org.h2.store.PageStore.readMetaData
| S27:org.h2.store.PageStore.addMeta (R6,R2)
| S27:org.h2.index.PageDataIndex.add
| S27:org.h2.index.PageDataIndex.addTry
| S27:org.h2.index.PageDataIndex.remove
| S27:org.h2.index.PageDataIndex.remove
| S27:org.h2.store.PageStore.removeMeta (R6,R2)
| S27:org.h2.schema.Schema.remove
| S27:org.h2.message.DbException.throwInternalError
| S27:RuntimeException
No 28
| S28:org.h2.store.PageStore.recover
| S28:org.h2.store.PageStore.readMetaData
| S28:org.h2.store.PageStore.addMeta (R6,R2)
| S28:org.h2.index.PageDataIndex.add
| S28:org.h2.index.PageDataIndex.addTry
| S28:org.h2.index.PageDataIndex.remove
| S28:org.h2.index.PageDataIndex.remove
| S28:org.h2.store.PageStore.removeMeta (R6,R2)
| S28:org.h2.engine.Session.removeLocalTempTableIndex (R4)
| S28:org.h2.engine.DbObject.removeChildrenAndResources
No 29
| S29:org.h2.store.PageStore.recover
| S29:org.h2.store.PageStore.readMetaData
| S29:org.h2.store.PageStore.addMeta (R6,R2)
| S29:org.h2.schema.Schema.add
| S29:org.h2.schema.Schema.freeUniqueName (??org.h2.schema.Schema.temporaryUniqueNames??)
| S29:org.h2.schema.Schema.remove
| S29:org.h2.message.DbException.throwInternalError
| S29:RuntimeException
No 30
| S30:org.h2.store.PageStore.recover
| S30:org.h2.store.PageStore.readMetaData
| S30:org.h2.store.PageStore.addMeta (R6,R2)
| S30:org.h2.table.RegularTable.addIndex
| S30:org.h2.engine.Database.addSchemaObject (R1)
| S30:org.h2.engine.Database.checkWritingAllowed
No 31
| S31:org.h2.store.PageStore.recover
| S31:org.h2.store.PageStore.readMetaData
| S31:org.h2.store.PageStore.addMeta (R6,R2)
| S31:org.h2.value.CompareMode.getInstance (??org.h2.value.CompareMode.this??)
| S31:name.substring
No 32
| S32:org.h2.command.dml.Set.update
| S32:org.h2.engine.Session.commit (R4)
| S32:org.h2.engine.Database.flush (R1)
No 33
| S33:org.h2.command.dml.Set.update
| S33:org.h2.engine.Session.commit (R4)
| S33:org.h2.engine.UndoLog.clear
| S33:org.h2.engine.UndoLog.clear
| S33:org.h2.store.FileStore.closeAndDeleteSilently
| S33:org.h2.util.TempFileDeleter.deleteFile (??org.h2.util.TempFileDeleter.this??)
| S33:FileUtils.tryDelete
No 34
| S34:org.h2.store.WriterThread.run (R5)
| S34:org.h2.engine.Database.flush (R1)
No 35
| S35:org.h2.store.PageStore.recover
| S35:org.h2.store.PageStore.readMetaData
| S35:org.h2.store.PageStore.addMeta (R6,R2)
| S35:c.substring
No 36
| S36:org.h2.engine.DatabaseCloser.run (R8)
| S36:org.h2.engine.Database.close (R1)
| S36:Engine.getInstance.close
No 37
| S37:org.h2.expression.SequenceValue.getValue
| S37:org.h2.schema.Sequence.getNext (R9)
| S37:org.h2.schema.Sequence.flush (R3,R9)
| S37:org.h2.engine.Database.update (R1)
| S37:org.h2.engine.Database.addMeta (R1)
| S37:org.h2.engine.Session.log
| S37:org.h2.message.DbException.throwInternalError
| S37:TraceSystem.traceThrowable
No 38
| S38:org.h2.engine.Engine.createSessionAndValidate
| S38:org.h2.engine.Engine.openSession (R10,R11)
| S38:org.h2.command.CommandInterface.executeUpdate
No 39
| S39:org.h2.engine.Engine.createSessionAndValidate
| S39:org.h2.engine.Engine.openSession (R10,R11)
| S39:org.h2.engine.Session.close
| S39:org.h2.engine.Database.checkPowerOff
| S39:org.h2.store.FileLock.unlock (??org.h2.store.FileLock.this??)
| S39:serverSocket.close
No 40
| S40:org.h2.engine.Engine.createSessionAndValidate
| S40:org.h2.engine.Engine.openSession (R10,R11)
| S40:org.h2.engine.Session.close
| S40:org.h2.engine.Database.removeSession (R1)
| S40:org.h2.message.Trace.info
| S40:MessageFormat.format
No 41
| S41:org.h2.engine.Engine.createSessionAndValidate
| S41:org.h2.engine.Engine.openSession (R10,R11)
| S41:org.h2.engine.Session.prepareCommand (??org.h2.engine.Session.this??)
No 42
| S42:org.h2.engine.Engine.createSessionAndValidate
| S42:org.h2.engine.Engine.openSession (R10,R11)
| S42:org.h2.engine.Engine.openSession (R10,R11)
| S42:org.h2.command.CommandInterface.executeUpdate
No 43
| S43:org.h2.table.TableLinkConnection.open (R12,R13,R14)
| S43:org.h2.table.TableLinkConnection.open (R12,R13,R14)
| S43:map.put

Deadlock risks Typologies

Typo | C1 | C2 | C3
--- | --- | --- | ---
No 1
| R5 | R2 |
| 1 |  | S0 org.h2.store.WriterThread.run R5
|  |  | S0 org.h2.engine.Database.checkpointIfRequired R0,R1
|  |  | S0 org.h2.engine.Database.checkpoint R1
|  | 2 | S0 org.h2.store.PageStore.checkpoint R2
|  |  | S0 org.h2.engine.Database.checkPowerOff
|  |  | S0 org.h2.message.TraceSystem.close
|  |  | S1 org.h2.store.PageStore.recover
|  |  | S1 org.h2.store.PageStore.readMetaData
|  | 1 | S1 org.h2.store.PageStore.addMeta R6,R2
|  |  | S1 org.h2.table.RegularTable.addIndex
|  |  | S1 org.h2.engine.Database.addSchemaObject R1
|  |  | S1 org.h2.schema.Schema.add
|  |  | S1 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S1 org.h2.schema.Schema.remove
|  |  | S1 org.h2.message.DbException.throwInternalError
|  |  | S1 RuntimeException
|  |  | S2 org.h2.store.PageStore.recover
|  |  | S2 org.h2.store.PageStore.readMetaData
|  | 1 | S2 org.h2.store.PageStore.addMeta R6,R2
|  |  | S2 org.h2.table.RegularTable.addIndex
|  |  | S2 org.h2.engine.Database.addSchemaObject R1
|  |  | S2 org.h2.engine.Database.addMeta R1
|  |  | S2 org.h2.engine.Session.log
|  |  | S2 org.h2.engine.UndoLog.add
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S2 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S2 FileUtils.tryDelete
|  |  | S3 org.h2.store.PageStore.recover
|  |  | S3 org.h2.store.PageStore.readMetaData
|  | 1 | S3 org.h2.store.PageStore.addMeta R6,R2
|  |  | S3 org.h2.table.RegularTable.addIndex
|  |  | S3 org.h2.engine.Database.addSchemaObject R1
|  |  | S3 org.h2.engine.Database.addMeta R1
|  |  | S3 org.h2.engine.Session.log
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.saveIfPossible
|  |  | S3 org.h2.engine.UndoLogRecord.save
|  |  | S3 org.h2.engine.UndoLogRecord.append
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.value.DataType.readValue
|  |  | S3 org.h2.store.LobStorage.createClob
|  |  | S3 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S3 org.h2.store.LobStorage.conn
|  |  | S4 org.h2.store.PageStore.recover
|  |  | S4 org.h2.store.PageStore.readMetaData
|  | 1 | S4 org.h2.store.PageStore.addMeta R6,R2
|  |  | S4 org.h2.table.RegularTable.addIndex
|  |  | S4 org.h2.engine.Database.addSchemaObject R1
|  |  | S4 org.h2.engine.Database.addMeta R1
|  |  | S4 org.h2.engine.Session.log
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.saveIfPossible
|  |  | S4 org.h2.engine.UndoLogRecord.save
|  |  | S4 org.h2.engine.UndoLogRecord.append
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S4 org.h2.value.ValueLob.link
|  |  | S4 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S4 FileUtils.copy
|  |  | S5 org.h2.store.PageStore.recover
|  |  | S5 org.h2.store.PageStore.readMetaData
|  | 1 | S5 org.h2.store.PageStore.addMeta R6,R2
|  |  | S5 org.h2.table.RegularTable.addIndex
|  |  | S5 org.h2.engine.Database.addSchemaObject R1
|  |  | S5 org.h2.engine.Database.addMeta R1
|  |  | S5 org.h2.engine.Session.log
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.saveIfPossible
|  |  | S5 org.h2.engine.UndoLogRecord.save
|  |  | S5 org.h2.engine.UndoLogRecord.append
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S5 org.h2.value.ValueLob.link
|  |  | S5 org.h2.value.ValueLob.getNewObjectId
|  |  | S5 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S5 cache.get
|  |  | S6 org.h2.store.PageStore.recover
|  |  | S6 org.h2.store.PageStore.readMetaData
|  | 1 | S6 org.h2.store.PageStore.addMeta R6,R2
|  |  | S6 org.h2.table.RegularTable.addIndex
|  |  | S6 org.h2.engine.Database.addSchemaObject R1
|  |  | S6 org.h2.engine.Database.addMeta R1
|  |  | S6 org.h2.engine.Session.log
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.saveIfPossible
|  |  | S6 org.h2.engine.UndoLogRecord.save
|  |  | S6 org.h2.engine.UndoLogRecord.append
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S6 org.h2.value.ValueLob.link
|  |  | S6 org.h2.value.ValueLob.getNewObjectId
|  |  | S6 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S6 cache.remove
|  |  | S7 org.h2.store.PageStore.recover
|  |  | S7 org.h2.store.PageStore.readMetaData
|  | 1 | S7 org.h2.store.PageStore.addMeta R6,R2
|  |  | S7 org.h2.table.RegularTable.addIndex
|  |  | S7 org.h2.engine.Database.addSchemaObject R1
|  |  | S7 org.h2.engine.Database.addMeta R1
|  |  | S7 org.h2.engine.Session.log
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.saveIfPossible
|  |  | S7 org.h2.engine.UndoLogRecord.save
|  |  | S7 org.h2.engine.UndoLogRecord.append
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S7 org.h2.value.ValueLob.createFromReader
|  |  | S7 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S7 org.h2.store.FileStore.autoDelete
|  |  | S7 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S7 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 FileUtils.tryDelete
|  |  | S8 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S8 org.h2.engine.Database.getPageStore
|  |  | S8 org.h2.engine.Database.open R1
|  |  | S8 org.h2.engine.Database.afterWriting R0
|  |  | S9 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S9 org.h2.engine.Database.getPageStore
|  |  | S9 org.h2.engine.Database.open R1
|  |  | S9 org.h2.schema.Schema.createTable R7
|  |  | S9 org.h2.engine.Database.lockMeta R1
|  |  | S9 org.h2.table.Table.isLockedExclusivelyBy
|  |  | S10 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S10 org.h2.engine.Database.getPageStore
|  |  | S10 org.h2.engine.Database.open R1
|  |  | S10 org.h2.engine.Database.recompileInvalidViews
|  |  | S10 org.h2.table.TableView.recompile ??org.h2.table.TableView.this??
|  |  | S10 indexCache.clear
|  |  | S11 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S11 org.h2.engine.Database.getPageStore
|  |  | S11 org.h2.engine.Database.open R1
|  |  | S11 org.h2.message.TraceSystem.setLevelFile
|  |  | S11 org.h2.message.TraceSystem.write
|  |  | S11 org.h2.message.TraceSystem.format ??org.h2.message.TraceSystem.this??
|  |  | S11 org.h2.message.TraceSystem.format.SimpleDateFormat
|  |  | S12 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S12 org.h2.engine.Database.closeFiles R1
|  | 1 | S12 org.h2.store.PageStore.close R2
|  |  | S12 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
|  |  | S13 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S13 org.h2.engine.Session.close
|  |  | S13 org.h2.engine.Database.checkPowerOff
|  |  | S13 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S13 serverSocket.close
|  |  | S14 org.h2.command.dml.BackupCommand.update
|  |  | S14 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
|  |  | S14 org.h2.engine.Database.close R1
|  |  | S14 org.h2.engine.DatabaseCloser.reset R8
|  |  | S14 start
|  |  | S15 org.h2.command.dml.BackupCommand.update
|  |  | S15 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
|  |  | S15 org.h2.engine.Database.close R1
|  |  | S15 org.h2.schema.Sequence.close
|  |  | S15 org.h2.schema.Sequence.flushWithoutMargin
|  |  | S15 org.h2.schema.Sequence.flush R3,R9
|  |  | S15 org.h2.engine.Database.update R1
|  |  | S15 org.h2.engine.Database.addMeta R1
|  |  | S15 org.h2.engine.MetaRecord
|  |  | S16 org.h2.command.dml.BackupCommand.update
|  |  | S16 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
|  |  | S16 org.h2.engine.Database.close R1
|  |  | S16 org.h2.engine.Database.closeAllSessionsException R1
|  |  | S16 org.h2.engine.Session.rollback
|  |  | S16 org.h2.engine.Session.unlockAll R4
|  |  | S16 org.h2.message.DbException.throwInternalError
|  |  | S16 TraceSystem.traceThrowable
|  |  | S17 org.h2.store.PageStore.recover
|  |  | S17 org.h2.store.PageStore.readMetaData
|  |  | S17 org.h2.index.PageDataIndex.find
|  |  | S17 org.h2.index.PageDataIndex.getPage
|  | 1 | S17 org.h2.store.PageStore.logUndo R2
|  |  | S17 org.h2.store.PageStore.openForWriting
|  |  | S17 org.h2.store.PageStore.checkpoint R2
|  |  | S17 org.h2.engine.Database.checkPowerOff
|  |  | S17 org.h2.engine.Database.stopWriter
| 2 |  | S17 org.h2.store.WriterThread.stopThread R5
|  |  | S17 notify
|  |  | S18 org.h2.store.PageStore.recover
|  |  | S18 org.h2.store.PageStore.readMetaData
|  |  | S18 org.h2.index.PageDataIndex.find
|  |  | S18 org.h2.index.PageDataIndex.getPage
|  | 1 | S18 org.h2.store.PageStore.logUndo R2
|  |  | S18 org.h2.store.PageStore.openForWriting
|  |  | S18 org.h2.store.PageStore.checkpoint R2
|  |  | S18 org.h2.engine.Database.checkPowerOff
|  |  | S18 org.h2.message.TraceSystem.close
|  |  | S18 org.h2.message.TraceSystem.closeWriter ??org.h2.message.TraceSystem.this??
|  |  | S18 printWriter.flush
|  |  | S19 org.h2.store.PageStore.recover
|  |  | S19 org.h2.store.PageStore.readMetaData
|  |  | S19 org.h2.index.PageDataIndex.find
|  |  | S19 org.h2.index.PageDataIndex.getPage
|  | 1 | S19 org.h2.store.PageStore.logUndo R2
|  |  | S19 org.h2.store.PageStore.openForWriting
|  |  | S19 org.h2.store.PageStore.checkpoint R2
|  |  | S19 org.h2.engine.Database.checkPowerOff
|  |  | S19 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S19 serverSocket.close
|  |  | S20 org.h2.store.PageStore.recover
|  |  | S20 org.h2.store.PageStore.readMetaData
|  |  | S20 org.h2.index.PageDataIndex.find
|  |  | S20 org.h2.index.PageDataIndex.getPage
|  | 1 | S20 org.h2.store.PageStore.logUndo R2
|  |  | S20 org.h2.store.PageStore.openForWriting
|  |  | S20 org.h2.store.PageStore.checkpoint R2
|  |  | S20 org.h2.engine.Database.checkPowerOff
|  |  | S20 org.h2.store.PageStore.close R2
|  |  | S20 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
|  |  | S20 lock.release
|  |  | S21 org.h2.store.PageStore.recover
|  |  | S21 org.h2.store.PageStore.readMetaData
|  | 1 | S21 org.h2.store.PageStore.addMeta R6,R2
|  |  | S21 org.h2.index.PageDataIndex.add
|  |  | S21 org.h2.index.PageDataIndex.addTry
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S21 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S21 org.h2.result.Row.getByteCount
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.value.DataType.readValue
|  |  | S21 org.h2.store.LobStorage.createClob
|  |  | S21 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S21 org.h2.store.LobStorage.conn
|  |  | S22 org.h2.store.PageStore.recover
|  |  | S22 org.h2.store.PageStore.readMetaData
|  | 1 | S22 org.h2.store.PageStore.addMeta R6,R2
|  |  | S22 org.h2.index.PageDataIndex.add
|  |  | S22 org.h2.index.PageDataIndex.addTry
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S22 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S22 org.h2.result.Row.getByteCount
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S22 org.h2.value.ValueLob.link
|  |  | S22 org.h2.store.FileStore.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S22 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S22 FileUtils.tryDelete
|  |  | S23 org.h2.store.PageStore.recover
|  |  | S23 org.h2.store.PageStore.readMetaData
|  | 1 | S23 org.h2.store.PageStore.addMeta R6,R2
|  |  | S23 org.h2.index.PageDataIndex.add
|  |  | S23 org.h2.index.PageDataIndex.addTry
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S23 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S23 org.h2.result.Row.getByteCount
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S23 org.h2.value.ValueLob.link
|  |  | S23 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S23 FileUtils.copy
|  |  | S24 org.h2.store.PageStore.recover
|  |  | S24 org.h2.store.PageStore.readMetaData
|  | 1 | S24 org.h2.store.PageStore.addMeta R6,R2
|  |  | S24 org.h2.index.PageDataIndex.add
|  |  | S24 org.h2.index.PageDataIndex.addTry
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S24 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S24 org.h2.result.Row.getByteCount
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S24 org.h2.value.ValueLob.link
|  |  | S24 org.h2.value.ValueLob.getNewObjectId
|  |  | S24 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S24 cache.get
|  |  | S25 org.h2.store.PageStore.recover
|  |  | S25 org.h2.store.PageStore.readMetaData
|  | 1 | S25 org.h2.store.PageStore.addMeta R6,R2
|  |  | S25 org.h2.index.PageDataIndex.add
|  |  | S25 org.h2.index.PageDataIndex.addTry
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S25 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S25 org.h2.result.Row.getByteCount
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S25 org.h2.value.ValueLob.link
|  |  | S25 org.h2.value.ValueLob.getNewObjectId
|  |  | S25 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S25 cache.remove
|  |  | S26 org.h2.store.PageStore.recover
|  |  | S26 org.h2.store.PageStore.readMetaData
|  | 1 | S26 org.h2.store.PageStore.addMeta R6,R2
|  |  | S26 org.h2.index.PageDataIndex.add
|  |  | S26 org.h2.index.PageDataIndex.addTry
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S26 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S26 org.h2.result.Row.getByteCount
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S26 org.h2.value.ValueLob.createFromReader
|  |  | S26 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S26 org.h2.store.FileStore.autoDelete
|  |  | S26 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S26 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 FileUtils.tryDelete
|  |  | S27 org.h2.store.PageStore.recover
|  |  | S27 org.h2.store.PageStore.readMetaData
|  | 1 | S27 org.h2.store.PageStore.addMeta R6,R2
|  |  | S27 org.h2.index.PageDataIndex.add
|  |  | S27 org.h2.index.PageDataIndex.addTry
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S27 org.h2.schema.Schema.remove
|  |  | S27 org.h2.message.DbException.throwInternalError
|  |  | S27 RuntimeException
|  |  | S28 org.h2.store.PageStore.recover
|  |  | S28 org.h2.store.PageStore.readMetaData
|  | 1 | S28 org.h2.store.PageStore.addMeta R6,R2
|  |  | S28 org.h2.index.PageDataIndex.add
|  |  | S28 org.h2.index.PageDataIndex.addTry
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S28 org.h2.engine.Session.removeLocalTempTableIndex R4
|  |  | S28 org.h2.engine.DbObject.removeChildrenAndResources
|  |  | S29 org.h2.store.PageStore.recover
|  |  | S29 org.h2.store.PageStore.readMetaData
|  | 1 | S29 org.h2.store.PageStore.addMeta R6,R2
|  |  | S29 org.h2.schema.Schema.add
|  |  | S29 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S29 org.h2.schema.Schema.remove
|  |  | S29 org.h2.message.DbException.throwInternalError
|  |  | S29 RuntimeException
|  |  | S30 org.h2.store.PageStore.recover
|  |  | S30 org.h2.store.PageStore.readMetaData
|  | 1 | S30 org.h2.store.PageStore.addMeta R6,R2
|  |  | S30 org.h2.table.RegularTable.addIndex
|  |  | S30 org.h2.engine.Database.addSchemaObject R1
|  |  | S30 org.h2.engine.Database.checkWritingAllowed
|  |  | S31 org.h2.store.PageStore.recover
|  |  | S31 org.h2.store.PageStore.readMetaData
|  | 1 | S31 org.h2.store.PageStore.addMeta R6,R2
|  |  | S31 org.h2.value.CompareMode.getInstance ??org.h2.value.CompareMode.this??
|  |  | S31 name.substring
|  |  | S32 org.h2.command.dml.Set.update
|  |  | S32 org.h2.engine.Session.commit R4
|  |  | S32 org.h2.engine.Database.flush R1
|  |  | S33 org.h2.command.dml.Set.update
|  |  | S33 org.h2.engine.Session.commit R4
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S33 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S33 FileUtils.tryDelete
| 1 |  | S34 org.h2.store.WriterThread.run R5
|  |  | S34 org.h2.engine.Database.flush R1
|  |  | S35 org.h2.store.PageStore.recover
|  |  | S35 org.h2.store.PageStore.readMetaData
|  | 1 | S35 org.h2.store.PageStore.addMeta R6,R2
|  |  | S35 c.substring
|  |  | S36 org.h2.engine.DatabaseCloser.run R8
|  |  | S36 org.h2.engine.Database.close R1
|  |  | S36 Engine.getInstance.close
|  |  | S37 org.h2.expression.SequenceValue.getValue
|  |  | S37 org.h2.schema.Sequence.getNext R9
|  |  | S37 org.h2.schema.Sequence.flush R3,R9
|  |  | S37 org.h2.engine.Database.update R1
|  |  | S37 org.h2.engine.Database.addMeta R1
|  |  | S37 org.h2.engine.Session.log
|  |  | S37 org.h2.message.DbException.throwInternalError
|  |  | S37 TraceSystem.traceThrowable
|  |  | S38 org.h2.engine.Engine.createSessionAndValidate
|  |  | S38 org.h2.engine.Engine.openSession R10,R11
|  |  | S38 org.h2.command.CommandInterface.executeUpdate
|  |  | S39 org.h2.engine.Engine.createSessionAndValidate
|  |  | S39 org.h2.engine.Engine.openSession R10,R11
|  |  | S39 org.h2.engine.Session.close
|  |  | S39 org.h2.engine.Database.checkPowerOff
|  |  | S39 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S39 serverSocket.close
|  |  | S40 org.h2.engine.Engine.createSessionAndValidate
|  |  | S40 org.h2.engine.Engine.openSession R10,R11
|  |  | S40 org.h2.engine.Session.close
|  |  | S40 org.h2.engine.Database.removeSession R1
|  |  | S40 org.h2.message.Trace.info
|  |  | S40 MessageFormat.format
|  |  | S41 org.h2.engine.Engine.createSessionAndValidate
|  |  | S41 org.h2.engine.Engine.openSession R10,R11
|  |  | S41 org.h2.engine.Session.prepareCommand ??org.h2.engine.Session.this??
|  |  | S42 org.h2.engine.Engine.createSessionAndValidate
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.command.CommandInterface.executeUpdate
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 map.put
No 2
| R0 | R1 |
|  |  | S0 org.h2.store.WriterThread.run R5
| 1 | 2 | S0 org.h2.engine.Database.checkpointIfRequired R0,R1
|  |  | S0 org.h2.engine.Database.checkpoint R1
|  |  | S0 org.h2.store.PageStore.checkpoint R2
|  |  | S0 org.h2.engine.Database.checkPowerOff
|  |  | S0 org.h2.message.TraceSystem.close
|  |  | S1 org.h2.store.PageStore.recover
|  |  | S1 org.h2.store.PageStore.readMetaData
|  |  | S1 org.h2.store.PageStore.addMeta R6,R2
|  |  | S1 org.h2.table.RegularTable.addIndex
|  | 1 | S1 org.h2.engine.Database.addSchemaObject R1
|  |  | S1 org.h2.schema.Schema.add
|  |  | S1 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S1 org.h2.schema.Schema.remove
|  |  | S1 org.h2.message.DbException.throwInternalError
|  |  | S1 RuntimeException
|  |  | S2 org.h2.store.PageStore.recover
|  |  | S2 org.h2.store.PageStore.readMetaData
|  |  | S2 org.h2.store.PageStore.addMeta R6,R2
|  |  | S2 org.h2.table.RegularTable.addIndex
|  | 1 | S2 org.h2.engine.Database.addSchemaObject R1
|  |  | S2 org.h2.engine.Database.addMeta R1
|  |  | S2 org.h2.engine.Session.log
|  |  | S2 org.h2.engine.UndoLog.add
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S2 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S2 FileUtils.tryDelete
|  |  | S3 org.h2.store.PageStore.recover
|  |  | S3 org.h2.store.PageStore.readMetaData
|  |  | S3 org.h2.store.PageStore.addMeta R6,R2
|  |  | S3 org.h2.table.RegularTable.addIndex
|  | 1 | S3 org.h2.engine.Database.addSchemaObject R1
|  |  | S3 org.h2.engine.Database.addMeta R1
|  |  | S3 org.h2.engine.Session.log
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.saveIfPossible
|  |  | S3 org.h2.engine.UndoLogRecord.save
|  |  | S3 org.h2.engine.UndoLogRecord.append
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.value.DataType.readValue
|  |  | S3 org.h2.store.LobStorage.createClob
|  |  | S3 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S3 org.h2.store.LobStorage.conn
|  |  | S4 org.h2.store.PageStore.recover
|  |  | S4 org.h2.store.PageStore.readMetaData
|  |  | S4 org.h2.store.PageStore.addMeta R6,R2
|  |  | S4 org.h2.table.RegularTable.addIndex
|  | 1 | S4 org.h2.engine.Database.addSchemaObject R1
|  |  | S4 org.h2.engine.Database.addMeta R1
|  |  | S4 org.h2.engine.Session.log
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.saveIfPossible
|  |  | S4 org.h2.engine.UndoLogRecord.save
|  |  | S4 org.h2.engine.UndoLogRecord.append
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S4 org.h2.value.ValueLob.link
|  |  | S4 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S4 FileUtils.copy
|  |  | S5 org.h2.store.PageStore.recover
|  |  | S5 org.h2.store.PageStore.readMetaData
|  |  | S5 org.h2.store.PageStore.addMeta R6,R2
|  |  | S5 org.h2.table.RegularTable.addIndex
|  | 1 | S5 org.h2.engine.Database.addSchemaObject R1
|  |  | S5 org.h2.engine.Database.addMeta R1
|  |  | S5 org.h2.engine.Session.log
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.saveIfPossible
|  |  | S5 org.h2.engine.UndoLogRecord.save
|  |  | S5 org.h2.engine.UndoLogRecord.append
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S5 org.h2.value.ValueLob.link
|  |  | S5 org.h2.value.ValueLob.getNewObjectId
|  |  | S5 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S5 cache.get
|  |  | S6 org.h2.store.PageStore.recover
|  |  | S6 org.h2.store.PageStore.readMetaData
|  |  | S6 org.h2.store.PageStore.addMeta R6,R2
|  |  | S6 org.h2.table.RegularTable.addIndex
|  | 1 | S6 org.h2.engine.Database.addSchemaObject R1
|  |  | S6 org.h2.engine.Database.addMeta R1
|  |  | S6 org.h2.engine.Session.log
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.saveIfPossible
|  |  | S6 org.h2.engine.UndoLogRecord.save
|  |  | S6 org.h2.engine.UndoLogRecord.append
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S6 org.h2.value.ValueLob.link
|  |  | S6 org.h2.value.ValueLob.getNewObjectId
|  |  | S6 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S6 cache.remove
|  |  | S7 org.h2.store.PageStore.recover
|  |  | S7 org.h2.store.PageStore.readMetaData
|  |  | S7 org.h2.store.PageStore.addMeta R6,R2
|  |  | S7 org.h2.table.RegularTable.addIndex
|  | 1 | S7 org.h2.engine.Database.addSchemaObject R1
|  |  | S7 org.h2.engine.Database.addMeta R1
|  |  | S7 org.h2.engine.Session.log
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.saveIfPossible
|  |  | S7 org.h2.engine.UndoLogRecord.save
|  |  | S7 org.h2.engine.UndoLogRecord.append
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S7 org.h2.value.ValueLob.createFromReader
|  |  | S7 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S7 org.h2.store.FileStore.autoDelete
|  |  | S7 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S7 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 FileUtils.tryDelete
|  |  | S8 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S8 org.h2.engine.Database.getPageStore
|  | 1 | S8 org.h2.engine.Database.open R1
| 2 |  | S8 org.h2.engine.Database.afterWriting R0
|  |  | S9 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S9 org.h2.engine.Database.getPageStore
|  | 1 | S9 org.h2.engine.Database.open R1
|  |  | S9 org.h2.schema.Schema.createTable R7
|  |  | S9 org.h2.engine.Database.lockMeta R1
|  |  | S9 org.h2.table.Table.isLockedExclusivelyBy
|  |  | S10 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S10 org.h2.engine.Database.getPageStore
|  | 1 | S10 org.h2.engine.Database.open R1
|  |  | S10 org.h2.engine.Database.recompileInvalidViews
|  |  | S10 org.h2.table.TableView.recompile ??org.h2.table.TableView.this??
|  |  | S10 indexCache.clear
|  |  | S11 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S11 org.h2.engine.Database.getPageStore
|  | 1 | S11 org.h2.engine.Database.open R1
|  |  | S11 org.h2.message.TraceSystem.setLevelFile
|  |  | S11 org.h2.message.TraceSystem.write
|  |  | S11 org.h2.message.TraceSystem.format ??org.h2.message.TraceSystem.this??
|  |  | S11 org.h2.message.TraceSystem.format.SimpleDateFormat
|  | 1 | S12 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S12 org.h2.engine.Database.closeFiles R1
|  |  | S12 org.h2.store.PageStore.close R2
|  |  | S12 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
|  | 1 | S13 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S13 org.h2.engine.Session.close
|  |  | S13 org.h2.engine.Database.checkPowerOff
|  |  | S13 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S13 serverSocket.close
|  |  | S14 org.h2.command.dml.BackupCommand.update
|  |  | S14 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
|  | 1 | S14 org.h2.engine.Database.close R1
|  |  | S14 org.h2.engine.DatabaseCloser.reset R8
|  |  | S14 start
|  |  | S15 org.h2.command.dml.BackupCommand.update
|  |  | S15 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
|  | 1 | S15 org.h2.engine.Database.close R1
|  |  | S15 org.h2.schema.Sequence.close
|  |  | S15 org.h2.schema.Sequence.flushWithoutMargin
|  |  | S15 org.h2.schema.Sequence.flush R3,R9
|  |  | S15 org.h2.engine.Database.update R1
|  |  | S15 org.h2.engine.Database.addMeta R1
|  |  | S15 org.h2.engine.MetaRecord
|  |  | S16 org.h2.command.dml.BackupCommand.update
|  |  | S16 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
|  | 1 | S16 org.h2.engine.Database.close R1
|  |  | S16 org.h2.engine.Database.closeAllSessionsException R1
|  |  | S16 org.h2.engine.Session.rollback
|  |  | S16 org.h2.engine.Session.unlockAll R4
|  |  | S16 org.h2.message.DbException.throwInternalError
|  |  | S16 TraceSystem.traceThrowable
|  |  | S17 org.h2.store.PageStore.recover
|  |  | S17 org.h2.store.PageStore.readMetaData
|  |  | S17 org.h2.index.PageDataIndex.find
|  |  | S17 org.h2.index.PageDataIndex.getPage
|  |  | S17 org.h2.store.PageStore.logUndo R2
|  |  | S17 org.h2.store.PageStore.openForWriting
|  |  | S17 org.h2.store.PageStore.checkpoint R2
|  |  | S17 org.h2.engine.Database.checkPowerOff
|  |  | S17 org.h2.engine.Database.stopWriter
|  |  | S17 org.h2.store.WriterThread.stopThread R5
|  |  | S17 notify
|  |  | S18 org.h2.store.PageStore.recover
|  |  | S18 org.h2.store.PageStore.readMetaData
|  |  | S18 org.h2.index.PageDataIndex.find
|  |  | S18 org.h2.index.PageDataIndex.getPage
|  |  | S18 org.h2.store.PageStore.logUndo R2
|  |  | S18 org.h2.store.PageStore.openForWriting
|  |  | S18 org.h2.store.PageStore.checkpoint R2
|  |  | S18 org.h2.engine.Database.checkPowerOff
|  |  | S18 org.h2.message.TraceSystem.close
|  |  | S18 org.h2.message.TraceSystem.closeWriter ??org.h2.message.TraceSystem.this??
|  |  | S18 printWriter.flush
|  |  | S19 org.h2.store.PageStore.recover
|  |  | S19 org.h2.store.PageStore.readMetaData
|  |  | S19 org.h2.index.PageDataIndex.find
|  |  | S19 org.h2.index.PageDataIndex.getPage
|  |  | S19 org.h2.store.PageStore.logUndo R2
|  |  | S19 org.h2.store.PageStore.openForWriting
|  |  | S19 org.h2.store.PageStore.checkpoint R2
|  |  | S19 org.h2.engine.Database.checkPowerOff
|  |  | S19 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S19 serverSocket.close
|  |  | S20 org.h2.store.PageStore.recover
|  |  | S20 org.h2.store.PageStore.readMetaData
|  |  | S20 org.h2.index.PageDataIndex.find
|  |  | S20 org.h2.index.PageDataIndex.getPage
|  |  | S20 org.h2.store.PageStore.logUndo R2
|  |  | S20 org.h2.store.PageStore.openForWriting
|  |  | S20 org.h2.store.PageStore.checkpoint R2
|  |  | S20 org.h2.engine.Database.checkPowerOff
|  |  | S20 org.h2.store.PageStore.close R2
|  |  | S20 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
|  |  | S20 lock.release
|  |  | S21 org.h2.store.PageStore.recover
|  |  | S21 org.h2.store.PageStore.readMetaData
|  |  | S21 org.h2.store.PageStore.addMeta R6,R2
|  |  | S21 org.h2.index.PageDataIndex.add
|  |  | S21 org.h2.index.PageDataIndex.addTry
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S21 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S21 org.h2.result.Row.getByteCount
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.value.DataType.readValue
|  |  | S21 org.h2.store.LobStorage.createClob
|  |  | S21 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S21 org.h2.store.LobStorage.conn
|  |  | S22 org.h2.store.PageStore.recover
|  |  | S22 org.h2.store.PageStore.readMetaData
|  |  | S22 org.h2.store.PageStore.addMeta R6,R2
|  |  | S22 org.h2.index.PageDataIndex.add
|  |  | S22 org.h2.index.PageDataIndex.addTry
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S22 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S22 org.h2.result.Row.getByteCount
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S22 org.h2.value.ValueLob.link
|  |  | S22 org.h2.store.FileStore.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S22 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S22 FileUtils.tryDelete
|  |  | S23 org.h2.store.PageStore.recover
|  |  | S23 org.h2.store.PageStore.readMetaData
|  |  | S23 org.h2.store.PageStore.addMeta R6,R2
|  |  | S23 org.h2.index.PageDataIndex.add
|  |  | S23 org.h2.index.PageDataIndex.addTry
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S23 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S23 org.h2.result.Row.getByteCount
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S23 org.h2.value.ValueLob.link
|  |  | S23 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S23 FileUtils.copy
|  |  | S24 org.h2.store.PageStore.recover
|  |  | S24 org.h2.store.PageStore.readMetaData
|  |  | S24 org.h2.store.PageStore.addMeta R6,R2
|  |  | S24 org.h2.index.PageDataIndex.add
|  |  | S24 org.h2.index.PageDataIndex.addTry
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S24 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S24 org.h2.result.Row.getByteCount
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S24 org.h2.value.ValueLob.link
|  |  | S24 org.h2.value.ValueLob.getNewObjectId
|  |  | S24 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S24 cache.get
|  |  | S25 org.h2.store.PageStore.recover
|  |  | S25 org.h2.store.PageStore.readMetaData
|  |  | S25 org.h2.store.PageStore.addMeta R6,R2
|  |  | S25 org.h2.index.PageDataIndex.add
|  |  | S25 org.h2.index.PageDataIndex.addTry
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S25 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S25 org.h2.result.Row.getByteCount
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S25 org.h2.value.ValueLob.link
|  |  | S25 org.h2.value.ValueLob.getNewObjectId
|  |  | S25 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S25 cache.remove
|  |  | S26 org.h2.store.PageStore.recover
|  |  | S26 org.h2.store.PageStore.readMetaData
|  |  | S26 org.h2.store.PageStore.addMeta R6,R2
|  |  | S26 org.h2.index.PageDataIndex.add
|  |  | S26 org.h2.index.PageDataIndex.addTry
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S26 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S26 org.h2.result.Row.getByteCount
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S26 org.h2.value.ValueLob.createFromReader
|  |  | S26 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S26 org.h2.store.FileStore.autoDelete
|  |  | S26 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S26 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 FileUtils.tryDelete
|  |  | S27 org.h2.store.PageStore.recover
|  |  | S27 org.h2.store.PageStore.readMetaData
|  |  | S27 org.h2.store.PageStore.addMeta R6,R2
|  |  | S27 org.h2.index.PageDataIndex.add
|  |  | S27 org.h2.index.PageDataIndex.addTry
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S27 org.h2.schema.Schema.remove
|  |  | S27 org.h2.message.DbException.throwInternalError
|  |  | S27 RuntimeException
|  |  | S28 org.h2.store.PageStore.recover
|  |  | S28 org.h2.store.PageStore.readMetaData
|  |  | S28 org.h2.store.PageStore.addMeta R6,R2
|  |  | S28 org.h2.index.PageDataIndex.add
|  |  | S28 org.h2.index.PageDataIndex.addTry
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S28 org.h2.engine.Session.removeLocalTempTableIndex R4
|  |  | S28 org.h2.engine.DbObject.removeChildrenAndResources
|  |  | S29 org.h2.store.PageStore.recover
|  |  | S29 org.h2.store.PageStore.readMetaData
|  |  | S29 org.h2.store.PageStore.addMeta R6,R2
|  |  | S29 org.h2.schema.Schema.add
|  |  | S29 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S29 org.h2.schema.Schema.remove
|  |  | S29 org.h2.message.DbException.throwInternalError
|  |  | S29 RuntimeException
|  |  | S30 org.h2.store.PageStore.recover
|  |  | S30 org.h2.store.PageStore.readMetaData
|  |  | S30 org.h2.store.PageStore.addMeta R6,R2
|  |  | S30 org.h2.table.RegularTable.addIndex
|  | 1 | S30 org.h2.engine.Database.addSchemaObject R1
|  |  | S30 org.h2.engine.Database.checkWritingAllowed
|  |  | S31 org.h2.store.PageStore.recover
|  |  | S31 org.h2.store.PageStore.readMetaData
|  |  | S31 org.h2.store.PageStore.addMeta R6,R2
|  |  | S31 org.h2.value.CompareMode.getInstance ??org.h2.value.CompareMode.this??
|  |  | S31 name.substring
|  |  | S32 org.h2.command.dml.Set.update
|  |  | S32 org.h2.engine.Session.commit R4
|  | 1 | S32 org.h2.engine.Database.flush R1
|  |  | S33 org.h2.command.dml.Set.update
|  |  | S33 org.h2.engine.Session.commit R4
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S33 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S33 FileUtils.tryDelete
|  |  | S34 org.h2.store.WriterThread.run R5
|  | 1 | S34 org.h2.engine.Database.flush R1
|  |  | S35 org.h2.store.PageStore.recover
|  |  | S35 org.h2.store.PageStore.readMetaData
|  |  | S35 org.h2.store.PageStore.addMeta R6,R2
|  |  | S35 c.substring
|  |  | S36 org.h2.engine.DatabaseCloser.run R8
|  | 1 | S36 org.h2.engine.Database.close R1
|  |  | S36 Engine.getInstance.close
|  |  | S37 org.h2.expression.SequenceValue.getValue
|  |  | S37 org.h2.schema.Sequence.getNext R9
|  |  | S37 org.h2.schema.Sequence.flush R3,R9
|  | 1 | S37 org.h2.engine.Database.update R1
|  |  | S37 org.h2.engine.Database.addMeta R1
|  |  | S37 org.h2.engine.Session.log
|  |  | S37 org.h2.message.DbException.throwInternalError
|  |  | S37 TraceSystem.traceThrowable
|  |  | S38 org.h2.engine.Engine.createSessionAndValidate
|  |  | S38 org.h2.engine.Engine.openSession R10,R11
|  |  | S38 org.h2.command.CommandInterface.executeUpdate
|  |  | S39 org.h2.engine.Engine.createSessionAndValidate
|  |  | S39 org.h2.engine.Engine.openSession R10,R11
|  |  | S39 org.h2.engine.Session.close
|  |  | S39 org.h2.engine.Database.checkPowerOff
|  |  | S39 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S39 serverSocket.close
|  |  | S40 org.h2.engine.Engine.createSessionAndValidate
|  |  | S40 org.h2.engine.Engine.openSession R10,R11
|  |  | S40 org.h2.engine.Session.close
|  | 1 | S40 org.h2.engine.Database.removeSession R1
|  |  | S40 org.h2.message.Trace.info
|  |  | S40 MessageFormat.format
|  |  | S41 org.h2.engine.Engine.createSessionAndValidate
|  |  | S41 org.h2.engine.Engine.openSession R10,R11
|  |  | S41 org.h2.engine.Session.prepareCommand ??org.h2.engine.Session.this??
|  |  | S42 org.h2.engine.Engine.createSessionAndValidate
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.command.CommandInterface.executeUpdate
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 map.put
No 3
| R1 | R2 |
|  |  | S0 org.h2.store.WriterThread.run R5
| 1 |  | S0 org.h2.engine.Database.checkpointIfRequired R0,R1
|  |  | S0 org.h2.engine.Database.checkpoint R1
|  | 2 | S0 org.h2.store.PageStore.checkpoint R2
|  |  | S0 org.h2.engine.Database.checkPowerOff
|  |  | S0 org.h2.message.TraceSystem.close
|  |  | S1 org.h2.store.PageStore.recover
|  |  | S1 org.h2.store.PageStore.readMetaData
|  | 1 | S1 org.h2.store.PageStore.addMeta R6,R2
|  |  | S1 org.h2.table.RegularTable.addIndex
| 2 |  | S1 org.h2.engine.Database.addSchemaObject R1
|  |  | S1 org.h2.schema.Schema.add
|  |  | S1 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S1 org.h2.schema.Schema.remove
|  |  | S1 org.h2.message.DbException.throwInternalError
|  |  | S1 RuntimeException
|  |  | S2 org.h2.store.PageStore.recover
|  |  | S2 org.h2.store.PageStore.readMetaData
|  | 1 | S2 org.h2.store.PageStore.addMeta R6,R2
|  |  | S2 org.h2.table.RegularTable.addIndex
| 2 |  | S2 org.h2.engine.Database.addSchemaObject R1
|  |  | S2 org.h2.engine.Database.addMeta R1
|  |  | S2 org.h2.engine.Session.log
|  |  | S2 org.h2.engine.UndoLog.add
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S2 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S2 FileUtils.tryDelete
|  |  | S3 org.h2.store.PageStore.recover
|  |  | S3 org.h2.store.PageStore.readMetaData
|  | 1 | S3 org.h2.store.PageStore.addMeta R6,R2
|  |  | S3 org.h2.table.RegularTable.addIndex
| 2 |  | S3 org.h2.engine.Database.addSchemaObject R1
|  |  | S3 org.h2.engine.Database.addMeta R1
|  |  | S3 org.h2.engine.Session.log
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.saveIfPossible
|  |  | S3 org.h2.engine.UndoLogRecord.save
|  |  | S3 org.h2.engine.UndoLogRecord.append
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.value.DataType.readValue
|  |  | S3 org.h2.store.LobStorage.createClob
|  |  | S3 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S3 org.h2.store.LobStorage.conn
|  |  | S4 org.h2.store.PageStore.recover
|  |  | S4 org.h2.store.PageStore.readMetaData
|  | 1 | S4 org.h2.store.PageStore.addMeta R6,R2
|  |  | S4 org.h2.table.RegularTable.addIndex
| 2 |  | S4 org.h2.engine.Database.addSchemaObject R1
|  |  | S4 org.h2.engine.Database.addMeta R1
|  |  | S4 org.h2.engine.Session.log
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.saveIfPossible
|  |  | S4 org.h2.engine.UndoLogRecord.save
|  |  | S4 org.h2.engine.UndoLogRecord.append
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S4 org.h2.value.ValueLob.link
|  |  | S4 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S4 FileUtils.copy
|  |  | S5 org.h2.store.PageStore.recover
|  |  | S5 org.h2.store.PageStore.readMetaData
|  | 1 | S5 org.h2.store.PageStore.addMeta R6,R2
|  |  | S5 org.h2.table.RegularTable.addIndex
| 2 |  | S5 org.h2.engine.Database.addSchemaObject R1
|  |  | S5 org.h2.engine.Database.addMeta R1
|  |  | S5 org.h2.engine.Session.log
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.saveIfPossible
|  |  | S5 org.h2.engine.UndoLogRecord.save
|  |  | S5 org.h2.engine.UndoLogRecord.append
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S5 org.h2.value.ValueLob.link
|  |  | S5 org.h2.value.ValueLob.getNewObjectId
|  |  | S5 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S5 cache.get
|  |  | S6 org.h2.store.PageStore.recover
|  |  | S6 org.h2.store.PageStore.readMetaData
|  | 1 | S6 org.h2.store.PageStore.addMeta R6,R2
|  |  | S6 org.h2.table.RegularTable.addIndex
| 2 |  | S6 org.h2.engine.Database.addSchemaObject R1
|  |  | S6 org.h2.engine.Database.addMeta R1
|  |  | S6 org.h2.engine.Session.log
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.saveIfPossible
|  |  | S6 org.h2.engine.UndoLogRecord.save
|  |  | S6 org.h2.engine.UndoLogRecord.append
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S6 org.h2.value.ValueLob.link
|  |  | S6 org.h2.value.ValueLob.getNewObjectId
|  |  | S6 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S6 cache.remove
|  |  | S7 org.h2.store.PageStore.recover
|  |  | S7 org.h2.store.PageStore.readMetaData
|  | 1 | S7 org.h2.store.PageStore.addMeta R6,R2
|  |  | S7 org.h2.table.RegularTable.addIndex
| 2 |  | S7 org.h2.engine.Database.addSchemaObject R1
|  |  | S7 org.h2.engine.Database.addMeta R1
|  |  | S7 org.h2.engine.Session.log
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.saveIfPossible
|  |  | S7 org.h2.engine.UndoLogRecord.save
|  |  | S7 org.h2.engine.UndoLogRecord.append
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S7 org.h2.value.ValueLob.createFromReader
|  |  | S7 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S7 org.h2.store.FileStore.autoDelete
|  |  | S7 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S7 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 FileUtils.tryDelete
|  |  | S8 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S8 org.h2.engine.Database.getPageStore
| 1 |  | S8 org.h2.engine.Database.open R1
|  |  | S8 org.h2.engine.Database.afterWriting R0
|  |  | S9 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S9 org.h2.engine.Database.getPageStore
| 1 |  | S9 org.h2.engine.Database.open R1
|  |  | S9 org.h2.schema.Schema.createTable R7
|  |  | S9 org.h2.engine.Database.lockMeta R1
|  |  | S9 org.h2.table.Table.isLockedExclusivelyBy
|  |  | S10 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S10 org.h2.engine.Database.getPageStore
| 1 |  | S10 org.h2.engine.Database.open R1
|  |  | S10 org.h2.engine.Database.recompileInvalidViews
|  |  | S10 org.h2.table.TableView.recompile ??org.h2.table.TableView.this??
|  |  | S10 indexCache.clear
|  |  | S11 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S11 org.h2.engine.Database.getPageStore
| 1 |  | S11 org.h2.engine.Database.open R1
|  |  | S11 org.h2.message.TraceSystem.setLevelFile
|  |  | S11 org.h2.message.TraceSystem.write
|  |  | S11 org.h2.message.TraceSystem.format ??org.h2.message.TraceSystem.this??
|  |  | S11 org.h2.message.TraceSystem.format.SimpleDateFormat
| 1 |  | S12 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S12 org.h2.engine.Database.closeFiles R1
|  | 2 | S12 org.h2.store.PageStore.close R2
|  |  | S12 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
| 1 |  | S13 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S13 org.h2.engine.Session.close
|  |  | S13 org.h2.engine.Database.checkPowerOff
|  |  | S13 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S13 serverSocket.close
|  |  | S14 org.h2.command.dml.BackupCommand.update
|  |  | S14 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S14 org.h2.engine.Database.close R1
|  |  | S14 org.h2.engine.DatabaseCloser.reset R8
|  |  | S14 start
|  |  | S15 org.h2.command.dml.BackupCommand.update
|  |  | S15 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S15 org.h2.engine.Database.close R1
|  |  | S15 org.h2.schema.Sequence.close
|  |  | S15 org.h2.schema.Sequence.flushWithoutMargin
|  |  | S15 org.h2.schema.Sequence.flush R3,R9
|  |  | S15 org.h2.engine.Database.update R1
|  |  | S15 org.h2.engine.Database.addMeta R1
|  |  | S15 org.h2.engine.MetaRecord
|  |  | S16 org.h2.command.dml.BackupCommand.update
|  |  | S16 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S16 org.h2.engine.Database.close R1
|  |  | S16 org.h2.engine.Database.closeAllSessionsException R1
|  |  | S16 org.h2.engine.Session.rollback
|  |  | S16 org.h2.engine.Session.unlockAll R4
|  |  | S16 org.h2.message.DbException.throwInternalError
|  |  | S16 TraceSystem.traceThrowable
|  |  | S17 org.h2.store.PageStore.recover
|  |  | S17 org.h2.store.PageStore.readMetaData
|  |  | S17 org.h2.index.PageDataIndex.find
|  |  | S17 org.h2.index.PageDataIndex.getPage
|  | 1 | S17 org.h2.store.PageStore.logUndo R2
|  |  | S17 org.h2.store.PageStore.openForWriting
|  |  | S17 org.h2.store.PageStore.checkpoint R2
|  |  | S17 org.h2.engine.Database.checkPowerOff
|  |  | S17 org.h2.engine.Database.stopWriter
|  |  | S17 org.h2.store.WriterThread.stopThread R5
|  |  | S17 notify
|  |  | S18 org.h2.store.PageStore.recover
|  |  | S18 org.h2.store.PageStore.readMetaData
|  |  | S18 org.h2.index.PageDataIndex.find
|  |  | S18 org.h2.index.PageDataIndex.getPage
|  | 1 | S18 org.h2.store.PageStore.logUndo R2
|  |  | S18 org.h2.store.PageStore.openForWriting
|  |  | S18 org.h2.store.PageStore.checkpoint R2
|  |  | S18 org.h2.engine.Database.checkPowerOff
|  |  | S18 org.h2.message.TraceSystem.close
|  |  | S18 org.h2.message.TraceSystem.closeWriter ??org.h2.message.TraceSystem.this??
|  |  | S18 printWriter.flush
|  |  | S19 org.h2.store.PageStore.recover
|  |  | S19 org.h2.store.PageStore.readMetaData
|  |  | S19 org.h2.index.PageDataIndex.find
|  |  | S19 org.h2.index.PageDataIndex.getPage
|  | 1 | S19 org.h2.store.PageStore.logUndo R2
|  |  | S19 org.h2.store.PageStore.openForWriting
|  |  | S19 org.h2.store.PageStore.checkpoint R2
|  |  | S19 org.h2.engine.Database.checkPowerOff
|  |  | S19 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S19 serverSocket.close
|  |  | S20 org.h2.store.PageStore.recover
|  |  | S20 org.h2.store.PageStore.readMetaData
|  |  | S20 org.h2.index.PageDataIndex.find
|  |  | S20 org.h2.index.PageDataIndex.getPage
|  | 1 | S20 org.h2.store.PageStore.logUndo R2
|  |  | S20 org.h2.store.PageStore.openForWriting
|  |  | S20 org.h2.store.PageStore.checkpoint R2
|  |  | S20 org.h2.engine.Database.checkPowerOff
|  |  | S20 org.h2.store.PageStore.close R2
|  |  | S20 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
|  |  | S20 lock.release
|  |  | S21 org.h2.store.PageStore.recover
|  |  | S21 org.h2.store.PageStore.readMetaData
|  | 1 | S21 org.h2.store.PageStore.addMeta R6,R2
|  |  | S21 org.h2.index.PageDataIndex.add
|  |  | S21 org.h2.index.PageDataIndex.addTry
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S21 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S21 org.h2.result.Row.getByteCount
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.value.DataType.readValue
|  |  | S21 org.h2.store.LobStorage.createClob
|  |  | S21 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S21 org.h2.store.LobStorage.conn
|  |  | S22 org.h2.store.PageStore.recover
|  |  | S22 org.h2.store.PageStore.readMetaData
|  | 1 | S22 org.h2.store.PageStore.addMeta R6,R2
|  |  | S22 org.h2.index.PageDataIndex.add
|  |  | S22 org.h2.index.PageDataIndex.addTry
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S22 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S22 org.h2.result.Row.getByteCount
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S22 org.h2.value.ValueLob.link
|  |  | S22 org.h2.store.FileStore.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S22 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S22 FileUtils.tryDelete
|  |  | S23 org.h2.store.PageStore.recover
|  |  | S23 org.h2.store.PageStore.readMetaData
|  | 1 | S23 org.h2.store.PageStore.addMeta R6,R2
|  |  | S23 org.h2.index.PageDataIndex.add
|  |  | S23 org.h2.index.PageDataIndex.addTry
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S23 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S23 org.h2.result.Row.getByteCount
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S23 org.h2.value.ValueLob.link
|  |  | S23 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S23 FileUtils.copy
|  |  | S24 org.h2.store.PageStore.recover
|  |  | S24 org.h2.store.PageStore.readMetaData
|  | 1 | S24 org.h2.store.PageStore.addMeta R6,R2
|  |  | S24 org.h2.index.PageDataIndex.add
|  |  | S24 org.h2.index.PageDataIndex.addTry
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S24 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S24 org.h2.result.Row.getByteCount
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S24 org.h2.value.ValueLob.link
|  |  | S24 org.h2.value.ValueLob.getNewObjectId
|  |  | S24 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S24 cache.get
|  |  | S25 org.h2.store.PageStore.recover
|  |  | S25 org.h2.store.PageStore.readMetaData
|  | 1 | S25 org.h2.store.PageStore.addMeta R6,R2
|  |  | S25 org.h2.index.PageDataIndex.add
|  |  | S25 org.h2.index.PageDataIndex.addTry
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S25 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S25 org.h2.result.Row.getByteCount
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S25 org.h2.value.ValueLob.link
|  |  | S25 org.h2.value.ValueLob.getNewObjectId
|  |  | S25 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S25 cache.remove
|  |  | S26 org.h2.store.PageStore.recover
|  |  | S26 org.h2.store.PageStore.readMetaData
|  | 1 | S26 org.h2.store.PageStore.addMeta R6,R2
|  |  | S26 org.h2.index.PageDataIndex.add
|  |  | S26 org.h2.index.PageDataIndex.addTry
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S26 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S26 org.h2.result.Row.getByteCount
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S26 org.h2.value.ValueLob.createFromReader
|  |  | S26 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S26 org.h2.store.FileStore.autoDelete
|  |  | S26 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S26 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 FileUtils.tryDelete
|  |  | S27 org.h2.store.PageStore.recover
|  |  | S27 org.h2.store.PageStore.readMetaData
|  | 1 | S27 org.h2.store.PageStore.addMeta R6,R2
|  |  | S27 org.h2.index.PageDataIndex.add
|  |  | S27 org.h2.index.PageDataIndex.addTry
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S27 org.h2.schema.Schema.remove
|  |  | S27 org.h2.message.DbException.throwInternalError
|  |  | S27 RuntimeException
|  |  | S28 org.h2.store.PageStore.recover
|  |  | S28 org.h2.store.PageStore.readMetaData
|  | 1 | S28 org.h2.store.PageStore.addMeta R6,R2
|  |  | S28 org.h2.index.PageDataIndex.add
|  |  | S28 org.h2.index.PageDataIndex.addTry
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S28 org.h2.engine.Session.removeLocalTempTableIndex R4
|  |  | S28 org.h2.engine.DbObject.removeChildrenAndResources
|  |  | S29 org.h2.store.PageStore.recover
|  |  | S29 org.h2.store.PageStore.readMetaData
|  | 1 | S29 org.h2.store.PageStore.addMeta R6,R2
|  |  | S29 org.h2.schema.Schema.add
|  |  | S29 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S29 org.h2.schema.Schema.remove
|  |  | S29 org.h2.message.DbException.throwInternalError
|  |  | S29 RuntimeException
|  |  | S30 org.h2.store.PageStore.recover
|  |  | S30 org.h2.store.PageStore.readMetaData
|  | 1 | S30 org.h2.store.PageStore.addMeta R6,R2
|  |  | S30 org.h2.table.RegularTable.addIndex
| 2 |  | S30 org.h2.engine.Database.addSchemaObject R1
|  |  | S30 org.h2.engine.Database.checkWritingAllowed
|  |  | S31 org.h2.store.PageStore.recover
|  |  | S31 org.h2.store.PageStore.readMetaData
|  | 1 | S31 org.h2.store.PageStore.addMeta R6,R2
|  |  | S31 org.h2.value.CompareMode.getInstance ??org.h2.value.CompareMode.this??
|  |  | S31 name.substring
|  |  | S32 org.h2.command.dml.Set.update
|  |  | S32 org.h2.engine.Session.commit R4
| 1 |  | S32 org.h2.engine.Database.flush R1
|  |  | S33 org.h2.command.dml.Set.update
|  |  | S33 org.h2.engine.Session.commit R4
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S33 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S33 FileUtils.tryDelete
|  |  | S34 org.h2.store.WriterThread.run R5
| 1 |  | S34 org.h2.engine.Database.flush R1
|  |  | S35 org.h2.store.PageStore.recover
|  |  | S35 org.h2.store.PageStore.readMetaData
|  | 1 | S35 org.h2.store.PageStore.addMeta R6,R2
|  |  | S35 c.substring
|  |  | S36 org.h2.engine.DatabaseCloser.run R8
| 1 |  | S36 org.h2.engine.Database.close R1
|  |  | S36 Engine.getInstance.close
|  |  | S37 org.h2.expression.SequenceValue.getValue
|  |  | S37 org.h2.schema.Sequence.getNext R9
|  |  | S37 org.h2.schema.Sequence.flush R3,R9
| 1 |  | S37 org.h2.engine.Database.update R1
|  |  | S37 org.h2.engine.Database.addMeta R1
|  |  | S37 org.h2.engine.Session.log
|  |  | S37 org.h2.message.DbException.throwInternalError
|  |  | S37 TraceSystem.traceThrowable
|  |  | S38 org.h2.engine.Engine.createSessionAndValidate
|  |  | S38 org.h2.engine.Engine.openSession R10,R11
|  |  | S38 org.h2.command.CommandInterface.executeUpdate
|  |  | S39 org.h2.engine.Engine.createSessionAndValidate
|  |  | S39 org.h2.engine.Engine.openSession R10,R11
|  |  | S39 org.h2.engine.Session.close
|  |  | S39 org.h2.engine.Database.checkPowerOff
|  |  | S39 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S39 serverSocket.close
|  |  | S40 org.h2.engine.Engine.createSessionAndValidate
|  |  | S40 org.h2.engine.Engine.openSession R10,R11
|  |  | S40 org.h2.engine.Session.close
| 1 |  | S40 org.h2.engine.Database.removeSession R1
|  |  | S40 org.h2.message.Trace.info
|  |  | S40 MessageFormat.format
|  |  | S41 org.h2.engine.Engine.createSessionAndValidate
|  |  | S41 org.h2.engine.Engine.openSession R10,R11
|  |  | S41 org.h2.engine.Session.prepareCommand ??org.h2.engine.Session.this??
|  |  | S42 org.h2.engine.Engine.createSessionAndValidate
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.command.CommandInterface.executeUpdate
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 map.put
No 4
| R1 | R8 |
|  |  | S0 org.h2.store.WriterThread.run R5
| 1 |  | S0 org.h2.engine.Database.checkpointIfRequired R0,R1
|  |  | S0 org.h2.engine.Database.checkpoint R1
|  |  | S0 org.h2.store.PageStore.checkpoint R2
|  |  | S0 org.h2.engine.Database.checkPowerOff
|  |  | S0 org.h2.message.TraceSystem.close
|  |  | S1 org.h2.store.PageStore.recover
|  |  | S1 org.h2.store.PageStore.readMetaData
|  |  | S1 org.h2.store.PageStore.addMeta R6,R2
|  |  | S1 org.h2.table.RegularTable.addIndex
| 1 |  | S1 org.h2.engine.Database.addSchemaObject R1
|  |  | S1 org.h2.schema.Schema.add
|  |  | S1 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S1 org.h2.schema.Schema.remove
|  |  | S1 org.h2.message.DbException.throwInternalError
|  |  | S1 RuntimeException
|  |  | S2 org.h2.store.PageStore.recover
|  |  | S2 org.h2.store.PageStore.readMetaData
|  |  | S2 org.h2.store.PageStore.addMeta R6,R2
|  |  | S2 org.h2.table.RegularTable.addIndex
| 1 |  | S2 org.h2.engine.Database.addSchemaObject R1
|  |  | S2 org.h2.engine.Database.addMeta R1
|  |  | S2 org.h2.engine.Session.log
|  |  | S2 org.h2.engine.UndoLog.add
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S2 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S2 FileUtils.tryDelete
|  |  | S3 org.h2.store.PageStore.recover
|  |  | S3 org.h2.store.PageStore.readMetaData
|  |  | S3 org.h2.store.PageStore.addMeta R6,R2
|  |  | S3 org.h2.table.RegularTable.addIndex
| 1 |  | S3 org.h2.engine.Database.addSchemaObject R1
|  |  | S3 org.h2.engine.Database.addMeta R1
|  |  | S3 org.h2.engine.Session.log
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.saveIfPossible
|  |  | S3 org.h2.engine.UndoLogRecord.save
|  |  | S3 org.h2.engine.UndoLogRecord.append
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.value.DataType.readValue
|  |  | S3 org.h2.store.LobStorage.createClob
|  |  | S3 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S3 org.h2.store.LobStorage.conn
|  |  | S4 org.h2.store.PageStore.recover
|  |  | S4 org.h2.store.PageStore.readMetaData
|  |  | S4 org.h2.store.PageStore.addMeta R6,R2
|  |  | S4 org.h2.table.RegularTable.addIndex
| 1 |  | S4 org.h2.engine.Database.addSchemaObject R1
|  |  | S4 org.h2.engine.Database.addMeta R1
|  |  | S4 org.h2.engine.Session.log
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.saveIfPossible
|  |  | S4 org.h2.engine.UndoLogRecord.save
|  |  | S4 org.h2.engine.UndoLogRecord.append
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S4 org.h2.value.ValueLob.link
|  |  | S4 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S4 FileUtils.copy
|  |  | S5 org.h2.store.PageStore.recover
|  |  | S5 org.h2.store.PageStore.readMetaData
|  |  | S5 org.h2.store.PageStore.addMeta R6,R2
|  |  | S5 org.h2.table.RegularTable.addIndex
| 1 |  | S5 org.h2.engine.Database.addSchemaObject R1
|  |  | S5 org.h2.engine.Database.addMeta R1
|  |  | S5 org.h2.engine.Session.log
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.saveIfPossible
|  |  | S5 org.h2.engine.UndoLogRecord.save
|  |  | S5 org.h2.engine.UndoLogRecord.append
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S5 org.h2.value.ValueLob.link
|  |  | S5 org.h2.value.ValueLob.getNewObjectId
|  |  | S5 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S5 cache.get
|  |  | S6 org.h2.store.PageStore.recover
|  |  | S6 org.h2.store.PageStore.readMetaData
|  |  | S6 org.h2.store.PageStore.addMeta R6,R2
|  |  | S6 org.h2.table.RegularTable.addIndex
| 1 |  | S6 org.h2.engine.Database.addSchemaObject R1
|  |  | S6 org.h2.engine.Database.addMeta R1
|  |  | S6 org.h2.engine.Session.log
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.saveIfPossible
|  |  | S6 org.h2.engine.UndoLogRecord.save
|  |  | S6 org.h2.engine.UndoLogRecord.append
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S6 org.h2.value.ValueLob.link
|  |  | S6 org.h2.value.ValueLob.getNewObjectId
|  |  | S6 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S6 cache.remove
|  |  | S7 org.h2.store.PageStore.recover
|  |  | S7 org.h2.store.PageStore.readMetaData
|  |  | S7 org.h2.store.PageStore.addMeta R6,R2
|  |  | S7 org.h2.table.RegularTable.addIndex
| 1 |  | S7 org.h2.engine.Database.addSchemaObject R1
|  |  | S7 org.h2.engine.Database.addMeta R1
|  |  | S7 org.h2.engine.Session.log
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.saveIfPossible
|  |  | S7 org.h2.engine.UndoLogRecord.save
|  |  | S7 org.h2.engine.UndoLogRecord.append
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S7 org.h2.value.ValueLob.createFromReader
|  |  | S7 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S7 org.h2.store.FileStore.autoDelete
|  |  | S7 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S7 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 FileUtils.tryDelete
|  |  | S8 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S8 org.h2.engine.Database.getPageStore
| 1 |  | S8 org.h2.engine.Database.open R1
|  |  | S8 org.h2.engine.Database.afterWriting R0
|  |  | S9 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S9 org.h2.engine.Database.getPageStore
| 1 |  | S9 org.h2.engine.Database.open R1
|  |  | S9 org.h2.schema.Schema.createTable R7
|  |  | S9 org.h2.engine.Database.lockMeta R1
|  |  | S9 org.h2.table.Table.isLockedExclusivelyBy
|  |  | S10 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S10 org.h2.engine.Database.getPageStore
| 1 |  | S10 org.h2.engine.Database.open R1
|  |  | S10 org.h2.engine.Database.recompileInvalidViews
|  |  | S10 org.h2.table.TableView.recompile ??org.h2.table.TableView.this??
|  |  | S10 indexCache.clear
|  |  | S11 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S11 org.h2.engine.Database.getPageStore
| 1 |  | S11 org.h2.engine.Database.open R1
|  |  | S11 org.h2.message.TraceSystem.setLevelFile
|  |  | S11 org.h2.message.TraceSystem.write
|  |  | S11 org.h2.message.TraceSystem.format ??org.h2.message.TraceSystem.this??
|  |  | S11 org.h2.message.TraceSystem.format.SimpleDateFormat
| 1 |  | S12 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S12 org.h2.engine.Database.closeFiles R1
|  |  | S12 org.h2.store.PageStore.close R2
|  |  | S12 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
| 1 |  | S13 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S13 org.h2.engine.Session.close
|  |  | S13 org.h2.engine.Database.checkPowerOff
|  |  | S13 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S13 serverSocket.close
|  |  | S14 org.h2.command.dml.BackupCommand.update
|  |  | S14 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S14 org.h2.engine.Database.close R1
|  | 2 | S14 org.h2.engine.DatabaseCloser.reset R8
|  |  | S14 start
|  |  | S15 org.h2.command.dml.BackupCommand.update
|  |  | S15 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S15 org.h2.engine.Database.close R1
|  |  | S15 org.h2.schema.Sequence.close
|  |  | S15 org.h2.schema.Sequence.flushWithoutMargin
|  |  | S15 org.h2.schema.Sequence.flush R3,R9
|  |  | S15 org.h2.engine.Database.update R1
|  |  | S15 org.h2.engine.Database.addMeta R1
|  |  | S15 org.h2.engine.MetaRecord
|  |  | S16 org.h2.command.dml.BackupCommand.update
|  |  | S16 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S16 org.h2.engine.Database.close R1
|  |  | S16 org.h2.engine.Database.closeAllSessionsException R1
|  |  | S16 org.h2.engine.Session.rollback
|  |  | S16 org.h2.engine.Session.unlockAll R4
|  |  | S16 org.h2.message.DbException.throwInternalError
|  |  | S16 TraceSystem.traceThrowable
|  |  | S17 org.h2.store.PageStore.recover
|  |  | S17 org.h2.store.PageStore.readMetaData
|  |  | S17 org.h2.index.PageDataIndex.find
|  |  | S17 org.h2.index.PageDataIndex.getPage
|  |  | S17 org.h2.store.PageStore.logUndo R2
|  |  | S17 org.h2.store.PageStore.openForWriting
|  |  | S17 org.h2.store.PageStore.checkpoint R2
|  |  | S17 org.h2.engine.Database.checkPowerOff
|  |  | S17 org.h2.engine.Database.stopWriter
|  |  | S17 org.h2.store.WriterThread.stopThread R5
|  |  | S17 notify
|  |  | S18 org.h2.store.PageStore.recover
|  |  | S18 org.h2.store.PageStore.readMetaData
|  |  | S18 org.h2.index.PageDataIndex.find
|  |  | S18 org.h2.index.PageDataIndex.getPage
|  |  | S18 org.h2.store.PageStore.logUndo R2
|  |  | S18 org.h2.store.PageStore.openForWriting
|  |  | S18 org.h2.store.PageStore.checkpoint R2
|  |  | S18 org.h2.engine.Database.checkPowerOff
|  |  | S18 org.h2.message.TraceSystem.close
|  |  | S18 org.h2.message.TraceSystem.closeWriter ??org.h2.message.TraceSystem.this??
|  |  | S18 printWriter.flush
|  |  | S19 org.h2.store.PageStore.recover
|  |  | S19 org.h2.store.PageStore.readMetaData
|  |  | S19 org.h2.index.PageDataIndex.find
|  |  | S19 org.h2.index.PageDataIndex.getPage
|  |  | S19 org.h2.store.PageStore.logUndo R2
|  |  | S19 org.h2.store.PageStore.openForWriting
|  |  | S19 org.h2.store.PageStore.checkpoint R2
|  |  | S19 org.h2.engine.Database.checkPowerOff
|  |  | S19 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S19 serverSocket.close
|  |  | S20 org.h2.store.PageStore.recover
|  |  | S20 org.h2.store.PageStore.readMetaData
|  |  | S20 org.h2.index.PageDataIndex.find
|  |  | S20 org.h2.index.PageDataIndex.getPage
|  |  | S20 org.h2.store.PageStore.logUndo R2
|  |  | S20 org.h2.store.PageStore.openForWriting
|  |  | S20 org.h2.store.PageStore.checkpoint R2
|  |  | S20 org.h2.engine.Database.checkPowerOff
|  |  | S20 org.h2.store.PageStore.close R2
|  |  | S20 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
|  |  | S20 lock.release
|  |  | S21 org.h2.store.PageStore.recover
|  |  | S21 org.h2.store.PageStore.readMetaData
|  |  | S21 org.h2.store.PageStore.addMeta R6,R2
|  |  | S21 org.h2.index.PageDataIndex.add
|  |  | S21 org.h2.index.PageDataIndex.addTry
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S21 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S21 org.h2.result.Row.getByteCount
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.value.DataType.readValue
|  |  | S21 org.h2.store.LobStorage.createClob
|  |  | S21 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S21 org.h2.store.LobStorage.conn
|  |  | S22 org.h2.store.PageStore.recover
|  |  | S22 org.h2.store.PageStore.readMetaData
|  |  | S22 org.h2.store.PageStore.addMeta R6,R2
|  |  | S22 org.h2.index.PageDataIndex.add
|  |  | S22 org.h2.index.PageDataIndex.addTry
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S22 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S22 org.h2.result.Row.getByteCount
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S22 org.h2.value.ValueLob.link
|  |  | S22 org.h2.store.FileStore.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S22 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S22 FileUtils.tryDelete
|  |  | S23 org.h2.store.PageStore.recover
|  |  | S23 org.h2.store.PageStore.readMetaData
|  |  | S23 org.h2.store.PageStore.addMeta R6,R2
|  |  | S23 org.h2.index.PageDataIndex.add
|  |  | S23 org.h2.index.PageDataIndex.addTry
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S23 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S23 org.h2.result.Row.getByteCount
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S23 org.h2.value.ValueLob.link
|  |  | S23 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S23 FileUtils.copy
|  |  | S24 org.h2.store.PageStore.recover
|  |  | S24 org.h2.store.PageStore.readMetaData
|  |  | S24 org.h2.store.PageStore.addMeta R6,R2
|  |  | S24 org.h2.index.PageDataIndex.add
|  |  | S24 org.h2.index.PageDataIndex.addTry
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S24 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S24 org.h2.result.Row.getByteCount
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S24 org.h2.value.ValueLob.link
|  |  | S24 org.h2.value.ValueLob.getNewObjectId
|  |  | S24 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S24 cache.get
|  |  | S25 org.h2.store.PageStore.recover
|  |  | S25 org.h2.store.PageStore.readMetaData
|  |  | S25 org.h2.store.PageStore.addMeta R6,R2
|  |  | S25 org.h2.index.PageDataIndex.add
|  |  | S25 org.h2.index.PageDataIndex.addTry
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S25 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S25 org.h2.result.Row.getByteCount
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S25 org.h2.value.ValueLob.link
|  |  | S25 org.h2.value.ValueLob.getNewObjectId
|  |  | S25 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S25 cache.remove
|  |  | S26 org.h2.store.PageStore.recover
|  |  | S26 org.h2.store.PageStore.readMetaData
|  |  | S26 org.h2.store.PageStore.addMeta R6,R2
|  |  | S26 org.h2.index.PageDataIndex.add
|  |  | S26 org.h2.index.PageDataIndex.addTry
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S26 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S26 org.h2.result.Row.getByteCount
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S26 org.h2.value.ValueLob.createFromReader
|  |  | S26 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S26 org.h2.store.FileStore.autoDelete
|  |  | S26 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S26 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 FileUtils.tryDelete
|  |  | S27 org.h2.store.PageStore.recover
|  |  | S27 org.h2.store.PageStore.readMetaData
|  |  | S27 org.h2.store.PageStore.addMeta R6,R2
|  |  | S27 org.h2.index.PageDataIndex.add
|  |  | S27 org.h2.index.PageDataIndex.addTry
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S27 org.h2.schema.Schema.remove
|  |  | S27 org.h2.message.DbException.throwInternalError
|  |  | S27 RuntimeException
|  |  | S28 org.h2.store.PageStore.recover
|  |  | S28 org.h2.store.PageStore.readMetaData
|  |  | S28 org.h2.store.PageStore.addMeta R6,R2
|  |  | S28 org.h2.index.PageDataIndex.add
|  |  | S28 org.h2.index.PageDataIndex.addTry
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S28 org.h2.engine.Session.removeLocalTempTableIndex R4
|  |  | S28 org.h2.engine.DbObject.removeChildrenAndResources
|  |  | S29 org.h2.store.PageStore.recover
|  |  | S29 org.h2.store.PageStore.readMetaData
|  |  | S29 org.h2.store.PageStore.addMeta R6,R2
|  |  | S29 org.h2.schema.Schema.add
|  |  | S29 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S29 org.h2.schema.Schema.remove
|  |  | S29 org.h2.message.DbException.throwInternalError
|  |  | S29 RuntimeException
|  |  | S30 org.h2.store.PageStore.recover
|  |  | S30 org.h2.store.PageStore.readMetaData
|  |  | S30 org.h2.store.PageStore.addMeta R6,R2
|  |  | S30 org.h2.table.RegularTable.addIndex
| 1 |  | S30 org.h2.engine.Database.addSchemaObject R1
|  |  | S30 org.h2.engine.Database.checkWritingAllowed
|  |  | S31 org.h2.store.PageStore.recover
|  |  | S31 org.h2.store.PageStore.readMetaData
|  |  | S31 org.h2.store.PageStore.addMeta R6,R2
|  |  | S31 org.h2.value.CompareMode.getInstance ??org.h2.value.CompareMode.this??
|  |  | S31 name.substring
|  |  | S32 org.h2.command.dml.Set.update
|  |  | S32 org.h2.engine.Session.commit R4
| 1 |  | S32 org.h2.engine.Database.flush R1
|  |  | S33 org.h2.command.dml.Set.update
|  |  | S33 org.h2.engine.Session.commit R4
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S33 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S33 FileUtils.tryDelete
|  |  | S34 org.h2.store.WriterThread.run R5
| 1 |  | S34 org.h2.engine.Database.flush R1
|  |  | S35 org.h2.store.PageStore.recover
|  |  | S35 org.h2.store.PageStore.readMetaData
|  |  | S35 org.h2.store.PageStore.addMeta R6,R2
|  |  | S35 c.substring
|  | 1 | S36 org.h2.engine.DatabaseCloser.run R8
| 2 |  | S36 org.h2.engine.Database.close R1
|  |  | S36 Engine.getInstance.close
|  |  | S37 org.h2.expression.SequenceValue.getValue
|  |  | S37 org.h2.schema.Sequence.getNext R9
|  |  | S37 org.h2.schema.Sequence.flush R3,R9
| 1 |  | S37 org.h2.engine.Database.update R1
|  |  | S37 org.h2.engine.Database.addMeta R1
|  |  | S37 org.h2.engine.Session.log
|  |  | S37 org.h2.message.DbException.throwInternalError
|  |  | S37 TraceSystem.traceThrowable
|  |  | S38 org.h2.engine.Engine.createSessionAndValidate
|  |  | S38 org.h2.engine.Engine.openSession R10,R11
|  |  | S38 org.h2.command.CommandInterface.executeUpdate
|  |  | S39 org.h2.engine.Engine.createSessionAndValidate
|  |  | S39 org.h2.engine.Engine.openSession R10,R11
|  |  | S39 org.h2.engine.Session.close
|  |  | S39 org.h2.engine.Database.checkPowerOff
|  |  | S39 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S39 serverSocket.close
|  |  | S40 org.h2.engine.Engine.createSessionAndValidate
|  |  | S40 org.h2.engine.Engine.openSession R10,R11
|  |  | S40 org.h2.engine.Session.close
| 1 |  | S40 org.h2.engine.Database.removeSession R1
|  |  | S40 org.h2.message.Trace.info
|  |  | S40 MessageFormat.format
|  |  | S41 org.h2.engine.Engine.createSessionAndValidate
|  |  | S41 org.h2.engine.Engine.openSession R10,R11
|  |  | S41 org.h2.engine.Session.prepareCommand ??org.h2.engine.Session.this??
|  |  | S42 org.h2.engine.Engine.createSessionAndValidate
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.command.CommandInterface.executeUpdate
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 map.put
No 5
| R1 | R3 |
|  |  | S0 org.h2.store.WriterThread.run R5
| 1 |  | S0 org.h2.engine.Database.checkpointIfRequired R0,R1
|  |  | S0 org.h2.engine.Database.checkpoint R1
|  |  | S0 org.h2.store.PageStore.checkpoint R2
|  |  | S0 org.h2.engine.Database.checkPowerOff
|  |  | S0 org.h2.message.TraceSystem.close
|  |  | S1 org.h2.store.PageStore.recover
|  |  | S1 org.h2.store.PageStore.readMetaData
|  |  | S1 org.h2.store.PageStore.addMeta R6,R2
|  |  | S1 org.h2.table.RegularTable.addIndex
| 1 |  | S1 org.h2.engine.Database.addSchemaObject R1
|  |  | S1 org.h2.schema.Schema.add
|  |  | S1 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S1 org.h2.schema.Schema.remove
|  |  | S1 org.h2.message.DbException.throwInternalError
|  |  | S1 RuntimeException
|  |  | S2 org.h2.store.PageStore.recover
|  |  | S2 org.h2.store.PageStore.readMetaData
|  |  | S2 org.h2.store.PageStore.addMeta R6,R2
|  |  | S2 org.h2.table.RegularTable.addIndex
| 1 |  | S2 org.h2.engine.Database.addSchemaObject R1
|  |  | S2 org.h2.engine.Database.addMeta R1
|  |  | S2 org.h2.engine.Session.log
|  |  | S2 org.h2.engine.UndoLog.add
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S2 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S2 FileUtils.tryDelete
|  |  | S3 org.h2.store.PageStore.recover
|  |  | S3 org.h2.store.PageStore.readMetaData
|  |  | S3 org.h2.store.PageStore.addMeta R6,R2
|  |  | S3 org.h2.table.RegularTable.addIndex
| 1 |  | S3 org.h2.engine.Database.addSchemaObject R1
|  |  | S3 org.h2.engine.Database.addMeta R1
|  |  | S3 org.h2.engine.Session.log
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.saveIfPossible
|  |  | S3 org.h2.engine.UndoLogRecord.save
|  |  | S3 org.h2.engine.UndoLogRecord.append
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.value.DataType.readValue
|  |  | S3 org.h2.store.LobStorage.createClob
|  |  | S3 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S3 org.h2.store.LobStorage.conn
|  |  | S4 org.h2.store.PageStore.recover
|  |  | S4 org.h2.store.PageStore.readMetaData
|  |  | S4 org.h2.store.PageStore.addMeta R6,R2
|  |  | S4 org.h2.table.RegularTable.addIndex
| 1 |  | S4 org.h2.engine.Database.addSchemaObject R1
|  |  | S4 org.h2.engine.Database.addMeta R1
|  |  | S4 org.h2.engine.Session.log
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.saveIfPossible
|  |  | S4 org.h2.engine.UndoLogRecord.save
|  |  | S4 org.h2.engine.UndoLogRecord.append
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S4 org.h2.value.ValueLob.link
|  |  | S4 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S4 FileUtils.copy
|  |  | S5 org.h2.store.PageStore.recover
|  |  | S5 org.h2.store.PageStore.readMetaData
|  |  | S5 org.h2.store.PageStore.addMeta R6,R2
|  |  | S5 org.h2.table.RegularTable.addIndex
| 1 |  | S5 org.h2.engine.Database.addSchemaObject R1
|  |  | S5 org.h2.engine.Database.addMeta R1
|  |  | S5 org.h2.engine.Session.log
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.saveIfPossible
|  |  | S5 org.h2.engine.UndoLogRecord.save
|  |  | S5 org.h2.engine.UndoLogRecord.append
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S5 org.h2.value.ValueLob.link
|  |  | S5 org.h2.value.ValueLob.getNewObjectId
|  |  | S5 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S5 cache.get
|  |  | S6 org.h2.store.PageStore.recover
|  |  | S6 org.h2.store.PageStore.readMetaData
|  |  | S6 org.h2.store.PageStore.addMeta R6,R2
|  |  | S6 org.h2.table.RegularTable.addIndex
| 1 |  | S6 org.h2.engine.Database.addSchemaObject R1
|  |  | S6 org.h2.engine.Database.addMeta R1
|  |  | S6 org.h2.engine.Session.log
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.saveIfPossible
|  |  | S6 org.h2.engine.UndoLogRecord.save
|  |  | S6 org.h2.engine.UndoLogRecord.append
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S6 org.h2.value.ValueLob.link
|  |  | S6 org.h2.value.ValueLob.getNewObjectId
|  |  | S6 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S6 cache.remove
|  |  | S7 org.h2.store.PageStore.recover
|  |  | S7 org.h2.store.PageStore.readMetaData
|  |  | S7 org.h2.store.PageStore.addMeta R6,R2
|  |  | S7 org.h2.table.RegularTable.addIndex
| 1 |  | S7 org.h2.engine.Database.addSchemaObject R1
|  |  | S7 org.h2.engine.Database.addMeta R1
|  |  | S7 org.h2.engine.Session.log
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.saveIfPossible
|  |  | S7 org.h2.engine.UndoLogRecord.save
|  |  | S7 org.h2.engine.UndoLogRecord.append
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S7 org.h2.value.ValueLob.createFromReader
|  |  | S7 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S7 org.h2.store.FileStore.autoDelete
|  |  | S7 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S7 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 FileUtils.tryDelete
|  |  | S8 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S8 org.h2.engine.Database.getPageStore
| 1 |  | S8 org.h2.engine.Database.open R1
|  |  | S8 org.h2.engine.Database.afterWriting R0
|  |  | S9 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S9 org.h2.engine.Database.getPageStore
| 1 |  | S9 org.h2.engine.Database.open R1
|  |  | S9 org.h2.schema.Schema.createTable R7
|  |  | S9 org.h2.engine.Database.lockMeta R1
|  |  | S9 org.h2.table.Table.isLockedExclusivelyBy
|  |  | S10 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S10 org.h2.engine.Database.getPageStore
| 1 |  | S10 org.h2.engine.Database.open R1
|  |  | S10 org.h2.engine.Database.recompileInvalidViews
|  |  | S10 org.h2.table.TableView.recompile ??org.h2.table.TableView.this??
|  |  | S10 indexCache.clear
|  |  | S11 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S11 org.h2.engine.Database.getPageStore
| 1 |  | S11 org.h2.engine.Database.open R1
|  |  | S11 org.h2.message.TraceSystem.setLevelFile
|  |  | S11 org.h2.message.TraceSystem.write
|  |  | S11 org.h2.message.TraceSystem.format ??org.h2.message.TraceSystem.this??
|  |  | S11 org.h2.message.TraceSystem.format.SimpleDateFormat
| 1 |  | S12 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S12 org.h2.engine.Database.closeFiles R1
|  |  | S12 org.h2.store.PageStore.close R2
|  |  | S12 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
| 1 |  | S13 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S13 org.h2.engine.Session.close
|  |  | S13 org.h2.engine.Database.checkPowerOff
|  |  | S13 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S13 serverSocket.close
|  |  | S14 org.h2.command.dml.BackupCommand.update
|  |  | S14 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S14 org.h2.engine.Database.close R1
|  |  | S14 org.h2.engine.DatabaseCloser.reset R8
|  |  | S14 start
|  |  | S15 org.h2.command.dml.BackupCommand.update
|  |  | S15 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S15 org.h2.engine.Database.close R1
|  |  | S15 org.h2.schema.Sequence.close
|  |  | S15 org.h2.schema.Sequence.flushWithoutMargin
|  | 2 | S15 org.h2.schema.Sequence.flush R3,R9
|  |  | S15 org.h2.engine.Database.update R1
|  |  | S15 org.h2.engine.Database.addMeta R1
|  |  | S15 org.h2.engine.MetaRecord
|  |  | S16 org.h2.command.dml.BackupCommand.update
|  |  | S16 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S16 org.h2.engine.Database.close R1
|  |  | S16 org.h2.engine.Database.closeAllSessionsException R1
|  |  | S16 org.h2.engine.Session.rollback
|  |  | S16 org.h2.engine.Session.unlockAll R4
|  |  | S16 org.h2.message.DbException.throwInternalError
|  |  | S16 TraceSystem.traceThrowable
|  |  | S17 org.h2.store.PageStore.recover
|  |  | S17 org.h2.store.PageStore.readMetaData
|  |  | S17 org.h2.index.PageDataIndex.find
|  |  | S17 org.h2.index.PageDataIndex.getPage
|  |  | S17 org.h2.store.PageStore.logUndo R2
|  |  | S17 org.h2.store.PageStore.openForWriting
|  |  | S17 org.h2.store.PageStore.checkpoint R2
|  |  | S17 org.h2.engine.Database.checkPowerOff
|  |  | S17 org.h2.engine.Database.stopWriter
|  |  | S17 org.h2.store.WriterThread.stopThread R5
|  |  | S17 notify
|  |  | S18 org.h2.store.PageStore.recover
|  |  | S18 org.h2.store.PageStore.readMetaData
|  |  | S18 org.h2.index.PageDataIndex.find
|  |  | S18 org.h2.index.PageDataIndex.getPage
|  |  | S18 org.h2.store.PageStore.logUndo R2
|  |  | S18 org.h2.store.PageStore.openForWriting
|  |  | S18 org.h2.store.PageStore.checkpoint R2
|  |  | S18 org.h2.engine.Database.checkPowerOff
|  |  | S18 org.h2.message.TraceSystem.close
|  |  | S18 org.h2.message.TraceSystem.closeWriter ??org.h2.message.TraceSystem.this??
|  |  | S18 printWriter.flush
|  |  | S19 org.h2.store.PageStore.recover
|  |  | S19 org.h2.store.PageStore.readMetaData
|  |  | S19 org.h2.index.PageDataIndex.find
|  |  | S19 org.h2.index.PageDataIndex.getPage
|  |  | S19 org.h2.store.PageStore.logUndo R2
|  |  | S19 org.h2.store.PageStore.openForWriting
|  |  | S19 org.h2.store.PageStore.checkpoint R2
|  |  | S19 org.h2.engine.Database.checkPowerOff
|  |  | S19 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S19 serverSocket.close
|  |  | S20 org.h2.store.PageStore.recover
|  |  | S20 org.h2.store.PageStore.readMetaData
|  |  | S20 org.h2.index.PageDataIndex.find
|  |  | S20 org.h2.index.PageDataIndex.getPage
|  |  | S20 org.h2.store.PageStore.logUndo R2
|  |  | S20 org.h2.store.PageStore.openForWriting
|  |  | S20 org.h2.store.PageStore.checkpoint R2
|  |  | S20 org.h2.engine.Database.checkPowerOff
|  |  | S20 org.h2.store.PageStore.close R2
|  |  | S20 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
|  |  | S20 lock.release
|  |  | S21 org.h2.store.PageStore.recover
|  |  | S21 org.h2.store.PageStore.readMetaData
|  |  | S21 org.h2.store.PageStore.addMeta R6,R2
|  |  | S21 org.h2.index.PageDataIndex.add
|  |  | S21 org.h2.index.PageDataIndex.addTry
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S21 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S21 org.h2.result.Row.getByteCount
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.value.DataType.readValue
|  |  | S21 org.h2.store.LobStorage.createClob
|  |  | S21 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S21 org.h2.store.LobStorage.conn
|  |  | S22 org.h2.store.PageStore.recover
|  |  | S22 org.h2.store.PageStore.readMetaData
|  |  | S22 org.h2.store.PageStore.addMeta R6,R2
|  |  | S22 org.h2.index.PageDataIndex.add
|  |  | S22 org.h2.index.PageDataIndex.addTry
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S22 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S22 org.h2.result.Row.getByteCount
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S22 org.h2.value.ValueLob.link
|  |  | S22 org.h2.store.FileStore.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S22 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S22 FileUtils.tryDelete
|  |  | S23 org.h2.store.PageStore.recover
|  |  | S23 org.h2.store.PageStore.readMetaData
|  |  | S23 org.h2.store.PageStore.addMeta R6,R2
|  |  | S23 org.h2.index.PageDataIndex.add
|  |  | S23 org.h2.index.PageDataIndex.addTry
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S23 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S23 org.h2.result.Row.getByteCount
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S23 org.h2.value.ValueLob.link
|  |  | S23 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S23 FileUtils.copy
|  |  | S24 org.h2.store.PageStore.recover
|  |  | S24 org.h2.store.PageStore.readMetaData
|  |  | S24 org.h2.store.PageStore.addMeta R6,R2
|  |  | S24 org.h2.index.PageDataIndex.add
|  |  | S24 org.h2.index.PageDataIndex.addTry
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S24 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S24 org.h2.result.Row.getByteCount
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S24 org.h2.value.ValueLob.link
|  |  | S24 org.h2.value.ValueLob.getNewObjectId
|  |  | S24 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S24 cache.get
|  |  | S25 org.h2.store.PageStore.recover
|  |  | S25 org.h2.store.PageStore.readMetaData
|  |  | S25 org.h2.store.PageStore.addMeta R6,R2
|  |  | S25 org.h2.index.PageDataIndex.add
|  |  | S25 org.h2.index.PageDataIndex.addTry
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S25 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S25 org.h2.result.Row.getByteCount
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S25 org.h2.value.ValueLob.link
|  |  | S25 org.h2.value.ValueLob.getNewObjectId
|  |  | S25 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S25 cache.remove
|  |  | S26 org.h2.store.PageStore.recover
|  |  | S26 org.h2.store.PageStore.readMetaData
|  |  | S26 org.h2.store.PageStore.addMeta R6,R2
|  |  | S26 org.h2.index.PageDataIndex.add
|  |  | S26 org.h2.index.PageDataIndex.addTry
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S26 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S26 org.h2.result.Row.getByteCount
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S26 org.h2.value.ValueLob.createFromReader
|  |  | S26 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S26 org.h2.store.FileStore.autoDelete
|  |  | S26 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S26 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 FileUtils.tryDelete
|  |  | S27 org.h2.store.PageStore.recover
|  |  | S27 org.h2.store.PageStore.readMetaData
|  |  | S27 org.h2.store.PageStore.addMeta R6,R2
|  |  | S27 org.h2.index.PageDataIndex.add
|  |  | S27 org.h2.index.PageDataIndex.addTry
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S27 org.h2.schema.Schema.remove
|  |  | S27 org.h2.message.DbException.throwInternalError
|  |  | S27 RuntimeException
|  |  | S28 org.h2.store.PageStore.recover
|  |  | S28 org.h2.store.PageStore.readMetaData
|  |  | S28 org.h2.store.PageStore.addMeta R6,R2
|  |  | S28 org.h2.index.PageDataIndex.add
|  |  | S28 org.h2.index.PageDataIndex.addTry
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S28 org.h2.engine.Session.removeLocalTempTableIndex R4
|  |  | S28 org.h2.engine.DbObject.removeChildrenAndResources
|  |  | S29 org.h2.store.PageStore.recover
|  |  | S29 org.h2.store.PageStore.readMetaData
|  |  | S29 org.h2.store.PageStore.addMeta R6,R2
|  |  | S29 org.h2.schema.Schema.add
|  |  | S29 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S29 org.h2.schema.Schema.remove
|  |  | S29 org.h2.message.DbException.throwInternalError
|  |  | S29 RuntimeException
|  |  | S30 org.h2.store.PageStore.recover
|  |  | S30 org.h2.store.PageStore.readMetaData
|  |  | S30 org.h2.store.PageStore.addMeta R6,R2
|  |  | S30 org.h2.table.RegularTable.addIndex
| 1 |  | S30 org.h2.engine.Database.addSchemaObject R1
|  |  | S30 org.h2.engine.Database.checkWritingAllowed
|  |  | S31 org.h2.store.PageStore.recover
|  |  | S31 org.h2.store.PageStore.readMetaData
|  |  | S31 org.h2.store.PageStore.addMeta R6,R2
|  |  | S31 org.h2.value.CompareMode.getInstance ??org.h2.value.CompareMode.this??
|  |  | S31 name.substring
|  |  | S32 org.h2.command.dml.Set.update
|  |  | S32 org.h2.engine.Session.commit R4
| 1 |  | S32 org.h2.engine.Database.flush R1
|  |  | S33 org.h2.command.dml.Set.update
|  |  | S33 org.h2.engine.Session.commit R4
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S33 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S33 FileUtils.tryDelete
|  |  | S34 org.h2.store.WriterThread.run R5
| 1 |  | S34 org.h2.engine.Database.flush R1
|  |  | S35 org.h2.store.PageStore.recover
|  |  | S35 org.h2.store.PageStore.readMetaData
|  |  | S35 org.h2.store.PageStore.addMeta R6,R2
|  |  | S35 c.substring
|  |  | S36 org.h2.engine.DatabaseCloser.run R8
| 1 |  | S36 org.h2.engine.Database.close R1
|  |  | S36 Engine.getInstance.close
|  |  | S37 org.h2.expression.SequenceValue.getValue
|  |  | S37 org.h2.schema.Sequence.getNext R9
|  | 1 | S37 org.h2.schema.Sequence.flush R3,R9
| 2 |  | S37 org.h2.engine.Database.update R1
|  |  | S37 org.h2.engine.Database.addMeta R1
|  |  | S37 org.h2.engine.Session.log
|  |  | S37 org.h2.message.DbException.throwInternalError
|  |  | S37 TraceSystem.traceThrowable
|  |  | S38 org.h2.engine.Engine.createSessionAndValidate
|  |  | S38 org.h2.engine.Engine.openSession R10,R11
|  |  | S38 org.h2.command.CommandInterface.executeUpdate
|  |  | S39 org.h2.engine.Engine.createSessionAndValidate
|  |  | S39 org.h2.engine.Engine.openSession R10,R11
|  |  | S39 org.h2.engine.Session.close
|  |  | S39 org.h2.engine.Database.checkPowerOff
|  |  | S39 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S39 serverSocket.close
|  |  | S40 org.h2.engine.Engine.createSessionAndValidate
|  |  | S40 org.h2.engine.Engine.openSession R10,R11
|  |  | S40 org.h2.engine.Session.close
| 1 |  | S40 org.h2.engine.Database.removeSession R1
|  |  | S40 org.h2.message.Trace.info
|  |  | S40 MessageFormat.format
|  |  | S41 org.h2.engine.Engine.createSessionAndValidate
|  |  | S41 org.h2.engine.Engine.openSession R10,R11
|  |  | S41 org.h2.engine.Session.prepareCommand ??org.h2.engine.Session.this??
|  |  | S42 org.h2.engine.Engine.createSessionAndValidate
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.command.CommandInterface.executeUpdate
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 map.put
No 6
| R1 | R9 |
|  |  | S0 org.h2.store.WriterThread.run R5
| 1 |  | S0 org.h2.engine.Database.checkpointIfRequired R0,R1
|  |  | S0 org.h2.engine.Database.checkpoint R1
|  |  | S0 org.h2.store.PageStore.checkpoint R2
|  |  | S0 org.h2.engine.Database.checkPowerOff
|  |  | S0 org.h2.message.TraceSystem.close
|  |  | S1 org.h2.store.PageStore.recover
|  |  | S1 org.h2.store.PageStore.readMetaData
|  |  | S1 org.h2.store.PageStore.addMeta R6,R2
|  |  | S1 org.h2.table.RegularTable.addIndex
| 1 |  | S1 org.h2.engine.Database.addSchemaObject R1
|  |  | S1 org.h2.schema.Schema.add
|  |  | S1 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S1 org.h2.schema.Schema.remove
|  |  | S1 org.h2.message.DbException.throwInternalError
|  |  | S1 RuntimeException
|  |  | S2 org.h2.store.PageStore.recover
|  |  | S2 org.h2.store.PageStore.readMetaData
|  |  | S2 org.h2.store.PageStore.addMeta R6,R2
|  |  | S2 org.h2.table.RegularTable.addIndex
| 1 |  | S2 org.h2.engine.Database.addSchemaObject R1
|  |  | S2 org.h2.engine.Database.addMeta R1
|  |  | S2 org.h2.engine.Session.log
|  |  | S2 org.h2.engine.UndoLog.add
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S2 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S2 FileUtils.tryDelete
|  |  | S3 org.h2.store.PageStore.recover
|  |  | S3 org.h2.store.PageStore.readMetaData
|  |  | S3 org.h2.store.PageStore.addMeta R6,R2
|  |  | S3 org.h2.table.RegularTable.addIndex
| 1 |  | S3 org.h2.engine.Database.addSchemaObject R1
|  |  | S3 org.h2.engine.Database.addMeta R1
|  |  | S3 org.h2.engine.Session.log
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.saveIfPossible
|  |  | S3 org.h2.engine.UndoLogRecord.save
|  |  | S3 org.h2.engine.UndoLogRecord.append
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.value.DataType.readValue
|  |  | S3 org.h2.store.LobStorage.createClob
|  |  | S3 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S3 org.h2.store.LobStorage.conn
|  |  | S4 org.h2.store.PageStore.recover
|  |  | S4 org.h2.store.PageStore.readMetaData
|  |  | S4 org.h2.store.PageStore.addMeta R6,R2
|  |  | S4 org.h2.table.RegularTable.addIndex
| 1 |  | S4 org.h2.engine.Database.addSchemaObject R1
|  |  | S4 org.h2.engine.Database.addMeta R1
|  |  | S4 org.h2.engine.Session.log
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.saveIfPossible
|  |  | S4 org.h2.engine.UndoLogRecord.save
|  |  | S4 org.h2.engine.UndoLogRecord.append
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S4 org.h2.value.ValueLob.link
|  |  | S4 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S4 FileUtils.copy
|  |  | S5 org.h2.store.PageStore.recover
|  |  | S5 org.h2.store.PageStore.readMetaData
|  |  | S5 org.h2.store.PageStore.addMeta R6,R2
|  |  | S5 org.h2.table.RegularTable.addIndex
| 1 |  | S5 org.h2.engine.Database.addSchemaObject R1
|  |  | S5 org.h2.engine.Database.addMeta R1
|  |  | S5 org.h2.engine.Session.log
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.saveIfPossible
|  |  | S5 org.h2.engine.UndoLogRecord.save
|  |  | S5 org.h2.engine.UndoLogRecord.append
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S5 org.h2.value.ValueLob.link
|  |  | S5 org.h2.value.ValueLob.getNewObjectId
|  |  | S5 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S5 cache.get
|  |  | S6 org.h2.store.PageStore.recover
|  |  | S6 org.h2.store.PageStore.readMetaData
|  |  | S6 org.h2.store.PageStore.addMeta R6,R2
|  |  | S6 org.h2.table.RegularTable.addIndex
| 1 |  | S6 org.h2.engine.Database.addSchemaObject R1
|  |  | S6 org.h2.engine.Database.addMeta R1
|  |  | S6 org.h2.engine.Session.log
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.saveIfPossible
|  |  | S6 org.h2.engine.UndoLogRecord.save
|  |  | S6 org.h2.engine.UndoLogRecord.append
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S6 org.h2.value.ValueLob.link
|  |  | S6 org.h2.value.ValueLob.getNewObjectId
|  |  | S6 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S6 cache.remove
|  |  | S7 org.h2.store.PageStore.recover
|  |  | S7 org.h2.store.PageStore.readMetaData
|  |  | S7 org.h2.store.PageStore.addMeta R6,R2
|  |  | S7 org.h2.table.RegularTable.addIndex
| 1 |  | S7 org.h2.engine.Database.addSchemaObject R1
|  |  | S7 org.h2.engine.Database.addMeta R1
|  |  | S7 org.h2.engine.Session.log
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.saveIfPossible
|  |  | S7 org.h2.engine.UndoLogRecord.save
|  |  | S7 org.h2.engine.UndoLogRecord.append
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S7 org.h2.value.ValueLob.createFromReader
|  |  | S7 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S7 org.h2.store.FileStore.autoDelete
|  |  | S7 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S7 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 FileUtils.tryDelete
|  |  | S8 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S8 org.h2.engine.Database.getPageStore
| 1 |  | S8 org.h2.engine.Database.open R1
|  |  | S8 org.h2.engine.Database.afterWriting R0
|  |  | S9 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S9 org.h2.engine.Database.getPageStore
| 1 |  | S9 org.h2.engine.Database.open R1
|  |  | S9 org.h2.schema.Schema.createTable R7
|  |  | S9 org.h2.engine.Database.lockMeta R1
|  |  | S9 org.h2.table.Table.isLockedExclusivelyBy
|  |  | S10 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S10 org.h2.engine.Database.getPageStore
| 1 |  | S10 org.h2.engine.Database.open R1
|  |  | S10 org.h2.engine.Database.recompileInvalidViews
|  |  | S10 org.h2.table.TableView.recompile ??org.h2.table.TableView.this??
|  |  | S10 indexCache.clear
|  |  | S11 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S11 org.h2.engine.Database.getPageStore
| 1 |  | S11 org.h2.engine.Database.open R1
|  |  | S11 org.h2.message.TraceSystem.setLevelFile
|  |  | S11 org.h2.message.TraceSystem.write
|  |  | S11 org.h2.message.TraceSystem.format ??org.h2.message.TraceSystem.this??
|  |  | S11 org.h2.message.TraceSystem.format.SimpleDateFormat
| 1 |  | S12 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S12 org.h2.engine.Database.closeFiles R1
|  |  | S12 org.h2.store.PageStore.close R2
|  |  | S12 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
| 1 |  | S13 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S13 org.h2.engine.Session.close
|  |  | S13 org.h2.engine.Database.checkPowerOff
|  |  | S13 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S13 serverSocket.close
|  |  | S14 org.h2.command.dml.BackupCommand.update
|  |  | S14 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S14 org.h2.engine.Database.close R1
|  |  | S14 org.h2.engine.DatabaseCloser.reset R8
|  |  | S14 start
|  |  | S15 org.h2.command.dml.BackupCommand.update
|  |  | S15 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S15 org.h2.engine.Database.close R1
|  |  | S15 org.h2.schema.Sequence.close
|  |  | S15 org.h2.schema.Sequence.flushWithoutMargin
|  | 2 | S15 org.h2.schema.Sequence.flush R3,R9
|  |  | S15 org.h2.engine.Database.update R1
|  |  | S15 org.h2.engine.Database.addMeta R1
|  |  | S15 org.h2.engine.MetaRecord
|  |  | S16 org.h2.command.dml.BackupCommand.update
|  |  | S16 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S16 org.h2.engine.Database.close R1
|  |  | S16 org.h2.engine.Database.closeAllSessionsException R1
|  |  | S16 org.h2.engine.Session.rollback
|  |  | S16 org.h2.engine.Session.unlockAll R4
|  |  | S16 org.h2.message.DbException.throwInternalError
|  |  | S16 TraceSystem.traceThrowable
|  |  | S17 org.h2.store.PageStore.recover
|  |  | S17 org.h2.store.PageStore.readMetaData
|  |  | S17 org.h2.index.PageDataIndex.find
|  |  | S17 org.h2.index.PageDataIndex.getPage
|  |  | S17 org.h2.store.PageStore.logUndo R2
|  |  | S17 org.h2.store.PageStore.openForWriting
|  |  | S17 org.h2.store.PageStore.checkpoint R2
|  |  | S17 org.h2.engine.Database.checkPowerOff
|  |  | S17 org.h2.engine.Database.stopWriter
|  |  | S17 org.h2.store.WriterThread.stopThread R5
|  |  | S17 notify
|  |  | S18 org.h2.store.PageStore.recover
|  |  | S18 org.h2.store.PageStore.readMetaData
|  |  | S18 org.h2.index.PageDataIndex.find
|  |  | S18 org.h2.index.PageDataIndex.getPage
|  |  | S18 org.h2.store.PageStore.logUndo R2
|  |  | S18 org.h2.store.PageStore.openForWriting
|  |  | S18 org.h2.store.PageStore.checkpoint R2
|  |  | S18 org.h2.engine.Database.checkPowerOff
|  |  | S18 org.h2.message.TraceSystem.close
|  |  | S18 org.h2.message.TraceSystem.closeWriter ??org.h2.message.TraceSystem.this??
|  |  | S18 printWriter.flush
|  |  | S19 org.h2.store.PageStore.recover
|  |  | S19 org.h2.store.PageStore.readMetaData
|  |  | S19 org.h2.index.PageDataIndex.find
|  |  | S19 org.h2.index.PageDataIndex.getPage
|  |  | S19 org.h2.store.PageStore.logUndo R2
|  |  | S19 org.h2.store.PageStore.openForWriting
|  |  | S19 org.h2.store.PageStore.checkpoint R2
|  |  | S19 org.h2.engine.Database.checkPowerOff
|  |  | S19 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S19 serverSocket.close
|  |  | S20 org.h2.store.PageStore.recover
|  |  | S20 org.h2.store.PageStore.readMetaData
|  |  | S20 org.h2.index.PageDataIndex.find
|  |  | S20 org.h2.index.PageDataIndex.getPage
|  |  | S20 org.h2.store.PageStore.logUndo R2
|  |  | S20 org.h2.store.PageStore.openForWriting
|  |  | S20 org.h2.store.PageStore.checkpoint R2
|  |  | S20 org.h2.engine.Database.checkPowerOff
|  |  | S20 org.h2.store.PageStore.close R2
|  |  | S20 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
|  |  | S20 lock.release
|  |  | S21 org.h2.store.PageStore.recover
|  |  | S21 org.h2.store.PageStore.readMetaData
|  |  | S21 org.h2.store.PageStore.addMeta R6,R2
|  |  | S21 org.h2.index.PageDataIndex.add
|  |  | S21 org.h2.index.PageDataIndex.addTry
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S21 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S21 org.h2.result.Row.getByteCount
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.value.DataType.readValue
|  |  | S21 org.h2.store.LobStorage.createClob
|  |  | S21 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S21 org.h2.store.LobStorage.conn
|  |  | S22 org.h2.store.PageStore.recover
|  |  | S22 org.h2.store.PageStore.readMetaData
|  |  | S22 org.h2.store.PageStore.addMeta R6,R2
|  |  | S22 org.h2.index.PageDataIndex.add
|  |  | S22 org.h2.index.PageDataIndex.addTry
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S22 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S22 org.h2.result.Row.getByteCount
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S22 org.h2.value.ValueLob.link
|  |  | S22 org.h2.store.FileStore.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S22 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S22 FileUtils.tryDelete
|  |  | S23 org.h2.store.PageStore.recover
|  |  | S23 org.h2.store.PageStore.readMetaData
|  |  | S23 org.h2.store.PageStore.addMeta R6,R2
|  |  | S23 org.h2.index.PageDataIndex.add
|  |  | S23 org.h2.index.PageDataIndex.addTry
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S23 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S23 org.h2.result.Row.getByteCount
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S23 org.h2.value.ValueLob.link
|  |  | S23 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S23 FileUtils.copy
|  |  | S24 org.h2.store.PageStore.recover
|  |  | S24 org.h2.store.PageStore.readMetaData
|  |  | S24 org.h2.store.PageStore.addMeta R6,R2
|  |  | S24 org.h2.index.PageDataIndex.add
|  |  | S24 org.h2.index.PageDataIndex.addTry
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S24 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S24 org.h2.result.Row.getByteCount
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S24 org.h2.value.ValueLob.link
|  |  | S24 org.h2.value.ValueLob.getNewObjectId
|  |  | S24 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S24 cache.get
|  |  | S25 org.h2.store.PageStore.recover
|  |  | S25 org.h2.store.PageStore.readMetaData
|  |  | S25 org.h2.store.PageStore.addMeta R6,R2
|  |  | S25 org.h2.index.PageDataIndex.add
|  |  | S25 org.h2.index.PageDataIndex.addTry
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S25 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S25 org.h2.result.Row.getByteCount
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S25 org.h2.value.ValueLob.link
|  |  | S25 org.h2.value.ValueLob.getNewObjectId
|  |  | S25 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S25 cache.remove
|  |  | S26 org.h2.store.PageStore.recover
|  |  | S26 org.h2.store.PageStore.readMetaData
|  |  | S26 org.h2.store.PageStore.addMeta R6,R2
|  |  | S26 org.h2.index.PageDataIndex.add
|  |  | S26 org.h2.index.PageDataIndex.addTry
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S26 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S26 org.h2.result.Row.getByteCount
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S26 org.h2.value.ValueLob.createFromReader
|  |  | S26 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S26 org.h2.store.FileStore.autoDelete
|  |  | S26 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S26 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 FileUtils.tryDelete
|  |  | S27 org.h2.store.PageStore.recover
|  |  | S27 org.h2.store.PageStore.readMetaData
|  |  | S27 org.h2.store.PageStore.addMeta R6,R2
|  |  | S27 org.h2.index.PageDataIndex.add
|  |  | S27 org.h2.index.PageDataIndex.addTry
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S27 org.h2.schema.Schema.remove
|  |  | S27 org.h2.message.DbException.throwInternalError
|  |  | S27 RuntimeException
|  |  | S28 org.h2.store.PageStore.recover
|  |  | S28 org.h2.store.PageStore.readMetaData
|  |  | S28 org.h2.store.PageStore.addMeta R6,R2
|  |  | S28 org.h2.index.PageDataIndex.add
|  |  | S28 org.h2.index.PageDataIndex.addTry
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S28 org.h2.engine.Session.removeLocalTempTableIndex R4
|  |  | S28 org.h2.engine.DbObject.removeChildrenAndResources
|  |  | S29 org.h2.store.PageStore.recover
|  |  | S29 org.h2.store.PageStore.readMetaData
|  |  | S29 org.h2.store.PageStore.addMeta R6,R2
|  |  | S29 org.h2.schema.Schema.add
|  |  | S29 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S29 org.h2.schema.Schema.remove
|  |  | S29 org.h2.message.DbException.throwInternalError
|  |  | S29 RuntimeException
|  |  | S30 org.h2.store.PageStore.recover
|  |  | S30 org.h2.store.PageStore.readMetaData
|  |  | S30 org.h2.store.PageStore.addMeta R6,R2
|  |  | S30 org.h2.table.RegularTable.addIndex
| 1 |  | S30 org.h2.engine.Database.addSchemaObject R1
|  |  | S30 org.h2.engine.Database.checkWritingAllowed
|  |  | S31 org.h2.store.PageStore.recover
|  |  | S31 org.h2.store.PageStore.readMetaData
|  |  | S31 org.h2.store.PageStore.addMeta R6,R2
|  |  | S31 org.h2.value.CompareMode.getInstance ??org.h2.value.CompareMode.this??
|  |  | S31 name.substring
|  |  | S32 org.h2.command.dml.Set.update
|  |  | S32 org.h2.engine.Session.commit R4
| 1 |  | S32 org.h2.engine.Database.flush R1
|  |  | S33 org.h2.command.dml.Set.update
|  |  | S33 org.h2.engine.Session.commit R4
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S33 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S33 FileUtils.tryDelete
|  |  | S34 org.h2.store.WriterThread.run R5
| 1 |  | S34 org.h2.engine.Database.flush R1
|  |  | S35 org.h2.store.PageStore.recover
|  |  | S35 org.h2.store.PageStore.readMetaData
|  |  | S35 org.h2.store.PageStore.addMeta R6,R2
|  |  | S35 c.substring
|  |  | S36 org.h2.engine.DatabaseCloser.run R8
| 1 |  | S36 org.h2.engine.Database.close R1
|  |  | S36 Engine.getInstance.close
|  |  | S37 org.h2.expression.SequenceValue.getValue
|  | 1 | S37 org.h2.schema.Sequence.getNext R9
|  |  | S37 org.h2.schema.Sequence.flush R3,R9
| 2 |  | S37 org.h2.engine.Database.update R1
|  |  | S37 org.h2.engine.Database.addMeta R1
|  |  | S37 org.h2.engine.Session.log
|  |  | S37 org.h2.message.DbException.throwInternalError
|  |  | S37 TraceSystem.traceThrowable
|  |  | S38 org.h2.engine.Engine.createSessionAndValidate
|  |  | S38 org.h2.engine.Engine.openSession R10,R11
|  |  | S38 org.h2.command.CommandInterface.executeUpdate
|  |  | S39 org.h2.engine.Engine.createSessionAndValidate
|  |  | S39 org.h2.engine.Engine.openSession R10,R11
|  |  | S39 org.h2.engine.Session.close
|  |  | S39 org.h2.engine.Database.checkPowerOff
|  |  | S39 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S39 serverSocket.close
|  |  | S40 org.h2.engine.Engine.createSessionAndValidate
|  |  | S40 org.h2.engine.Engine.openSession R10,R11
|  |  | S40 org.h2.engine.Session.close
| 1 |  | S40 org.h2.engine.Database.removeSession R1
|  |  | S40 org.h2.message.Trace.info
|  |  | S40 MessageFormat.format
|  |  | S41 org.h2.engine.Engine.createSessionAndValidate
|  |  | S41 org.h2.engine.Engine.openSession R10,R11
|  |  | S41 org.h2.engine.Session.prepareCommand ??org.h2.engine.Session.this??
|  |  | S42 org.h2.engine.Engine.createSessionAndValidate
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.command.CommandInterface.executeUpdate
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 map.put
No 7
| R3 | R9 |
|  |  | S0 org.h2.store.WriterThread.run R5
|  |  | S0 org.h2.engine.Database.checkpointIfRequired R0,R1
|  |  | S0 org.h2.engine.Database.checkpoint R1
|  |  | S0 org.h2.store.PageStore.checkpoint R2
|  |  | S0 org.h2.engine.Database.checkPowerOff
|  |  | S0 org.h2.message.TraceSystem.close
|  |  | S1 org.h2.store.PageStore.recover
|  |  | S1 org.h2.store.PageStore.readMetaData
|  |  | S1 org.h2.store.PageStore.addMeta R6,R2
|  |  | S1 org.h2.table.RegularTable.addIndex
|  |  | S1 org.h2.engine.Database.addSchemaObject R1
|  |  | S1 org.h2.schema.Schema.add
|  |  | S1 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S1 org.h2.schema.Schema.remove
|  |  | S1 org.h2.message.DbException.throwInternalError
|  |  | S1 RuntimeException
|  |  | S2 org.h2.store.PageStore.recover
|  |  | S2 org.h2.store.PageStore.readMetaData
|  |  | S2 org.h2.store.PageStore.addMeta R6,R2
|  |  | S2 org.h2.table.RegularTable.addIndex
|  |  | S2 org.h2.engine.Database.addSchemaObject R1
|  |  | S2 org.h2.engine.Database.addMeta R1
|  |  | S2 org.h2.engine.Session.log
|  |  | S2 org.h2.engine.UndoLog.add
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S2 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S2 FileUtils.tryDelete
|  |  | S3 org.h2.store.PageStore.recover
|  |  | S3 org.h2.store.PageStore.readMetaData
|  |  | S3 org.h2.store.PageStore.addMeta R6,R2
|  |  | S3 org.h2.table.RegularTable.addIndex
|  |  | S3 org.h2.engine.Database.addSchemaObject R1
|  |  | S3 org.h2.engine.Database.addMeta R1
|  |  | S3 org.h2.engine.Session.log
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.saveIfPossible
|  |  | S3 org.h2.engine.UndoLogRecord.save
|  |  | S3 org.h2.engine.UndoLogRecord.append
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.value.DataType.readValue
|  |  | S3 org.h2.store.LobStorage.createClob
|  |  | S3 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S3 org.h2.store.LobStorage.conn
|  |  | S4 org.h2.store.PageStore.recover
|  |  | S4 org.h2.store.PageStore.readMetaData
|  |  | S4 org.h2.store.PageStore.addMeta R6,R2
|  |  | S4 org.h2.table.RegularTable.addIndex
|  |  | S4 org.h2.engine.Database.addSchemaObject R1
|  |  | S4 org.h2.engine.Database.addMeta R1
|  |  | S4 org.h2.engine.Session.log
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.saveIfPossible
|  |  | S4 org.h2.engine.UndoLogRecord.save
|  |  | S4 org.h2.engine.UndoLogRecord.append
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S4 org.h2.value.ValueLob.link
|  |  | S4 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S4 FileUtils.copy
|  |  | S5 org.h2.store.PageStore.recover
|  |  | S5 org.h2.store.PageStore.readMetaData
|  |  | S5 org.h2.store.PageStore.addMeta R6,R2
|  |  | S5 org.h2.table.RegularTable.addIndex
|  |  | S5 org.h2.engine.Database.addSchemaObject R1
|  |  | S5 org.h2.engine.Database.addMeta R1
|  |  | S5 org.h2.engine.Session.log
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.saveIfPossible
|  |  | S5 org.h2.engine.UndoLogRecord.save
|  |  | S5 org.h2.engine.UndoLogRecord.append
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S5 org.h2.value.ValueLob.link
|  |  | S5 org.h2.value.ValueLob.getNewObjectId
|  |  | S5 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S5 cache.get
|  |  | S6 org.h2.store.PageStore.recover
|  |  | S6 org.h2.store.PageStore.readMetaData
|  |  | S6 org.h2.store.PageStore.addMeta R6,R2
|  |  | S6 org.h2.table.RegularTable.addIndex
|  |  | S6 org.h2.engine.Database.addSchemaObject R1
|  |  | S6 org.h2.engine.Database.addMeta R1
|  |  | S6 org.h2.engine.Session.log
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.saveIfPossible
|  |  | S6 org.h2.engine.UndoLogRecord.save
|  |  | S6 org.h2.engine.UndoLogRecord.append
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S6 org.h2.value.ValueLob.link
|  |  | S6 org.h2.value.ValueLob.getNewObjectId
|  |  | S6 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S6 cache.remove
|  |  | S7 org.h2.store.PageStore.recover
|  |  | S7 org.h2.store.PageStore.readMetaData
|  |  | S7 org.h2.store.PageStore.addMeta R6,R2
|  |  | S7 org.h2.table.RegularTable.addIndex
|  |  | S7 org.h2.engine.Database.addSchemaObject R1
|  |  | S7 org.h2.engine.Database.addMeta R1
|  |  | S7 org.h2.engine.Session.log
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.saveIfPossible
|  |  | S7 org.h2.engine.UndoLogRecord.save
|  |  | S7 org.h2.engine.UndoLogRecord.append
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S7 org.h2.value.ValueLob.createFromReader
|  |  | S7 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S7 org.h2.store.FileStore.autoDelete
|  |  | S7 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S7 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 FileUtils.tryDelete
|  |  | S8 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S8 org.h2.engine.Database.getPageStore
|  |  | S8 org.h2.engine.Database.open R1
|  |  | S8 org.h2.engine.Database.afterWriting R0
|  |  | S9 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S9 org.h2.engine.Database.getPageStore
|  |  | S9 org.h2.engine.Database.open R1
|  |  | S9 org.h2.schema.Schema.createTable R7
|  |  | S9 org.h2.engine.Database.lockMeta R1
|  |  | S9 org.h2.table.Table.isLockedExclusivelyBy
|  |  | S10 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S10 org.h2.engine.Database.getPageStore
|  |  | S10 org.h2.engine.Database.open R1
|  |  | S10 org.h2.engine.Database.recompileInvalidViews
|  |  | S10 org.h2.table.TableView.recompile ??org.h2.table.TableView.this??
|  |  | S10 indexCache.clear
|  |  | S11 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S11 org.h2.engine.Database.getPageStore
|  |  | S11 org.h2.engine.Database.open R1
|  |  | S11 org.h2.message.TraceSystem.setLevelFile
|  |  | S11 org.h2.message.TraceSystem.write
|  |  | S11 org.h2.message.TraceSystem.format ??org.h2.message.TraceSystem.this??
|  |  | S11 org.h2.message.TraceSystem.format.SimpleDateFormat
|  |  | S12 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S12 org.h2.engine.Database.closeFiles R1
|  |  | S12 org.h2.store.PageStore.close R2
|  |  | S12 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
|  |  | S13 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S13 org.h2.engine.Session.close
|  |  | S13 org.h2.engine.Database.checkPowerOff
|  |  | S13 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S13 serverSocket.close
|  |  | S14 org.h2.command.dml.BackupCommand.update
|  |  | S14 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
|  |  | S14 org.h2.engine.Database.close R1
|  |  | S14 org.h2.engine.DatabaseCloser.reset R8
|  |  | S14 start
|  |  | S15 org.h2.command.dml.BackupCommand.update
|  |  | S15 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
|  |  | S15 org.h2.engine.Database.close R1
|  |  | S15 org.h2.schema.Sequence.close
|  |  | S15 org.h2.schema.Sequence.flushWithoutMargin
| 1 | 2 | S15 org.h2.schema.Sequence.flush R3,R9
|  |  | S15 org.h2.engine.Database.update R1
|  |  | S15 org.h2.engine.Database.addMeta R1
|  |  | S15 org.h2.engine.MetaRecord
|  |  | S16 org.h2.command.dml.BackupCommand.update
|  |  | S16 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
|  |  | S16 org.h2.engine.Database.close R1
|  |  | S16 org.h2.engine.Database.closeAllSessionsException R1
|  |  | S16 org.h2.engine.Session.rollback
|  |  | S16 org.h2.engine.Session.unlockAll R4
|  |  | S16 org.h2.message.DbException.throwInternalError
|  |  | S16 TraceSystem.traceThrowable
|  |  | S17 org.h2.store.PageStore.recover
|  |  | S17 org.h2.store.PageStore.readMetaData
|  |  | S17 org.h2.index.PageDataIndex.find
|  |  | S17 org.h2.index.PageDataIndex.getPage
|  |  | S17 org.h2.store.PageStore.logUndo R2
|  |  | S17 org.h2.store.PageStore.openForWriting
|  |  | S17 org.h2.store.PageStore.checkpoint R2
|  |  | S17 org.h2.engine.Database.checkPowerOff
|  |  | S17 org.h2.engine.Database.stopWriter
|  |  | S17 org.h2.store.WriterThread.stopThread R5
|  |  | S17 notify
|  |  | S18 org.h2.store.PageStore.recover
|  |  | S18 org.h2.store.PageStore.readMetaData
|  |  | S18 org.h2.index.PageDataIndex.find
|  |  | S18 org.h2.index.PageDataIndex.getPage
|  |  | S18 org.h2.store.PageStore.logUndo R2
|  |  | S18 org.h2.store.PageStore.openForWriting
|  |  | S18 org.h2.store.PageStore.checkpoint R2
|  |  | S18 org.h2.engine.Database.checkPowerOff
|  |  | S18 org.h2.message.TraceSystem.close
|  |  | S18 org.h2.message.TraceSystem.closeWriter ??org.h2.message.TraceSystem.this??
|  |  | S18 printWriter.flush
|  |  | S19 org.h2.store.PageStore.recover
|  |  | S19 org.h2.store.PageStore.readMetaData
|  |  | S19 org.h2.index.PageDataIndex.find
|  |  | S19 org.h2.index.PageDataIndex.getPage
|  |  | S19 org.h2.store.PageStore.logUndo R2
|  |  | S19 org.h2.store.PageStore.openForWriting
|  |  | S19 org.h2.store.PageStore.checkpoint R2
|  |  | S19 org.h2.engine.Database.checkPowerOff
|  |  | S19 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S19 serverSocket.close
|  |  | S20 org.h2.store.PageStore.recover
|  |  | S20 org.h2.store.PageStore.readMetaData
|  |  | S20 org.h2.index.PageDataIndex.find
|  |  | S20 org.h2.index.PageDataIndex.getPage
|  |  | S20 org.h2.store.PageStore.logUndo R2
|  |  | S20 org.h2.store.PageStore.openForWriting
|  |  | S20 org.h2.store.PageStore.checkpoint R2
|  |  | S20 org.h2.engine.Database.checkPowerOff
|  |  | S20 org.h2.store.PageStore.close R2
|  |  | S20 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
|  |  | S20 lock.release
|  |  | S21 org.h2.store.PageStore.recover
|  |  | S21 org.h2.store.PageStore.readMetaData
|  |  | S21 org.h2.store.PageStore.addMeta R6,R2
|  |  | S21 org.h2.index.PageDataIndex.add
|  |  | S21 org.h2.index.PageDataIndex.addTry
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S21 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S21 org.h2.result.Row.getByteCount
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.value.DataType.readValue
|  |  | S21 org.h2.store.LobStorage.createClob
|  |  | S21 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S21 org.h2.store.LobStorage.conn
|  |  | S22 org.h2.store.PageStore.recover
|  |  | S22 org.h2.store.PageStore.readMetaData
|  |  | S22 org.h2.store.PageStore.addMeta R6,R2
|  |  | S22 org.h2.index.PageDataIndex.add
|  |  | S22 org.h2.index.PageDataIndex.addTry
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S22 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S22 org.h2.result.Row.getByteCount
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S22 org.h2.value.ValueLob.link
|  |  | S22 org.h2.store.FileStore.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S22 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S22 FileUtils.tryDelete
|  |  | S23 org.h2.store.PageStore.recover
|  |  | S23 org.h2.store.PageStore.readMetaData
|  |  | S23 org.h2.store.PageStore.addMeta R6,R2
|  |  | S23 org.h2.index.PageDataIndex.add
|  |  | S23 org.h2.index.PageDataIndex.addTry
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S23 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S23 org.h2.result.Row.getByteCount
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S23 org.h2.value.ValueLob.link
|  |  | S23 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S23 FileUtils.copy
|  |  | S24 org.h2.store.PageStore.recover
|  |  | S24 org.h2.store.PageStore.readMetaData
|  |  | S24 org.h2.store.PageStore.addMeta R6,R2
|  |  | S24 org.h2.index.PageDataIndex.add
|  |  | S24 org.h2.index.PageDataIndex.addTry
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S24 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S24 org.h2.result.Row.getByteCount
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S24 org.h2.value.ValueLob.link
|  |  | S24 org.h2.value.ValueLob.getNewObjectId
|  |  | S24 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S24 cache.get
|  |  | S25 org.h2.store.PageStore.recover
|  |  | S25 org.h2.store.PageStore.readMetaData
|  |  | S25 org.h2.store.PageStore.addMeta R6,R2
|  |  | S25 org.h2.index.PageDataIndex.add
|  |  | S25 org.h2.index.PageDataIndex.addTry
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S25 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S25 org.h2.result.Row.getByteCount
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S25 org.h2.value.ValueLob.link
|  |  | S25 org.h2.value.ValueLob.getNewObjectId
|  |  | S25 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S25 cache.remove
|  |  | S26 org.h2.store.PageStore.recover
|  |  | S26 org.h2.store.PageStore.readMetaData
|  |  | S26 org.h2.store.PageStore.addMeta R6,R2
|  |  | S26 org.h2.index.PageDataIndex.add
|  |  | S26 org.h2.index.PageDataIndex.addTry
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S26 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S26 org.h2.result.Row.getByteCount
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S26 org.h2.value.ValueLob.createFromReader
|  |  | S26 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S26 org.h2.store.FileStore.autoDelete
|  |  | S26 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S26 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 FileUtils.tryDelete
|  |  | S27 org.h2.store.PageStore.recover
|  |  | S27 org.h2.store.PageStore.readMetaData
|  |  | S27 org.h2.store.PageStore.addMeta R6,R2
|  |  | S27 org.h2.index.PageDataIndex.add
|  |  | S27 org.h2.index.PageDataIndex.addTry
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S27 org.h2.schema.Schema.remove
|  |  | S27 org.h2.message.DbException.throwInternalError
|  |  | S27 RuntimeException
|  |  | S28 org.h2.store.PageStore.recover
|  |  | S28 org.h2.store.PageStore.readMetaData
|  |  | S28 org.h2.store.PageStore.addMeta R6,R2
|  |  | S28 org.h2.index.PageDataIndex.add
|  |  | S28 org.h2.index.PageDataIndex.addTry
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S28 org.h2.engine.Session.removeLocalTempTableIndex R4
|  |  | S28 org.h2.engine.DbObject.removeChildrenAndResources
|  |  | S29 org.h2.store.PageStore.recover
|  |  | S29 org.h2.store.PageStore.readMetaData
|  |  | S29 org.h2.store.PageStore.addMeta R6,R2
|  |  | S29 org.h2.schema.Schema.add
|  |  | S29 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S29 org.h2.schema.Schema.remove
|  |  | S29 org.h2.message.DbException.throwInternalError
|  |  | S29 RuntimeException
|  |  | S30 org.h2.store.PageStore.recover
|  |  | S30 org.h2.store.PageStore.readMetaData
|  |  | S30 org.h2.store.PageStore.addMeta R6,R2
|  |  | S30 org.h2.table.RegularTable.addIndex
|  |  | S30 org.h2.engine.Database.addSchemaObject R1
|  |  | S30 org.h2.engine.Database.checkWritingAllowed
|  |  | S31 org.h2.store.PageStore.recover
|  |  | S31 org.h2.store.PageStore.readMetaData
|  |  | S31 org.h2.store.PageStore.addMeta R6,R2
|  |  | S31 org.h2.value.CompareMode.getInstance ??org.h2.value.CompareMode.this??
|  |  | S31 name.substring
|  |  | S32 org.h2.command.dml.Set.update
|  |  | S32 org.h2.engine.Session.commit R4
|  |  | S32 org.h2.engine.Database.flush R1
|  |  | S33 org.h2.command.dml.Set.update
|  |  | S33 org.h2.engine.Session.commit R4
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S33 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S33 FileUtils.tryDelete
|  |  | S34 org.h2.store.WriterThread.run R5
|  |  | S34 org.h2.engine.Database.flush R1
|  |  | S35 org.h2.store.PageStore.recover
|  |  | S35 org.h2.store.PageStore.readMetaData
|  |  | S35 org.h2.store.PageStore.addMeta R6,R2
|  |  | S35 c.substring
|  |  | S36 org.h2.engine.DatabaseCloser.run R8
|  |  | S36 org.h2.engine.Database.close R1
|  |  | S36 Engine.getInstance.close
|  |  | S37 org.h2.expression.SequenceValue.getValue
|  | 1 | S37 org.h2.schema.Sequence.getNext R9
| 2 |  | S37 org.h2.schema.Sequence.flush R3,R9
|  |  | S37 org.h2.engine.Database.update R1
|  |  | S37 org.h2.engine.Database.addMeta R1
|  |  | S37 org.h2.engine.Session.log
|  |  | S37 org.h2.message.DbException.throwInternalError
|  |  | S37 TraceSystem.traceThrowable
|  |  | S38 org.h2.engine.Engine.createSessionAndValidate
|  |  | S38 org.h2.engine.Engine.openSession R10,R11
|  |  | S38 org.h2.command.CommandInterface.executeUpdate
|  |  | S39 org.h2.engine.Engine.createSessionAndValidate
|  |  | S39 org.h2.engine.Engine.openSession R10,R11
|  |  | S39 org.h2.engine.Session.close
|  |  | S39 org.h2.engine.Database.checkPowerOff
|  |  | S39 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S39 serverSocket.close
|  |  | S40 org.h2.engine.Engine.createSessionAndValidate
|  |  | S40 org.h2.engine.Engine.openSession R10,R11
|  |  | S40 org.h2.engine.Session.close
|  |  | S40 org.h2.engine.Database.removeSession R1
|  |  | S40 org.h2.message.Trace.info
|  |  | S40 MessageFormat.format
|  |  | S41 org.h2.engine.Engine.createSessionAndValidate
|  |  | S41 org.h2.engine.Engine.openSession R10,R11
|  |  | S41 org.h2.engine.Session.prepareCommand ??org.h2.engine.Session.this??
|  |  | S42 org.h2.engine.Engine.createSessionAndValidate
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.command.CommandInterface.executeUpdate
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 map.put
No 8
| R1 | R4 |
|  |  | S0 org.h2.store.WriterThread.run R5
| 1 |  | S0 org.h2.engine.Database.checkpointIfRequired R0,R1
|  |  | S0 org.h2.engine.Database.checkpoint R1
|  |  | S0 org.h2.store.PageStore.checkpoint R2
|  |  | S0 org.h2.engine.Database.checkPowerOff
|  |  | S0 org.h2.message.TraceSystem.close
|  |  | S1 org.h2.store.PageStore.recover
|  |  | S1 org.h2.store.PageStore.readMetaData
|  |  | S1 org.h2.store.PageStore.addMeta R6,R2
|  |  | S1 org.h2.table.RegularTable.addIndex
| 1 |  | S1 org.h2.engine.Database.addSchemaObject R1
|  |  | S1 org.h2.schema.Schema.add
|  |  | S1 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S1 org.h2.schema.Schema.remove
|  |  | S1 org.h2.message.DbException.throwInternalError
|  |  | S1 RuntimeException
|  |  | S2 org.h2.store.PageStore.recover
|  |  | S2 org.h2.store.PageStore.readMetaData
|  |  | S2 org.h2.store.PageStore.addMeta R6,R2
|  |  | S2 org.h2.table.RegularTable.addIndex
| 1 |  | S2 org.h2.engine.Database.addSchemaObject R1
|  |  | S2 org.h2.engine.Database.addMeta R1
|  |  | S2 org.h2.engine.Session.log
|  |  | S2 org.h2.engine.UndoLog.add
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.engine.UndoLog.clear
|  |  | S2 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S2 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S2 FileUtils.tryDelete
|  |  | S3 org.h2.store.PageStore.recover
|  |  | S3 org.h2.store.PageStore.readMetaData
|  |  | S3 org.h2.store.PageStore.addMeta R6,R2
|  |  | S3 org.h2.table.RegularTable.addIndex
| 1 |  | S3 org.h2.engine.Database.addSchemaObject R1
|  |  | S3 org.h2.engine.Database.addMeta R1
|  |  | S3 org.h2.engine.Session.log
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.add
|  |  | S3 org.h2.engine.UndoLog.saveIfPossible
|  |  | S3 org.h2.engine.UndoLogRecord.save
|  |  | S3 org.h2.engine.UndoLogRecord.append
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.store.Data.getValueLen
|  |  | S3 org.h2.value.DataType.readValue
|  |  | S3 org.h2.store.LobStorage.createClob
|  |  | S3 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S3 org.h2.store.LobStorage.conn
|  |  | S4 org.h2.store.PageStore.recover
|  |  | S4 org.h2.store.PageStore.readMetaData
|  |  | S4 org.h2.store.PageStore.addMeta R6,R2
|  |  | S4 org.h2.table.RegularTable.addIndex
| 1 |  | S4 org.h2.engine.Database.addSchemaObject R1
|  |  | S4 org.h2.engine.Database.addMeta R1
|  |  | S4 org.h2.engine.Session.log
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.add
|  |  | S4 org.h2.engine.UndoLog.saveIfPossible
|  |  | S4 org.h2.engine.UndoLogRecord.save
|  |  | S4 org.h2.engine.UndoLogRecord.append
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.store.Data.getValueLen
|  |  | S4 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S4 org.h2.value.ValueLob.link
|  |  | S4 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S4 FileUtils.copy
|  |  | S5 org.h2.store.PageStore.recover
|  |  | S5 org.h2.store.PageStore.readMetaData
|  |  | S5 org.h2.store.PageStore.addMeta R6,R2
|  |  | S5 org.h2.table.RegularTable.addIndex
| 1 |  | S5 org.h2.engine.Database.addSchemaObject R1
|  |  | S5 org.h2.engine.Database.addMeta R1
|  |  | S5 org.h2.engine.Session.log
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.add
|  |  | S5 org.h2.engine.UndoLog.saveIfPossible
|  |  | S5 org.h2.engine.UndoLogRecord.save
|  |  | S5 org.h2.engine.UndoLogRecord.append
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.store.Data.getValueLen
|  |  | S5 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S5 org.h2.value.ValueLob.link
|  |  | S5 org.h2.value.ValueLob.getNewObjectId
|  |  | S5 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S5 cache.get
|  |  | S6 org.h2.store.PageStore.recover
|  |  | S6 org.h2.store.PageStore.readMetaData
|  |  | S6 org.h2.store.PageStore.addMeta R6,R2
|  |  | S6 org.h2.table.RegularTable.addIndex
| 1 |  | S6 org.h2.engine.Database.addSchemaObject R1
|  |  | S6 org.h2.engine.Database.addMeta R1
|  |  | S6 org.h2.engine.Session.log
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.add
|  |  | S6 org.h2.engine.UndoLog.saveIfPossible
|  |  | S6 org.h2.engine.UndoLogRecord.save
|  |  | S6 org.h2.engine.UndoLogRecord.append
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.store.Data.getValueLen
|  |  | S6 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S6 org.h2.value.ValueLob.link
|  |  | S6 org.h2.value.ValueLob.getNewObjectId
|  |  | S6 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S6 cache.remove
|  |  | S7 org.h2.store.PageStore.recover
|  |  | S7 org.h2.store.PageStore.readMetaData
|  |  | S7 org.h2.store.PageStore.addMeta R6,R2
|  |  | S7 org.h2.table.RegularTable.addIndex
| 1 |  | S7 org.h2.engine.Database.addSchemaObject R1
|  |  | S7 org.h2.engine.Database.addMeta R1
|  |  | S7 org.h2.engine.Session.log
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.add
|  |  | S7 org.h2.engine.UndoLog.saveIfPossible
|  |  | S7 org.h2.engine.UndoLogRecord.save
|  |  | S7 org.h2.engine.UndoLogRecord.append
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.store.Data.getValueLen
|  |  | S7 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S7 org.h2.value.ValueLob.createFromReader
|  |  | S7 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S7 org.h2.store.FileStore.autoDelete
|  |  | S7 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S7 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S7 FileUtils.tryDelete
|  |  | S8 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S8 org.h2.engine.Database.getPageStore
| 1 |  | S8 org.h2.engine.Database.open R1
|  |  | S8 org.h2.engine.Database.afterWriting R0
|  |  | S9 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S9 org.h2.engine.Database.getPageStore
| 1 |  | S9 org.h2.engine.Database.open R1
|  |  | S9 org.h2.schema.Schema.createTable R7
|  |  | S9 org.h2.engine.Database.lockMeta R1
|  |  | S9 org.h2.table.Table.isLockedExclusivelyBy
|  |  | S10 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S10 org.h2.engine.Database.getPageStore
| 1 |  | S10 org.h2.engine.Database.open R1
|  |  | S10 org.h2.engine.Database.recompileInvalidViews
|  |  | S10 org.h2.table.TableView.recompile ??org.h2.table.TableView.this??
|  |  | S10 indexCache.clear
|  |  | S11 org.h2.index.PageBtreeIndex.PageBtreeIndex
|  |  | S11 org.h2.engine.Database.getPageStore
| 1 |  | S11 org.h2.engine.Database.open R1
|  |  | S11 org.h2.message.TraceSystem.setLevelFile
|  |  | S11 org.h2.message.TraceSystem.write
|  |  | S11 org.h2.message.TraceSystem.format ??org.h2.message.TraceSystem.this??
|  |  | S11 org.h2.message.TraceSystem.format.SimpleDateFormat
| 1 |  | S12 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S12 org.h2.engine.Database.closeFiles R1
|  |  | S12 org.h2.store.PageStore.close R2
|  |  | S12 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
| 1 |  | S13 org.h2.engine.Database.closeOpenFilesAndUnlock R1
|  |  | S13 org.h2.engine.Session.close
|  |  | S13 org.h2.engine.Database.checkPowerOff
|  |  | S13 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S13 serverSocket.close
|  |  | S14 org.h2.command.dml.BackupCommand.update
|  |  | S14 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S14 org.h2.engine.Database.close R1
|  |  | S14 org.h2.engine.DatabaseCloser.reset R8
|  |  | S14 start
|  |  | S15 org.h2.command.dml.BackupCommand.update
|  |  | S15 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S15 org.h2.engine.Database.close R1
|  |  | S15 org.h2.schema.Sequence.close
|  |  | S15 org.h2.schema.Sequence.flushWithoutMargin
|  |  | S15 org.h2.schema.Sequence.flush R3,R9
|  |  | S15 org.h2.engine.Database.update R1
|  |  | S15 org.h2.engine.Database.addMeta R1
|  |  | S15 org.h2.engine.MetaRecord
|  |  | S16 org.h2.command.dml.BackupCommand.update
|  |  | S16 org.h2.command.dml.BackupCommand.backupTo ??org.h2.engine.Database.getLobSyncObject??
| 1 |  | S16 org.h2.engine.Database.close R1
|  |  | S16 org.h2.engine.Database.closeAllSessionsException R1
|  |  | S16 org.h2.engine.Session.rollback
|  | 2 | S16 org.h2.engine.Session.unlockAll R4
|  |  | S16 org.h2.message.DbException.throwInternalError
|  |  | S16 TraceSystem.traceThrowable
|  |  | S17 org.h2.store.PageStore.recover
|  |  | S17 org.h2.store.PageStore.readMetaData
|  |  | S17 org.h2.index.PageDataIndex.find
|  |  | S17 org.h2.index.PageDataIndex.getPage
|  |  | S17 org.h2.store.PageStore.logUndo R2
|  |  | S17 org.h2.store.PageStore.openForWriting
|  |  | S17 org.h2.store.PageStore.checkpoint R2
|  |  | S17 org.h2.engine.Database.checkPowerOff
|  |  | S17 org.h2.engine.Database.stopWriter
|  |  | S17 org.h2.store.WriterThread.stopThread R5
|  |  | S17 notify
|  |  | S18 org.h2.store.PageStore.recover
|  |  | S18 org.h2.store.PageStore.readMetaData
|  |  | S18 org.h2.index.PageDataIndex.find
|  |  | S18 org.h2.index.PageDataIndex.getPage
|  |  | S18 org.h2.store.PageStore.logUndo R2
|  |  | S18 org.h2.store.PageStore.openForWriting
|  |  | S18 org.h2.store.PageStore.checkpoint R2
|  |  | S18 org.h2.engine.Database.checkPowerOff
|  |  | S18 org.h2.message.TraceSystem.close
|  |  | S18 org.h2.message.TraceSystem.closeWriter ??org.h2.message.TraceSystem.this??
|  |  | S18 printWriter.flush
|  |  | S19 org.h2.store.PageStore.recover
|  |  | S19 org.h2.store.PageStore.readMetaData
|  |  | S19 org.h2.index.PageDataIndex.find
|  |  | S19 org.h2.index.PageDataIndex.getPage
|  |  | S19 org.h2.store.PageStore.logUndo R2
|  |  | S19 org.h2.store.PageStore.openForWriting
|  |  | S19 org.h2.store.PageStore.checkpoint R2
|  |  | S19 org.h2.engine.Database.checkPowerOff
|  |  | S19 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S19 serverSocket.close
|  |  | S20 org.h2.store.PageStore.recover
|  |  | S20 org.h2.store.PageStore.readMetaData
|  |  | S20 org.h2.index.PageDataIndex.find
|  |  | S20 org.h2.index.PageDataIndex.getPage
|  |  | S20 org.h2.store.PageStore.logUndo R2
|  |  | S20 org.h2.store.PageStore.openForWriting
|  |  | S20 org.h2.store.PageStore.checkpoint R2
|  |  | S20 org.h2.engine.Database.checkPowerOff
|  |  | S20 org.h2.store.PageStore.close R2
|  |  | S20 org.h2.store.FileStore.releaseLock ??org.h2.store.FileStore.this??
|  |  | S20 lock.release
|  |  | S21 org.h2.store.PageStore.recover
|  |  | S21 org.h2.store.PageStore.readMetaData
|  |  | S21 org.h2.store.PageStore.addMeta R6,R2
|  |  | S21 org.h2.index.PageDataIndex.add
|  |  | S21 org.h2.index.PageDataIndex.addTry
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.index.PageDataIndex.remove
|  |  | S21 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S21 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S21 org.h2.result.Row.getByteCount
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.store.Data.getValueLen
|  |  | S21 org.h2.value.DataType.readValue
|  |  | S21 org.h2.store.LobStorage.createClob
|  |  | S21 org.h2.store.LobStorage.init ??org.h2.store.LobStorage.handler??
|  |  | S21 org.h2.store.LobStorage.conn
|  |  | S22 org.h2.store.PageStore.recover
|  |  | S22 org.h2.store.PageStore.readMetaData
|  |  | S22 org.h2.store.PageStore.addMeta R6,R2
|  |  | S22 org.h2.index.PageDataIndex.add
|  |  | S22 org.h2.index.PageDataIndex.addTry
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.index.PageDataIndex.remove
|  |  | S22 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S22 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S22 org.h2.result.Row.getByteCount
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.store.Data.getValueLen
|  |  | S22 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S22 org.h2.value.ValueLob.link
|  |  | S22 org.h2.store.FileStore.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.stopAutoDelete
|  |  | S22 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S22 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S22 FileUtils.tryDelete
|  |  | S23 org.h2.store.PageStore.recover
|  |  | S23 org.h2.store.PageStore.readMetaData
|  |  | S23 org.h2.store.PageStore.addMeta R6,R2
|  |  | S23 org.h2.index.PageDataIndex.add
|  |  | S23 org.h2.index.PageDataIndex.addTry
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.index.PageDataIndex.remove
|  |  | S23 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S23 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S23 org.h2.result.Row.getByteCount
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.store.Data.getValueLen
|  |  | S23 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S23 org.h2.value.ValueLob.link
|  |  | S23 org.h2.value.ValueLob.copyFileTo ??org.h2.store.DataHandler.getLobSyncObject??
|  |  | S23 FileUtils.copy
|  |  | S24 org.h2.store.PageStore.recover
|  |  | S24 org.h2.store.PageStore.readMetaData
|  |  | S24 org.h2.store.PageStore.addMeta R6,R2
|  |  | S24 org.h2.index.PageDataIndex.add
|  |  | S24 org.h2.index.PageDataIndex.addTry
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.index.PageDataIndex.remove
|  |  | S24 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S24 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S24 org.h2.result.Row.getByteCount
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.store.Data.getValueLen
|  |  | S24 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S24 org.h2.value.ValueLob.link
|  |  | S24 org.h2.value.ValueLob.getNewObjectId
|  |  | S24 org.h2.value.ValueLob.getFileList ??org.h2.value.ValueLob.getFileList.cache??
|  |  | S24 cache.get
|  |  | S25 org.h2.store.PageStore.recover
|  |  | S25 org.h2.store.PageStore.readMetaData
|  |  | S25 org.h2.store.PageStore.addMeta R6,R2
|  |  | S25 org.h2.index.PageDataIndex.add
|  |  | S25 org.h2.index.PageDataIndex.addTry
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.index.PageDataIndex.remove
|  |  | S25 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S25 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S25 org.h2.result.Row.getByteCount
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.store.Data.getValueLen
|  |  | S25 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S25 org.h2.value.ValueLob.link
|  |  | S25 org.h2.value.ValueLob.getNewObjectId
|  |  | S25 org.h2.value.ValueLob.invalidateFileList ??org.h2.value.ValueLob.invalidateFileList.cache??
|  |  | S25 cache.remove
|  |  | S26 org.h2.store.PageStore.recover
|  |  | S26 org.h2.store.PageStore.readMetaData
|  |  | S26 org.h2.store.PageStore.addMeta R6,R2
|  |  | S26 org.h2.index.PageDataIndex.add
|  |  | S26 org.h2.index.PageDataIndex.addTry
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.index.PageDataIndex.remove
|  |  | S26 org.h2.store.PageStore.logAddOrRemoveRow R2
|  |  | S26 org.h2.store.PageLog.logAddOrRemoveRow
|  |  | S26 org.h2.result.Row.getByteCount
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.store.Data.getValueLen
|  |  | S26 org.h2.value.ValueLob.convertToFileIfRequired
|  |  | S26 org.h2.value.ValueLob.createFromReader
|  |  | S26 org.h2.value.ValueLob.initLarge ??org.h2.value.ValueLob.initLarge.h??
|  |  | S26 org.h2.store.FileStore.autoDelete
|  |  | S26 org.h2.util.TempFileDeleter.addFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 org.h2.util.TempFileDeleter.deleteUnused
|  |  | S26 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S26 FileUtils.tryDelete
|  |  | S27 org.h2.store.PageStore.recover
|  |  | S27 org.h2.store.PageStore.readMetaData
|  |  | S27 org.h2.store.PageStore.addMeta R6,R2
|  |  | S27 org.h2.index.PageDataIndex.add
|  |  | S27 org.h2.index.PageDataIndex.addTry
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.index.PageDataIndex.remove
|  |  | S27 org.h2.store.PageStore.removeMeta R6,R2
|  |  | S27 org.h2.schema.Schema.remove
|  |  | S27 org.h2.message.DbException.throwInternalError
|  |  | S27 RuntimeException
|  |  | S28 org.h2.store.PageStore.recover
|  |  | S28 org.h2.store.PageStore.readMetaData
|  |  | S28 org.h2.store.PageStore.addMeta R6,R2
|  |  | S28 org.h2.index.PageDataIndex.add
|  |  | S28 org.h2.index.PageDataIndex.addTry
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.index.PageDataIndex.remove
|  |  | S28 org.h2.store.PageStore.removeMeta R6,R2
|  | 1 | S28 org.h2.engine.Session.removeLocalTempTableIndex R4
|  |  | S28 org.h2.engine.DbObject.removeChildrenAndResources
|  |  | S29 org.h2.store.PageStore.recover
|  |  | S29 org.h2.store.PageStore.readMetaData
|  |  | S29 org.h2.store.PageStore.addMeta R6,R2
|  |  | S29 org.h2.schema.Schema.add
|  |  | S29 org.h2.schema.Schema.freeUniqueName ??org.h2.schema.Schema.temporaryUniqueNames??
|  |  | S29 org.h2.schema.Schema.remove
|  |  | S29 org.h2.message.DbException.throwInternalError
|  |  | S29 RuntimeException
|  |  | S30 org.h2.store.PageStore.recover
|  |  | S30 org.h2.store.PageStore.readMetaData
|  |  | S30 org.h2.store.PageStore.addMeta R6,R2
|  |  | S30 org.h2.table.RegularTable.addIndex
| 1 |  | S30 org.h2.engine.Database.addSchemaObject R1
|  |  | S30 org.h2.engine.Database.checkWritingAllowed
|  |  | S31 org.h2.store.PageStore.recover
|  |  | S31 org.h2.store.PageStore.readMetaData
|  |  | S31 org.h2.store.PageStore.addMeta R6,R2
|  |  | S31 org.h2.value.CompareMode.getInstance ??org.h2.value.CompareMode.this??
|  |  | S31 name.substring
|  |  | S32 org.h2.command.dml.Set.update
|  | 1 | S32 org.h2.engine.Session.commit R4
| 2 |  | S32 org.h2.engine.Database.flush R1
|  |  | S33 org.h2.command.dml.Set.update
|  | 1 | S33 org.h2.engine.Session.commit R4
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.engine.UndoLog.clear
|  |  | S33 org.h2.store.FileStore.closeAndDeleteSilently
|  |  | S33 org.h2.util.TempFileDeleter.deleteFile ??org.h2.util.TempFileDeleter.this??
|  |  | S33 FileUtils.tryDelete
|  |  | S34 org.h2.store.WriterThread.run R5
| 1 |  | S34 org.h2.engine.Database.flush R1
|  |  | S35 org.h2.store.PageStore.recover
|  |  | S35 org.h2.store.PageStore.readMetaData
|  |  | S35 org.h2.store.PageStore.addMeta R6,R2
|  |  | S35 c.substring
|  |  | S36 org.h2.engine.DatabaseCloser.run R8
| 1 |  | S36 org.h2.engine.Database.close R1
|  |  | S36 Engine.getInstance.close
|  |  | S37 org.h2.expression.SequenceValue.getValue
|  |  | S37 org.h2.schema.Sequence.getNext R9
|  |  | S37 org.h2.schema.Sequence.flush R3,R9
| 1 |  | S37 org.h2.engine.Database.update R1
|  |  | S37 org.h2.engine.Database.addMeta R1
|  |  | S37 org.h2.engine.Session.log
|  |  | S37 org.h2.message.DbException.throwInternalError
|  |  | S37 TraceSystem.traceThrowable
|  |  | S38 org.h2.engine.Engine.createSessionAndValidate
|  |  | S38 org.h2.engine.Engine.openSession R10,R11
|  |  | S38 org.h2.command.CommandInterface.executeUpdate
|  |  | S39 org.h2.engine.Engine.createSessionAndValidate
|  |  | S39 org.h2.engine.Engine.openSession R10,R11
|  |  | S39 org.h2.engine.Session.close
|  |  | S39 org.h2.engine.Database.checkPowerOff
|  |  | S39 org.h2.store.FileLock.unlock ??org.h2.store.FileLock.this??
|  |  | S39 serverSocket.close
|  |  | S40 org.h2.engine.Engine.createSessionAndValidate
|  |  | S40 org.h2.engine.Engine.openSession R10,R11
|  |  | S40 org.h2.engine.Session.close
| 1 |  | S40 org.h2.engine.Database.removeSession R1
|  |  | S40 org.h2.message.Trace.info
|  |  | S40 MessageFormat.format
|  |  | S41 org.h2.engine.Engine.createSessionAndValidate
|  |  | S41 org.h2.engine.Engine.openSession R10,R11
|  |  | S41 org.h2.engine.Session.prepareCommand ??org.h2.engine.Session.this??
|  |  | S42 org.h2.engine.Engine.createSessionAndValidate
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.engine.Engine.openSession R10,R11
|  |  | S42 org.h2.command.CommandInterface.executeUpdate
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 org.h2.table.TableLinkConnection.open R12,R13,R14
|  |  | S43 map.put

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
BLOCKER | QC-JAVCWE089 | Potential SQL Injection | 70
BLOCKER | QC-JAVCWE833 | Potential deadlock between at least two ressources | 23

Line start | Criticity class | Rule
--- | --- | ---
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.createIndex4 dummymethode org.h2.fulltext.FullText.createIndex.columnList//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.createIndex.columnList java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.createIndex.columnList java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.createIndex2 dummymethode org.h2.fulltext.FullText.createIndex.schema//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.createIndex.schema java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.createIndex.schema java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.createIndex3 dummymethode org.h2.fulltext.FullText.createIndex.table//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.createIndex.table java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.createIndex.table java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.dropIndex2 dummymethode org.h2.fulltext.FullText.dropIndex.schema//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.dropIndex.schema java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.dropIndex.schema java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.dropIndex3 dummymethode org.h2.fulltext.FullText.dropIndex.table//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.dropIndex.table java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.dropIndex.table java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) null org.h2.fulltext.FullText.FullTextTrigger.fire org.h2.fulltext.FullText.FullTextTrigger.fire2 org.h2.fulltext.FullText.FullTextTrigger.fire2 dummymethode org.h2.fulltext.FullText.FullTextTrigger.fire.oldRow org.h2.fulltext.FullText.FullTextTrigger.fire.oldRow org.h2.fulltext.FullText.FullTextTrigger.delete org.h2.fulltext.FullText.FullTextTrigger.delete1 org.h2.fulltext.FullText.FullTextTrigger.delete1 dummymethode org.h2.fulltext.FullText.FullTextTrigger.delete.row org.h2.fulltext.FullText.FullTextTrigger.delete.row org.h2.fulltext.FullText.FullTextTrigger.getKey org.h2.fulltext.FullText.FullTextTrigger.delete.key//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.delete.key java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.delete.key java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.tools.SimpleResultSet.next dummymethode org.h2.fulltext.FullText.FullTextTrigger.getWordIds.word//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.getWordIds.word java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.getWordIds.word java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) "SCHEMA" org.h2.tools.SimpleResultSet.getString org.h2.fulltext.FullText.reindex.schema org.h2.fulltext.FullText.reindex.schema org.h2.fulltext.FullText.indexExistingRows org.h2.fulltext.FullText.indexExistingRows2 org.h2.fulltext.FullText.indexExistingRows2 dummymethode org.h2.fulltext.FullText.indexExistingRows.schema org.h2.fulltext.FullText.indexExistingRows.schema org.h2.fulltext.FullText.FullTextTrigger.init org.h2.fulltext.FullText.FullTextTrigger.init2 org.h2.fulltext.FullText.FullTextTrigger.init2 dummymethode org.h2.fulltext.FullText.FullTextTrigger.init.schemaName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.init.schemaName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : None
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.init.schemaName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : None
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) "TABLE" org.h2.tools.SimpleResultSet.getString org.h2.fulltext.FullText.reindex.table org.h2.fulltext.FullText.reindex.table org.h2.fulltext.FullText.indexExistingRows org.h2.fulltext.FullText.indexExistingRows3 org.h2.fulltext.FullText.indexExistingRows3 dummymethode org.h2.fulltext.FullText.indexExistingRows.table org.h2.fulltext.FullText.indexExistingRows.table org.h2.fulltext.FullText.FullTextTrigger.init org.h2.fulltext.FullText.FullTextTrigger.init4 org.h2.fulltext.FullText.FullTextTrigger.init4 dummymethode org.h2.fulltext.FullText.FullTextTrigger.init.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.init.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : None
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.init.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : None
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) 1 org.h2.tools.SimpleResultSet.getObject org.h2.fulltext.FullText.indexExistingRows.row org.h2.fulltext.FullText.indexExistingRows.row org.h2.fulltext.FullText.FullTextTrigger.fire org.h2.fulltext.FullText.FullTextTrigger.fire3 org.h2.fulltext.FullText.FullTextTrigger.fire3 dummymethode org.h2.fulltext.FullText.FullTextTrigger.fire.newRow org.h2.fulltext.FullText.FullTextTrigger.fire.newRow org.h2.fulltext.FullText.FullTextTrigger.insert org.h2.fulltext.FullText.FullTextTrigger.insert1 org.h2.fulltext.FullText.FullTextTrigger.insert1 dummymethode org.h2.fulltext.FullText.FullTextTrigger.insert.row org.h2.fulltext.FullText.FullTextTrigger.insert.row org.h2.fulltext.FullText.FullTextTrigger.getKey org.h2.fulltext.FullText.FullTextTrigger.insert.key//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.insert.key java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.insert.key java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.indexExistingRows.i org.h2.tools.SimpleResultSet.getObject org.h2.fulltext.FullText.indexExistingRows.row org.h2.fulltext.FullText.indexExistingRows.row org.h2.fulltext.FullText.FullTextTrigger.fire org.h2.fulltext.FullText.FullTextTrigger.fire3 org.h2.fulltext.FullText.FullTextTrigger.fire3 dummymethode org.h2.fulltext.FullText.FullTextTrigger.fire.newRow org.h2.fulltext.FullText.FullTextTrigger.fire.newRow org.h2.fulltext.FullText.FullTextTrigger.insert org.h2.fulltext.FullText.FullTextTrigger.insert1 org.h2.fulltext.FullText.FullTextTrigger.insert1 dummymethode org.h2.fulltext.FullText.FullTextTrigger.insert.row org.h2.fulltext.FullText.FullTextTrigger.insert.row org.h2.fulltext.FullText.FullTextTrigger.getKey org.h2.fulltext.FullText.FullTextTrigger.insert.key//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.insert.key java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.insert.key java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.setWhitespaceChars2 dummymethode org.h2.fulltext.FullText.setWhitespaceChars.whitespaceChars//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.setWhitespaceChars.whitespaceChars java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.setWhitespaceChars.whitespaceChars java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.createIndex4 dummymethode org.h2.fulltext.FullTextLucene.createIndex.columnList//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.createIndex.columnList java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.createIndex.columnList java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.createIndex2 dummymethode org.h2.fulltext.FullTextLucene.createIndex.schema//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.createIndex.schema java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.createIndex.schema java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.createIndex3 dummymethode org.h2.fulltext.FullTextLucene.createIndex.table//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.createIndex.table java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.createIndex.table java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getBestRowIdentifier3 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getBestRowIdentifier.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getBestRowIdentifier.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getBestRowIdentifier.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getColumnPrivileges3 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getColumnPrivileges.table//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getColumnPrivileges.table java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getColumnPrivileges.table java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference6 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.foreignTable//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.foreignTable java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.foreignTable java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference3 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.primaryTable//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.primaryTable java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.primaryTable java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getExportedKeys3 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getExportedKeys.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getExportedKeys.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getExportedKeys.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getFunctions1 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getFunctions.section//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getFunctions.section java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getFunctions.section java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getImportedKeys3 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getImportedKeys.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getImportedKeys.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getImportedKeys.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getIndexInfo3 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getIndexInfo.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getIndexInfo.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getIndexInfo.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getPrimaryKeys3 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getPrimaryKeys.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getPrimaryKeys.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getPrimaryKeys.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getTables4 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getTables.types//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getTables.types java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getTables.types java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServer.getOid2 dummymethode org.h2.server.pg.PgServer.getOid.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServer.getOid.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServer.getOid.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) tableName.length tableName.substring org.h2.server.pg.PgServer.getOid.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServer.getOid.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServer.getOid.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServerThread.readInt dummymethode org.h2.server.pg.PgServerThread.process.paramLen org.h2.server.pg.PgServerThread.process.paramLen Utils.newBytes org.h2.server.pg.PgServerThread.process.d2 org.h2.server.pg.PgServerThread.process.d2 org.h2.server.pg.PgServerThread.setParameter org.h2.server.pg.PgServerThread.setParameter3 org.h2.server.pg.PgServerThread.setParameter3 dummymethode org.h2.server.pg.PgServerThread.setParameter.d2 org.h2.server.pg.PgServerThread.setParameter.d2 org.h2.server.pg.PgServerThread.setParameter.String org.h2.server.pg.PgServerThread.setParameter.s//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServerThread.setParameter.s java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServerThread.setParameter.s java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.value.Transfer.readString dummymethode org.h2.server.TcpServerThread.run.originalURL org.h2.server.TcpServerThread.run.originalURL org.h2.server.TcpServer.addConnection org.h2.server.TcpServer.addConnection2 org.h2.server.TcpServer.addConnection2 dummymethode org.h2.server.TcpServer.addConnection.url//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.addConnection.url java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.addConnection.url java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.engine.ConnectionInfo.getUserName org.h2.server.TcpServer.addConnection org.h2.server.TcpServer.addConnection3 org.h2.server.TcpServer.addConnection3 dummymethode org.h2.server.TcpServer.addConnection.user//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.addConnection.user java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.addConnection.user java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.shutdown2 dummymethode org.h2.server.TcpServer.shutdown.password//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.shutdown.password java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.shutdown.password java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) "TABLE_NAME" rs.getString org.h2.server.web.DbTableOrView.name//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.web.DbTableOrView.name java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : None
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.web.DbTableOrView.name java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : None
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.value.ValueString.ValueString1 dummymethode org.h2.value.ValueString.ValueString.value org.h2.value.ValueString.ValueString.value dummymethode org.h2.value.ValueString.value//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.value.ValueString.value java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.value.ValueString.value java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServerThread.process.i org.h2.server.pg.PgServerThread.setParameter org.h2.server.pg.PgServerThread.setParameter2 org.h2.server.pg.PgServerThread.setParameter2 dummymethode org.h2.server.pg.PgServerThread.setParameter.i//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServerThread.setParameter.i java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString1 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServerThread.setParameter.i java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString1 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.value.ValueString.set2 dummymethode org.h2.value.ValueString.set.parameterIndex//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.value.ValueString.set.parameterIndex java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString1 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.value.ValueString.set.parameterIndex java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString1 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R0 : org.h2.engine.Database.reconnectSync
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R1 : org.h2.engine.Database.this
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R2 : org.h2.store.PageStore.this
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R3 : org.h2.schema.Sequence.flush.session
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R4 : org.h2.engine.Session.database
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R5 : org.h2.store.WriterThread.this
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R6 : org.h2.store.PageStore.database
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R7 : org.h2.engine.DbObjectBase.database
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R8 : org.h2.engine.DatabaseCloser.this
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R9 : org.h2.schema.Sequence.this
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R10 : org.h2.engine.Engine.openSession.database
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R11 : org.h2.engine.Engine.this
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R12 : org.h2.table.TableLinkConnection.open.map
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R13 : org.h2.table.TableLinkConnection.open.result
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R14 : org.h2.table.TableLinkConnection.open.t
00001 | BLOCKER | QC-JAVCWE833[00001] Potential deadlock between R5 and R2
00001 | BLOCKER | QC-JAVCWE833[00001] Potential deadlock between R0 and R1
00001 | BLOCKER | QC-JAVCWE833[00001] Potential deadlock between R1 and R2
00001 | BLOCKER | QC-JAVCWE833[00001] Potential deadlock between R1 and R8
00001 | BLOCKER | QC-JAVCWE833[00001] Potential deadlock between R1 and R3
00001 | BLOCKER | QC-JAVCWE833[00001] Potential deadlock between R1 and R9
00001 | BLOCKER | QC-JAVCWE833[00001] Potential deadlock between R3 and R9
00001 | BLOCKER | QC-JAVCWE833[00001] Potential deadlock between R1 and R4

#### File lecode\api\AggregateFunction.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.api.AggregateFunction

Module / class or interface : org.h2.api.AggregateFunction

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | init(Connection) | 1 | 1
int | getType(int[]) | 1 | 1
void | add(Object) | 1 | 1
Object | getResult() | 1 | 1

#### File lecode\api\DatabaseEventListener.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
EventListener | org.h2.api.DatabaseEventListener

Module / class or interface : org.h2.api.DatabaseEventListener

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | init(String) | 1 | 1
void | opened() | 1 | 1
void | exceptionThrown(SQLException;String) | 1 | 1
void | setProgress(int;String;int;int) | 1 | 1
void | closingDatabase() | 1 | 1

#### File lecode\api\JavaObjectSerializer.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.api.JavaObjectSerializer

Module / class or interface : org.h2.api.JavaObjectSerializer

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
byte[] | serialize(Object) | 1 | 1
Object | deserialize(byte[]) | 1 | 1

#### File lecode\api\TableEngine.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.api.TableEngine

Module / class or interface : org.h2.api.TableEngine

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TableBase | createTable(CreateTableData) | 1 | 1

#### File lecode\api\Trigger.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.api.Trigger

Module / class or interface : org.h2.api.Trigger

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | init(Connection;String;String;String;boolean;int) | 1 | 1
void | fire(Connection;Object[];Object[]) | 1 | 1
void | close() | 1 | 1
void | remove() | 1 | 1

#### File lecode\bnf\Bnf.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.bnf.Bnf

Module / class or interface : org.h2.bnf.Bnf

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Bnf | getInstance(Reader) | 2 | 5
void | addFixedRule(String;int) | 1 | 2
RuleHead | addRule(String;String;Rule) | 2 | 5
void | parse(Reader) | 6 | 30
void | visit(BnfVisitor;String) | 1 | 6
String | getRuleMapKey(String) | 4 | 2
RuleHead | getRuleHead(String) | 1 | 1
Rule | parseRule() | 1 | 2
Rule | parseOr() | 2 | 5
Rule | parseList() | 2 | 4
Rule | parseToken() | 12 | 8
void | read() | 3 | 4
String[] | tokenize() | 2 | 20
HashMap<String,String> | getNextTokenList(String) | 2 | 3
void | linkStatements() | 2 | 1
void | updateTopic(String;DbContextRule) | 3 | 6
ArrayList<RuleHead> | getStatements() | 1 | 1
StringTokenizer | getTokenizer(String) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 5

Line start | Criticity class | Rule
--- | --- | ---
00082 | MAJOR | QC-JAV000001[00082] Avoid declaring class instance within loop, performance impact
00086 | MAJOR | QC-JAV000001[00086] Avoid declaring class instance within loop, performance impact
00091 | MAJOR | QC-JAV000001[00091] Avoid declaring class instance within loop, performance impact
00095 | MAJOR | QC-JAV000001[00095] Avoid declaring class instance within loop, performance impact
00251 | MAJOR | QC-JAV000001[00251] Avoid declaring class instance within loop, performance impact
00289 | MAJOR | QC-JAVCWE390[00289] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\bnf\BnfVisitor.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.bnf.BnfVisitor

Module / class or interface : org.h2.bnf.BnfVisitor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | visitRuleElement(boolean;String;Rule) | 1 | 1
void | visitRuleRepeat(boolean;Rule) | 1 | 1
void | visitRuleFixed(int) | 1 | 1
void | visitRuleList(boolean;ArrayList<Rule>) | 1 | 1
void | visitRuleOptional(Rule) | 1 | 1

#### File lecode\bnf\Rule.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.bnf.Rule

Module / class or interface : org.h2.bnf.Rule

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setLinks(HashMap<String,RuleHead>) | 1 | 1
boolean | autoComplete(Sentence) | 1 | 1
void | accept(BnfVisitor) | 1 | 1

#### File lecode\bnf\RuleElement.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.bnf.RuleElement

Module / class or interface : org.h2.bnf.RuleElement

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
RuleElement | RuleElement(String;String) | 1 | 4
void | accept(BnfVisitor) | 1 | 1
void | setLinks(HashMap<String,RuleHead>) | 5 | 8
boolean | autoComplete(Sentence) | 5 | 6

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00043 | MAJOR | QC-JAV000001[00043] Avoid declaring class instance within loop, performance impact
00044 | MAJOR | QC-JAV000001[00044] Avoid declaring class instance within loop, performance impact

#### File lecode\bnf\RuleFixed.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.bnf.RuleFixed

Module / class or interface : org.h2.bnf.RuleFixed

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
RuleFixed | RuleFixed(int) | 1 | 1
void | accept(BnfVisitor) | 1 | 1
void | setLinks(HashMap<String,RuleHead>) | 1 | 0
boolean | autoComplete(Sentence) | 45 | 21

#### File lecode\bnf\RuleHead.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.bnf.RuleHead

Module / class or interface : org.h2.bnf.RuleHead

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
RuleHead | RuleHead(String;String;Rule) | 1 | 3
String | getTopic() | 1 | 1
Rule | getRule() | 1 | 1
void | setRule(Rule) | 1 | 1
String | getSection() | 1 | 1

#### File lecode\bnf\RuleList.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.bnf.RuleList

Module / class or interface : org.h2.bnf.RuleList

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
RuleList | RuleList(Rule;Rule;boolean) | 5 | 6
void | accept(BnfVisitor) | 1 | 1
void | setLinks(HashMap<String,RuleHead>) | 3 | 1
boolean | autoComplete(Sentence) | 5 | 4

#### File lecode\bnf\RuleOptional.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.bnf.RuleOptional

Module / class or interface : org.h2.bnf.RuleOptional

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
RuleOptional | RuleOptional(Rule) | 1 | 1
void | accept(BnfVisitor) | 1 | 1
void | setLinks(HashMap<String,RuleHead>) | 2 | 2
boolean | autoComplete(Sentence) | 1 | 3

#### File lecode\bnf\RuleRepeat.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.bnf.RuleRepeat

Module / class or interface : org.h2.bnf.RuleRepeat

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
RuleRepeat | RuleRepeat(Rule;boolean) | 1 | 2
void | accept(BnfVisitor) | 1 | 1
void | setLinks(HashMap<String,RuleHead>) | 1 | 0
boolean | autoComplete(Sentence) | 1 | 2

#### File lecode\bnf\Sentence.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.bnf.Sentence

Module / class or interface : org.h2.bnf.Sentence

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | start() | 1 | 1
void | stopIfRequired() | 2 | 1
void | add(String;String;int) | 1 | 1
void | addAlias(String;DbTableOrView) | 2 | 2
void | addTable(DbTableOrView) | 2 | 3
HashSet<DbTableOrView> | getTables() | 1 | 1
HashMap<String,DbTableOrView> | getAliases() | 1 | 1
DbTableOrView | getLastTable() | 1 | 1
DbSchema | getLastMatchedSchema() | 1 | 1
void | setLastMatchedSchema(DbSchema) | 1 | 1
void | setLastMatchedTable(DbTableOrView) | 1 | 1
DbTableOrView | getLastMatchedTable() | 1 | 1
void | setQuery(String) | 2 | 2
String | getQuery() | 1 | 1
String | getQueryUpper() | 1 | 1
HashMap<String,String> | getNext() | 1 | 1

#### File lecode\command\Command.java 7 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.command.Command

Module / class or interface : org.h2.command.Command

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Command | Command(Parser;String) | 1 | 3
boolean | isTransactional() | 1 | 1
boolean | isQuery() | 1 | 1
ArrayList<?extendsParameterInterface> | getParameters() | 1 | 1
boolean | isReadOnly() | 1 | 1
ResultInterface | queryMeta() | 1 | 1
int | update() | 1 | 1
ResultInterface | query(int) | 1 | 1
ResultInterface | getMetaData() | 1 | 1
void | start() | 2 | 1
void | setProgress(int) | 1 | 1
void | checkCanceled() | 2 | 2
void | stop() | 9 | 6
ResultInterface | executeQuery(int;boolean) | 2 | 7
int | executeUpdate() | 2 | 8
long | filterConcurrentUpdate(DbException;long) | 4 | 7
void | close() | 1 | 1
void | cancel() | 1 | 1
String | toString() | 1 | 1
boolean | isCacheable() | 1 | 1
boolean | canReuse() | 1 | 1
void | reuse() | 2 | 6

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 6

Line start | Criticity class | Rule
--- | --- | ---
00192 | MAJOR | QC-JAV000001[00192] Avoid declaring class instance within loop, performance impact
00194 | MAJOR | QC-JAV000001[00194] Avoid declaring class instance within loop, performance impact
00231 | MAJOR | QC-JAV000001[00231] Avoid declaring class instance within loop, performance impact
00233 | MAJOR | QC-JAV000001[00233] Avoid declaring class instance within loop, performance impact
00287 | MAJOR | QC-JAV000001[00287] Avoid declaring class instance within loop, performance impact
00287 | MAJOR | QC-JAVCWE390[00287] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00331 | MAJOR | QC-JAV000001[00331] Avoid declaring class instance within loop, performance impact

#### File lecode\command\CommandContainer.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Command | org.h2.command.CommandContainer

Module / class or interface : org.h2.command.CommandContainer

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CommandContainer | CommandContainer(Parser;String;Prepared) | 1 | 3
ArrayList<?extendsParameterInterface> | getParameters() | 1 | 1
boolean | isTransactional() | 1 | 1
boolean | isQuery() | 1 | 1
void | recompileIfRequired() | 3 | 10
int | update() | 1 | 9
ResultInterface | query(int) | 1 | 8
boolean | isReadOnly() | 2 | 3
ResultInterface | queryMeta() | 1 | 1
boolean | isCacheable() | 1 | 1
int | getCommandType() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00057 | MAJOR | QC-JAV000001[00057] Avoid declaring class instance within loop, performance impact
00059 | MAJOR | QC-JAV000001[00059] Avoid declaring class instance within loop, performance impact
00060 | MAJOR | QC-JAV000001[00060] Avoid declaring class instance within loop, performance impact

#### File lecode\command\CommandInterface.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.command.CommandInterface

Module / class or interface : org.h2.command.CommandInterface

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
int | getCommandType() | 1 | 1
boolean | isQuery() | 1 | 1
ArrayList<?extendsParameterInterface> | getParameters() | 1 | 1
ResultInterface | executeQuery(int;boolean) | 1 | 1
int | executeUpdate() | 1 | 1
void | close() | 1 | 1
void | cancel() | 1 | 1
ResultInterface | getMetaData() | 1 | 1

#### File lecode\command\CommandList.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Command | org.h2.command.CommandList

Module / class or interface : org.h2.command.CommandList

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CommandList | CommandList(Parser;String;Command;String) | 1 | 3
ArrayList<?extendsParameterInterface> | getParameters() | 1 | 1
void | executeRemaining() | 3 | 3
int | update() | 1 | 3
ResultInterface | query(int) | 1 | 3
boolean | isQuery() | 1 | 1
boolean | isTransactional() | 1 | 1
boolean | isReadOnly() | 1 | 1
ResultInterface | queryMeta() | 1 | 1
int | getCommandType() | 1 | 1

#### File lecode\command\CommandRemote.java 13 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.command.CommandRemote

Module / class or interface : org.h2.command.CommandRemote

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CommandRemote | CommandRemote(SessionRemote;ArrayList<Transfer>;String;int) | 1 | 8
void | prepare(SessionRemote;boolean) | 2 | 3
boolean | isQuery() | 1 | 1
ArrayList<ParameterInterface> | getParameters() | 1 | 1
void | prepareIfRequired() | 3 | 3
ResultInterface | getMetaData() | 3 | 4
ResultInterface | executeQuery(int;boolean) | 2 | 6
int | executeUpdate() | 2 | 7
void | checkParameters() | 2 | 1
void | sendParameters(Transfer) | 2 | 3
void | close() | 4 | 5
void | cancel() | 1 | 1
String | toString() | 1 | 1
int | getCommandType() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 12
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00108 | INFO | QC-JAV999996[00108] CPD de longueur 56 commencant en 585 (ligne 108) et 761 (ligne 132): = session . getNextId ( ) ; ResultRemote result = null ; for ( int i = 0 , count = 0 ; i _ transferList . size ( ) ; i ++ ) { prepareIfRequired ( ) ; Transfer transfer = transferList . get ( i ) ; try { session . traceOperation ( "COMMAND_GET_META_DATA"
00057 | MAJOR | QC-JAV000001[00057] Avoid declaring class instance within loop, performance impact
00072 | MAJOR | QC-JAV000001[00072] Avoid declaring class instance within loop, performance impact
00077 | MAJOR | QC-JAV000001[00077] Avoid declaring class instance within loop, performance impact
00072 | MAJOR | QC-JAV000001[00072] Avoid declaring class instance within loop, performance impact
00112 | MAJOR | QC-JAV000001[00112] Avoid declaring class instance within loop, performance impact
00120 | MAJOR | QC-JAV000001[00120] Avoid declaring class instance within loop, performance impact
00136 | MAJOR | QC-JAV000001[00136] Avoid declaring class instance within loop, performance impact
00159 | MAJOR | QC-JAV000001[00159] Avoid declaring class instance within loop, performance impact
00176 | MAJOR | QC-JAV000001[00176] Avoid declaring class instance within loop, performance impact
00184 | MAJOR | QC-JAV000001[00184] Avoid declaring class instance within loop, performance impact
00218 | MAJOR | QC-JAV000001[00218] Avoid declaring class instance within loop, performance impact
00226 | MAJOR | QC-JAV000001[00226] Avoid declaring class instance within loop, performance impact

#### File lecode\command\Parser.java 133 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.command.Parser

Module / class or interface : org.h2.command.Parser

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Parser | Parser(Session) | 1 | 3
Prepared | prepare(String) | 2 | 4
Command | prepareCommand(String) | 4 | 5
Prepared | parse(String) | 3 | 5
Prepared | parse(String;boolean) | 3 | 11
Prepared | parsePrepared() | 6 | 8
DbException | getSyntaxError() | 3 | 5
Prepared | parseBackup() | 1 | 4
Prepared | parseAnalyze() | 2 | 3
TransactionCommand | parseBegin() | 2 | 4
TransactionCommand | parseCommit() | 2 | 7
TransactionCommand | parseShutdown() | 7 | 4
TransactionCommand | parseRollback() | 4 | 10
Prepared | parsePrepare() | 4 | 11
TransactionCommand | parseSavepoint() | 1 | 3
Prepared | parseReleaseSavepoint() | 1 | 4
Schema | getSchema(String) | 7 | 3
Schema | getSchema() | 1 | 1
Column | readTableColumn(TableFilter) | 6 | 5
Update | parseUpdate() | 9 | 18
TableFilter | readSimpleTableFilter() | 5 | 4
Delete | parseDelete() | 4 | 14
IndexColumn[] | parseIndexColumnList() | 6 | 7
String[] | parseColumnList() | 2 | 5
Column[] | parseColumnList(Table) | 3 | 4
Column | parseColumn(Table) | 2 | 3
boolean | readIfMore() | 2 | 3
Prepared | parseHelp() | 3 | 9
Prepared | parseShow() | 13 | 5
Prepared | prepare(Session;String;ArrayList<Value>) | 3 | 3
boolean | isSelect() | 1 | 5
Merge | parseMerge() | 7 | 13
Insert | parseInsert() | 12 | 16
TableFilter | readTableFilter(boolean) | 9 | 7
String | readFromAlias(String) | 5 | 2
Prepared | parseTruncate() | 1 | 5
boolean | readIfExists(boolean) | 2 | 3
Prepared | parseComment() | 19 | 21
Prepared | parseDrop() | 17 | 15
DropUserDataType | parseDropUserDataType() | 1 | 6
DropAggregate | parseDropAggregate() | 1 | 6
TableFilter | readJoin(TableFilter;Select;boolean;boolean) | 6 | 5
TableFilter | getNested(TableFilter) | 1 | 4
Prepared | parseExecute() | 4 | 6
DeallocateProcedure | parseDeallocate() | 1 | 5
Explain | parseExplain() | 16 | 5
Query | parseSelect() | 2 | 9
Query | parseSelectUnion() | 1 | 3
Query | parseSelectUnionExtension(Query;int;boolean) | 6 | 3
void | parseEndOfQuery(Query) | 16 | 14
Query | parseSelectSub() | 2 | 5
void | parseSelectSimpleFromPart(Select) | 2 | 3
void | parseJoinTableFilter(TableFilter;Select) | 5 | 7
void | parseSelectSimpleSelectPart(Select) | 9 | 14
Select | parseSelectSimple() | 13 | 29
Table | getDualTable(boolean) | 1 | 3
void | setSQL(Prepared;String;int) | 2 | 3
Expression | readExpression() | 1 | 3
Expression | readAnd() | 1 | 3
Expression | readCondition() | 9 | 9
Expression | readConcat() | 5 | 1
Expression | readSum() | 5 | 1
Expression | readFactor() | 5 | 1
Expression | readAggregate(int) | 10 | 10
ArrayList<SelectOrderBy> | parseSimpleOrderList() | 4 | 7
JavaFunction | readJavaFunction(Schema;String) | 5 | 12
JavaAggregate | readJavaAggregate(UserAggregate) | 2 | 9
int | getAggregateType(String) | 2 | 2
Expression | readFunction(Schema;String) | 17 | 13
Function | readFunctionWithoutParameters(String) | 2 | 4
Expression | readWildcardOrSequenceValue(String;String) | 8 | 5
Expression | readTermObjectDot(String) | 8 | 11
Expression | readTerm() | 32 | 50
Expression | readWhen(Expression) | 4 | 18
int | getPositiveInt() | 2 | 3
int | getInt() | 5 | 8
long | readLong() | 3 | 7
boolean | readBooleanSetting() | 6 | 6
String | readString() | 2 | 4
String | readIdentifierWithSchema(String) | 6 | 8
String | readIdentifierWithSchema() | 1 | 1
String | readAliasIdentifier() | 1 | 1
String | readUniqueIdentifier() | 1 | 1
String | readColumnIdentifier() | 2 | 4
void | read(String) | 2 | 3
boolean | readIf(String) | 2 | 4
boolean | isToken(String) | 2 | 4
boolean | equalsToken(String;String) | 6 | 3
void | addExpected(String) | 2 | 1
void | read() | 14 | 36
void | checkLiterals(boolean) | 3 | 1
void | readHexDecimal(int;int) | 2 | 10
void | readDecimal(int;int) | 7 | 16
Session | getSession() | 1 | 1
void | initialize(String) | 32 | 23
void | checkRunOver(int;int;int) | 2 | 2
int | getSpecialType(String) | 4 | 2
int | getTokenType(String) | 3 | 4
boolean | isKeyword(String) | 2 | 2
boolean | isKeyword(String;boolean) | 2 | 2
int | getSaveTokenType(String;boolean) | 44 | 19
int | getKeywordOrIdentifier(String;String;int) | 2 | 2
Column | parseColumnForTable(String;boolean) | 24 | 29
void | parseAutoIncrement(Column) | 3 | 4
String | readCommentIf() | 2 | 3
Column | parseColumnWithType(String) | 25 | 39
Prepared | parseCreate() | 27 | 15
boolean | addRoleOrRight(GrantRevoke) | 13 | 4
GrantRevoke | parseGrantRevoke(int) | 6 | 8
Select | parseValues() | 1 | 9
TableFilter | parseValuesTable() | 9 | 25
Call | parseCall() | 1 | 4
CreateRole | parseCreateRole() | 1 | 4
CreateSchema | parseCreateSchema() | 3 | 6
CreateSequence | parseCreateSequence() | 5 | 6
boolean | readIfNoExists() | 2 | 4
CreateConstant | parseCreateConstant() | 2 | 11
CreateAggregate | parseCreateAggregate(boolean) | 2 | 11
CreateUserDataType | parseCreateUserDataType() | 2 | 11
CreateTrigger | parseCreateTrigger(boolean) | 13 | 36
CreateUser | parseCreateUser() | 8 | 10
CreateFunctionAlias | parseCreateFunctionAlias(boolean) | 4 | 12
Query | parserWith() | 5 | 39
CreateView | parseCreateView(boolean;boolean) | 4 | 17
TransactionCommand | parseCheckpoint() | 3 | 4
Prepared | parseAlter() | 12 | 3
void | checkSchema(Schema) | 2 | 1
AlterIndexRename | parseAlterIndex() | 1 | 10
AlterView | parseAlterView() | 2 | 8
AlterSchemaRename | parseAlterSchema() | 1 | 10
AlterSequence | parseAlterSequence() | 3 | 9
AlterUser | parseAlterUser() | 10 | 13
void | readIfEqualOrTo() | 2 | 1
Prepared | parseSet() | 13 | 9
Set | parseSetCollation() | 9 | 8
RunScriptCommand | parseRunScript() | 5 | 7
ScriptCommand | parseScript() | 16 | 22
Table | readTableOrView() | 1 | 1
Table | readTableOrView(String) | 5 | 5
FunctionAlias | findFunctionAlias(String;String) | 4 | 4
Sequence | findSequence(String;String) | 4 | 4
Sequence | readSequence() | 3 | 5
Prepared | parseAlterTable() | 13 | 10
AlterTableAlterColumn | parseAlterTableAlterColumnType(Table;String;Column) | 1 | 7
AlterTableAlterColumn | parseAlterTableAddColumn(Table) | 5 | 17
int | parseAction() | 4 | 8
Integer | parseCascadeOrRestrict() | 5 | 3
DefineCommand | parseAlterTableAddConstraintIf(String;Schema) | 19 | 40
void | parseReferences(AlterTableAddConstraint;Schema;String) | 9 | 8
CreateLinkedTable | parseCreateLinkedTable(boolean;boolean;boolean) | 5 | 28
CreateTable | parseCreateTable(boolean;boolean;boolean) | 15 | 18
int | getCompareType(int) | 7 | 7
String | quoteIdentifier(String) | 6 | 8
void | setRightsChecked(boolean) | 1 | 1
Expression | parseExpression(String) | 1 | 4

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 128
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 5

Line start | Criticity class | Rule
--- | --- | ---
00936 | INFO | QC-JAV999996[00936] CPD de longueur 72 commencant en 5735 (ligne 936) et 6011 (ligne 983): ( " ) " ) ) { do { if ( readIf ( "DEFAULT" ) ) { values . add ( null ) ; } else { values . add ( readExpression ( ) ) ; } } while ( readIfMore ( ) ) ; } command . addRow ( values . toArray ( new Expression [ values . size ( ) ] ) ) ; } while ( readIf ( " , " ) )
01371 | INFO | QC-JAV999996[01371] CPD de longueur 77 commencant en 8591 (ligne 1371) et 8685 (ligne 1385): readJoin ( top , command , false , false ) ; Expression on = null ; if ( readIf ( "ON" ) ) { on = readExpression ( ) ; } if ( nestedJoins ) { top . addJoin ( join , false , false , on ) ; } else { top . addJoin ( join , fromOuter , false , on ) ; } last = join ; } else if ( readIf ( "JOIN"
02870 | INFO | QC-JAV999996[02870] CPD de longueur 53 commencant en 17891 (ligne 2870) et 18426 (ligne 2967): { if ( result == null ) { result = sqlCommand . substring ( begin , i ) ; } else { result += sqlCommand . substring ( ( begin - 1 ) , i ) ; } break ; } } if ( chars [ ( ++ i ) ] != '\\"'
03120 | INFO | QC-JAV999996[03120] CPD de longueur 83 commencant en 19364 (ligne 3120) et 19461 (ligne 3137): { changed = true ; startLoop = i ; while ( true ) { c = command [ i ] ; if ( ( c == ' n' ) || ( ( c == '\\r' ) || ( i _= ( len - 1 ) ) ) ) { break ; } command [ ( i ++ ) ] = ' ' ; checkRunOver ( i , len , startLoop ) ; } } else { type = CHAR_SPECIAL_1 ; } break ; case ' - '
04677 | INFO | QC-JAV999996[04677] CPD de longueur 78 commencant en 28928 (ligne 4677) et 29180 (ligne 4721): readExpression ( ) ) ; if ( readIf ( "COMPRESSION" ) ) { command . setCompressionAlgorithm ( readUniqueIdentifier ( ) ) ; } if ( readIf ( "CIPHER" ) ) { command . setCipher ( readUniqueIdentifier ( ) ) ; if ( readIf ( "PASSWORD" ) ) { command . setPassword ( readExpression ( ) ) ; } } if ( readIf ( "CHARSET" ) ) { command . setCharset ( readString ( ) ) ; } return
00458 | MAJOR | QC-JAV000001[00458] Avoid declaring class instance within loop, performance impact
00463 | MAJOR | QC-JAV000001[00463] Avoid declaring class instance within loop, performance impact
00571 | MAJOR | QC-JAV000001[00571] Avoid declaring class instance within loop, performance impact
00667 | MAJOR | QC-JAV000001[00667] Avoid declaring class instance within loop, performance impact
00678 | MAJOR | QC-JAV000001[00678] Avoid declaring class instance within loop, performance impact
00679 | MAJOR | QC-JAV000001[00679] Avoid declaring class instance within loop, performance impact
00688 | MAJOR | QC-JAV000001[00688] Avoid declaring class instance within loop, performance impact
00690 | MAJOR | QC-JAV000001[00690] Avoid declaring class instance within loop, performance impact
00751 | MAJOR | QC-JAV000001[00751] Avoid declaring class instance within loop, performance impact
00775 | MAJOR | QC-JAV000001[00775] Avoid declaring class instance within loop, performance impact
00786 | MAJOR | QC-JAV000001[00786] Avoid declaring class instance within loop, performance impact
00817 | MAJOR | QC-JAV000001[00817] Avoid declaring class instance within loop, performance impact
00893 | MAJOR | QC-JAV000001[00893] Avoid declaring class instance within loop, performance impact
00934 | MAJOR | QC-JAV000001[00934] Avoid declaring class instance within loop, performance impact
00982 | MAJOR | QC-JAV000001[00982] Avoid declaring class instance within loop, performance impact
01004 | MAJOR | QC-JAV000001[01004] Avoid declaring class instance within loop, performance impact
01197 | MAJOR | QC-JAV000001[01197] Avoid declaring class instance within loop, performance impact
01335 | MAJOR | QC-JAV000001[01335] Avoid declaring class instance within loop, performance impact
01337 | MAJOR | QC-JAV000001[01337] Avoid declaring class instance within loop, performance impact
01353 | MAJOR | QC-JAV000001[01353] Avoid declaring class instance within loop, performance impact
01359 | MAJOR | QC-JAV000001[01359] Avoid declaring class instance within loop, performance impact
01370 | MAJOR | QC-JAV000001[01370] Avoid declaring class instance within loop, performance impact
01372 | MAJOR | QC-JAV000001[01372] Avoid declaring class instance within loop, performance impact
01384 | MAJOR | QC-JAV000001[01384] Avoid declaring class instance within loop, performance impact
01386 | MAJOR | QC-JAV000001[01386] Avoid declaring class instance within loop, performance impact
01399 | MAJOR | QC-JAV000001[01399] Avoid declaring class instance within loop, performance impact
01409 | MAJOR | QC-JAV000001[01409] Avoid declaring class instance within loop, performance impact
01410 | MAJOR | QC-JAV000001[01410] Avoid declaring class instance within loop, performance impact
01411 | MAJOR | QC-JAV000001[01411] Avoid declaring class instance within loop, performance impact
01412 | MAJOR | QC-JAV000001[01412] Avoid declaring class instance within loop, performance impact
01413 | MAJOR | QC-JAV000001[01413] Avoid declaring class instance within loop, performance impact
01414 | MAJOR | QC-JAV000001[01414] Avoid declaring class instance within loop, performance impact
01415 | MAJOR | QC-JAV000001[01415] Avoid declaring class instance within loop, performance impact
01416 | MAJOR | QC-JAV000001[01416] Avoid declaring class instance within loop, performance impact
01417 | MAJOR | QC-JAV000001[01417] Avoid declaring class instance within loop, performance impact
01418 | MAJOR | QC-JAV000001[01418] Avoid declaring class instance within loop, performance impact
01421 | MAJOR | QC-JAV000001[01421] Avoid declaring class instance within loop, performance impact
01423 | MAJOR | QC-JAV000001[01423] Avoid declaring class instance within loop, performance impact
01425 | MAJOR | QC-JAV000001[01425] Avoid declaring class instance within loop, performance impact
01416 | MAJOR | QC-JAV000001[01416] Avoid declaring class instance within loop, performance impact
01417 | MAJOR | QC-JAV000001[01417] Avoid declaring class instance within loop, performance impact
01418 | MAJOR | QC-JAV000001[01418] Avoid declaring class instance within loop, performance impact
01421 | MAJOR | QC-JAV000001[01421] Avoid declaring class instance within loop, performance impact
01423 | MAJOR | QC-JAV000001[01423] Avoid declaring class instance within loop, performance impact
01425 | MAJOR | QC-JAV000001[01425] Avoid declaring class instance within loop, performance impact
01418 | MAJOR | QC-JAV000001[01418] Avoid declaring class instance within loop, performance impact
01421 | MAJOR | QC-JAV000001[01421] Avoid declaring class instance within loop, performance impact
01423 | MAJOR | QC-JAV000001[01423] Avoid declaring class instance within loop, performance impact
01425 | MAJOR | QC-JAV000001[01425] Avoid declaring class instance within loop, performance impact
01533 | MAJOR | QC-JAV000001[01533] Avoid declaring class instance within loop, performance impact
01543 | MAJOR | QC-JAV000001[01543] Avoid declaring class instance within loop, performance impact
01548 | MAJOR | QC-JAV000001[01548] Avoid declaring class instance within loop, performance impact
01576 | MAJOR | QC-JAV000001[01576] Avoid declaring class instance within loop, performance impact
01577 | MAJOR | QC-JAV000001[01577] Avoid declaring class instance within loop, performance impact
01578 | MAJOR | QC-JAV000001[01578] Avoid declaring class instance within loop, performance impact
01580 | MAJOR | QC-JAV000001[01580] Avoid declaring class instance within loop, performance impact
01689 | MAJOR | QC-JAV000001[01689] Avoid declaring class instance within loop, performance impact
01699 | MAJOR | QC-JAV000001[01699] Avoid declaring class instance within loop, performance impact
01702 | MAJOR | QC-JAV000001[01702] Avoid declaring class instance within loop, performance impact
01707 | MAJOR | QC-JAV000001[01707] Avoid declaring class instance within loop, performance impact
01716 | MAJOR | QC-JAV000001[01716] Avoid declaring class instance within loop, performance impact
01756 | MAJOR | QC-JAV000001[01756] Avoid declaring class instance within loop, performance impact
01758 | MAJOR | QC-JAV000001[01758] Avoid declaring class instance within loop, performance impact
01811 | MAJOR | QC-JAV000001[01811] Avoid declaring class instance within loop, performance impact
01886 | MAJOR | QC-JAV000001[01886] Avoid declaring class instance within loop, performance impact
01887 | MAJOR | QC-JAV000001[01887] Avoid declaring class instance within loop, performance impact
01894 | MAJOR | QC-JAV000001[01894] Avoid declaring class instance within loop, performance impact
01920 | MAJOR | QC-JAV000001[01920] Avoid declaring class instance within loop, performance impact
01923 | MAJOR | QC-JAV000001[01923] Avoid declaring class instance within loop, performance impact
01924 | MAJOR | QC-JAV000001[01924] Avoid declaring class instance within loop, performance impact
01929 | MAJOR | QC-JAV000001[01929] Avoid declaring class instance within loop, performance impact
01930 | MAJOR | QC-JAV000001[01930] Avoid declaring class instance within loop, performance impact
01930 | MAJOR | QC-JAV000001[01930] Avoid declaring class instance within loop, performance impact
01931 | MAJOR | QC-JAV000001[01931] Avoid declaring class instance within loop, performance impact
01940 | MAJOR | QC-JAV000001[01940] Avoid declaring class instance within loop, performance impact
01942 | MAJOR | QC-JAV000001[01942] Avoid declaring class instance within loop, performance impact
01943 | MAJOR | QC-JAV000001[01943] Avoid declaring class instance within loop, performance impact
01944 | MAJOR | QC-JAV000001[01944] Avoid declaring class instance within loop, performance impact
01954 | MAJOR | QC-JAV000001[01954] Avoid declaring class instance within loop, performance impact
01959 | MAJOR | QC-JAV000001[01959] Avoid declaring class instance within loop, performance impact
01963 | MAJOR | QC-JAV000001[01963] Avoid declaring class instance within loop, performance impact
01967 | MAJOR | QC-JAV000001[01967] Avoid declaring class instance within loop, performance impact
01967 | MAJOR | QC-JAV000001[01967] Avoid declaring class instance within loop, performance impact
01968 | MAJOR | QC-JAV000001[01968] Avoid declaring class instance within loop, performance impact
01968 | MAJOR | QC-JAV000001[01968] Avoid declaring class instance within loop, performance impact
01969 | MAJOR | QC-JAV000001[01969] Avoid declaring class instance within loop, performance impact
01969 | MAJOR | QC-JAV000001[01969] Avoid declaring class instance within loop, performance impact
01970 | MAJOR | QC-JAV000001[01970] Avoid declaring class instance within loop, performance impact
01971 | MAJOR | QC-JAV000001[01971] Avoid declaring class instance within loop, performance impact
01978 | MAJOR | QC-JAV000001[01978] Avoid declaring class instance within loop, performance impact
01979 | MAJOR | QC-JAV000001[01979] Avoid declaring class instance within loop, performance impact
02011 | MAJOR | QC-JAV000001[02011] Avoid declaring class instance within loop, performance impact
02019 | MAJOR | QC-JAV000001[02019] Avoid declaring class instance within loop, performance impact
02100 | MAJOR | QC-JAV000001[02100] Avoid declaring class instance within loop, performance impact
02101 | MAJOR | QC-JAV000001[02101] Avoid declaring class instance within loop, performance impact
02276 | MAJOR | QC-JAV000001[02276] Avoid declaring class instance within loop, performance impact
02277 | MAJOR | QC-JAV000001[02277] Avoid declaring class instance within loop, performance impact
03897 | MAJOR | QC-JAV000001[03897] Avoid declaring class instance within loop, performance impact
03930 | MAJOR | QC-JAV000001[03930] Avoid declaring class instance within loop, performance impact
03933 | MAJOR | QC-JAV000001[03933] Avoid declaring class instance within loop, performance impact
03938 | MAJOR | QC-JAV000001[03938] Avoid declaring class instance within loop, performance impact
03939 | MAJOR | QC-JAV000001[03939] Avoid declaring class instance within loop, performance impact
03944 | MAJOR | QC-JAV000001[03944] Avoid declaring class instance within loop, performance impact
03957 | MAJOR | QC-JAV000001[03957] Avoid declaring class instance within loop, performance impact
03933 | MAJOR | QC-JAV000001[03933] Avoid declaring class instance within loop, performance impact
03938 | MAJOR | QC-JAV000001[03938] Avoid declaring class instance within loop, performance impact
03939 | MAJOR | QC-JAV000001[03939] Avoid declaring class instance within loop, performance impact
03944 | MAJOR | QC-JAV000001[03944] Avoid declaring class instance within loop, performance impact
03957 | MAJOR | QC-JAV000001[03957] Avoid declaring class instance within loop, performance impact
03980 | MAJOR | QC-JAV000001[03980] Avoid declaring class instance within loop, performance impact
03985 | MAJOR | QC-JAV000001[03985] Avoid declaring class instance within loop, performance impact
03989 | MAJOR | QC-JAV000001[03989] Avoid declaring class instance within loop, performance impact
04767 | MAJOR | QC-JAV000001[04767] Avoid declaring class instance within loop, performance impact
04976 | MAJOR | QC-JAV000001[04976] Avoid declaring class instance within loop, performance impact
04977 | MAJOR | QC-JAV000001[04977] Avoid declaring class instance within loop, performance impact
05207 | MAJOR | QC-JAV000001[05207] Avoid declaring class instance within loop, performance impact
05211 | MAJOR | QC-JAV000001[05211] Avoid declaring class instance within loop, performance impact
05212 | MAJOR | QC-JAV000001[05212] Avoid declaring class instance within loop, performance impact
05215 | MAJOR | QC-JAV000001[05215] Avoid declaring class instance within loop, performance impact
05217 | MAJOR | QC-JAV000001[05217] Avoid declaring class instance within loop, performance impact
05224 | MAJOR | QC-JAV000001[05224] Avoid declaring class instance within loop, performance impact
05231 | MAJOR | QC-JAV000001[05231] Avoid declaring class instance within loop, performance impact
05233 | MAJOR | QC-JAV000001[05233] Avoid declaring class instance within loop, performance impact
05243 | MAJOR | QC-JAV000001[05243] Avoid declaring class instance within loop, performance impact
05246 | MAJOR | QC-JAV000001[05246] Avoid declaring class instance within loop, performance impact
05259 | MAJOR | QC-JAV000001[05259] Avoid declaring class instance within loop, performance impact
05263 | MAJOR | QC-JAV000001[05263] Avoid declaring class instance within loop, performance impact
05266 | MAJOR | QC-JAV000001[05266] Avoid declaring class instance within loop, performance impact

#### File lecode\command\Prepared.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.command.Prepared

Module / class or interface : org.h2.command.Prepared

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Prepared | Prepared(Session) | 1 | 2
boolean | isTransactional() | 1 | 1
ResultInterface | queryMeta() | 1 | 1
int | getType() | 1 | 1
boolean | isReadOnly() | 1 | 1
boolean | needRecompile() | 2 | 3
long | getModificationMetaId() | 1 | 1
void | setModificationMetaId(long) | 1 | 1
void | setParameterList(ArrayList<Parameter>) | 1 | 1
ArrayList<Parameter> | getParameters() | 1 | 1
void | checkParameters() | 3 | 0
void | setCommand(Command) | 1 | 1
boolean | isQuery() | 1 | 1
void | prepare() | 1 | 0
int | update() | 1 | 1
ResultInterface | query(int) | 1 | 1
void | setSQL(String) | 1 | 1
String | getSQL() | 1 | 1
int | getCurrentObjectId() | 1 | 1
int | getObjectId() | 3 | 4
String | getPlanSQL() | 1 | 1
void | checkCanceled() | 2 | 3
void | setObjectId(int) | 1 | 2
void | setSession(Session) | 1 | 1
void | trace(long;int) | 2 | 3
void | setPrepareAlways(boolean) | 1 | 1
void | setCurrentRowNumber(int) | 2 | 3
int | getCurrentRowNumber() | 1 | 1
void | setProgress() | 2 | 1
String | toString() | 1 | 1
String | getSQL(Value[]) | 3 | 3
String | getSQL(Expression[]) | 3 | 3
DbException | setRow(DbException;int;String) | 3 | 6
boolean | isCacheable() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00162 | MAJOR | QC-JAV000001[00162] Avoid declaring class instance within loop, performance impact

#### File lecode\command\ddl\AlterIndexRename.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.AlterIndexRename

Module / class or interface : org.h2.command.ddl.AlterIndexRename

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
AlterIndexRename | AlterIndexRename(Session) | 1 | 1
void | setOldIndex(Index) | 1 | 1
void | setNewName(String) | 1 | 1
int | update() | 2 | 7
int | getType() | 1 | 1

#### File lecode\command\ddl\AlterSchemaRename.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.AlterSchemaRename

Module / class or interface : org.h2.command.ddl.AlterSchemaRename

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
AlterSchemaRename | AlterSchemaRename(Session) | 1 | 1
void | setOldSchema(Schema) | 1 | 1
void | setNewName(String) | 1 | 1
int | update() | 4 | 9
int | getType() | 1 | 1

#### File lecode\command\ddl\AlterTableAddConstraint.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.AlterTableAddConstraint

Module / class or interface : org.h2.command.ddl.AlterTableAddConstraint

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
AlterTableAddConstraint | AlterTableAddConstraint(Session;Schema;boolean) | 1 | 2
String | generateConstraintName(Table) | 2 | 2
int | update() | 1 | 2
int | tryUpdate() | 10 | 14
Index | createIndex(Table;IndexColumn[];boolean) | 3 | 9
void | setDeleteAction(int) | 1 | 1
void | setUpdateAction(int) | 1 | 1
Index | getUniqueIndex(Table;IndexColumn[]) | 3 | 1
Index | getIndex(Table;IndexColumn[]) | 3 | 1
boolean | canUseUniqueIndex(Index;Table;IndexColumn[]) | 6 | 6
boolean | canUseIndex(Index;Table;IndexColumn[]) | 5 | 5
void | setConstraintName(String) | 1 | 1
void | setType(int) | 1 | 1
int | getType() | 1 | 1
void | setCheckExpression(Expression) | 1 | 1
void | setTableName(String) | 1 | 1
void | setIndexColumns(IndexColumn[]) | 1 | 1
IndexColumn[] | getIndexColumns() | 1 | 1
void | setRefTableName(Schema;String) | 1 | 2
void | setRefIndexColumns(IndexColumn[]) | 1 | 1
void | setIndex(Index) | 1 | 1
void | setRefIndex(Index) | 1 | 1
void | setComment(String) | 1 | 1
void | setCheckExisting(boolean) | 1 | 1
void | setPrimaryKeyHash(boolean) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00101 | MAJOR | QC-JAV000001[00101] Avoid declaring class instance within loop, performance impact

#### File lecode\command\ddl\AlterTableAlterColumn.java 25 rule violations (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.AlterTableAlterColumn

Module / class or interface : org.h2.command.ddl.AlterTableAlterColumn

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
AlterTableAlterColumn | AlterTableAlterColumn(Session;Schema) | 1 | 1
void | setTable(Table) | 1 | 1
void | setOldColumn(Column) | 1 | 1
void | setAddBefore(String) | 1 | 1
int | update() | 11 | 9
void | checkDefaultReferencesTable(Expression) | 3 | 5
void | convertAutoIncrementColumn(Column) | 4 | 0
void | removeSequence(Sequence) | 2 | 4
void | copyData() | 10 | 16
Table | cloneTableStructure(Column[];Database;String;ArrayList<Column>) | 30 | 38
void | checkViews(SchemaObject;SchemaObject) | 1 | 7
void | checkViewsAreValid(DbObject) | 3 | 0
void | execute(String;boolean) | 2 | 3
void | checkNullable() | 4 | 1
void | checkNoNullValues() | 2 | 5
void | setType(int) | 1 | 1
void | setSelectivity(Expression) | 1 | 1
void | setDefaultExpression(Expression) | 1 | 1
void | setNewColumn(Column) | 1 | 1
int | getType() | 1 | 1
void | setIfNotExists(boolean) | 1 | 1
void | setNewColumns(ArrayList<Column>) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 25

Line start | Criticity class | Rule
--- | --- | ---
00234 | MAJOR | QC-JAV000001[00234] Avoid declaring class instance within loop, performance impact
00237 | MAJOR | QC-JAV000001[00237] Avoid declaring class instance within loop, performance impact
00243 | MAJOR | QC-JAV000001[00243] Avoid declaring class instance within loop, performance impact
00243 | MAJOR | QC-JAV000001[00243] Avoid declaring class instance within loop, performance impact
00244 | MAJOR | QC-JAV000001[00244] Avoid declaring class instance within loop, performance impact
00248 | MAJOR | QC-JAV000001[00248] Avoid declaring class instance within loop, performance impact
00258 | MAJOR | QC-JAV000001[00258] Avoid declaring class instance within loop, performance impact
00313 | MAJOR | QC-JAV000001[00313] Avoid declaring class instance within loop, performance impact
00336 | MAJOR | QC-JAV000001[00336] Avoid declaring class instance within loop, performance impact
00338 | MAJOR | QC-JAV000001[00338] Avoid declaring class instance within loop, performance impact
00339 | MAJOR | QC-JAV000001[00339] Avoid declaring class instance within loop, performance impact
00339 | MAJOR | QC-JAV000001[00339] Avoid declaring class instance within loop, performance impact
00344 | MAJOR | QC-JAV000001[00344] Avoid declaring class instance within loop, performance impact
00348 | MAJOR | QC-JAV000001[00348] Avoid declaring class instance within loop, performance impact
00353 | MAJOR | QC-JAV000001[00353] Avoid declaring class instance within loop, performance impact
00354 | MAJOR | QC-JAV000001[00354] Avoid declaring class instance within loop, performance impact
00355 | MAJOR | QC-JAV000001[00355] Avoid declaring class instance within loop, performance impact
00356 | MAJOR | QC-JAV000001[00356] Avoid declaring class instance within loop, performance impact
00356 | MAJOR | QC-JAV000001[00356] Avoid declaring class instance within loop, performance impact
00365 | MAJOR | QC-JAV000001[00365] Avoid declaring class instance within loop, performance impact
00376 | MAJOR | QC-JAV000001[00376] Avoid declaring class instance within loop, performance impact
00419 | MAJOR | QC-JAV000001[00419] Avoid declaring class instance within loop, performance impact
00420 | MAJOR | QC-JAV000001[00420] Avoid declaring class instance within loop, performance impact
00420 | MAJOR | QC-JAV000001[00420] Avoid declaring class instance within loop, performance impact
00443 | MAJOR | QC-JAV000001[00443] Avoid declaring class instance within loop, performance impact

#### File lecode\command\ddl\AlterTableDropConstraint.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.AlterTableDropConstraint

Module / class or interface : org.h2.command.ddl.AlterTableDropConstraint

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
AlterTableDropConstraint | AlterTableDropConstraint(Session;Schema;boolean) | 1 | 2
void | setConstraintName(String) | 1 | 1
int | update() | 4 | 6
int | getType() | 1 | 1

#### File lecode\command\ddl\AlterTableRename.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.AlterTableRename

Module / class or interface : org.h2.command.ddl.AlterTableRename

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
AlterTableRename | AlterTableRename(Session;Schema) | 1 | 1
void | setOldTable(Table) | 1 | 1
void | setNewTableName(String) | 1 | 1
int | update() | 5 | 9
int | getType() | 1 | 1
void | setHidden(boolean) | 1 | 1

#### File lecode\command\ddl\AlterTableRenameColumn.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.AlterTableRenameColumn

Module / class or interface : org.h2.command.ddl.AlterTableRenameColumn

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
AlterTableRenameColumn | AlterTableRenameColumn(Session) | 1 | 1
void | setTable(Table) | 1 | 1
void | setColumn(Column) | 1 | 1
void | setNewColumnName(String) | 1 | 1
int | update() | 3 | 8
int | getType() | 1 | 1

#### File lecode\command\ddl\AlterUser.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.AlterUser

Module / class or interface : org.h2.command.ddl.AlterUser

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
AlterUser | AlterUser(Session) | 1 | 1
void | setType(int) | 1 | 1
void | setNewName(String) | 1 | 1
void | setUser(User) | 1 | 1
void | setAdmin(boolean) | 1 | 1
void | setSalt(Expression) | 1 | 1
void | setHash(Expression) | 1 | 1
void | setPassword(Expression) | 1 | 1
char[] | getCharArray(Expression) | 1 | 1
byte[] | getByteArray(Expression) | 1 | 1
int | update() | 9 | 12
int | getType() | 1 | 1

#### File lecode\command\ddl\AlterView.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.AlterView

Module / class or interface : org.h2.command.ddl.AlterView

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
AlterView | AlterView(Session) | 1 | 1
void | setView(TableView) | 1 | 1
int | update() | 2 | 5
int | getType() | 1 | 1

#### File lecode\command\ddl\Analyze.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.Analyze

Module / class or interface : org.h2.command.ddl.Analyze

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Analyze | Analyze(Session) | 1 | 2
int | update() | 2 | 5
void | analyzeTable(Session;Table;int;boolean) | 17 | 22
void | setTop(int) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\CreateAggregate.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.CreateAggregate

Module / class or interface : org.h2.command.ddl.CreateAggregate

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CreateAggregate | CreateAggregate(Session) | 1 | 1
int | update() | 4 | 7
void | setSchema(Schema) | 1 | 1
void | setName(String) | 1 | 1
void | setJavaClassMethod(String) | 1 | 1
void | setIfNotExists(boolean) | 1 | 1
void | setForce(boolean) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\CreateConstant.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.CreateConstant

Module / class or interface : org.h2.command.ddl.CreateConstant

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CreateConstant | CreateConstant(Session;Schema) | 1 | 1
void | setIfNotExists(boolean) | 1 | 1
int | update() | 3 | 11
void | setConstantName(String) | 1 | 1
void | setExpression(Expression) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\CreateFunctionAlias.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.CreateFunctionAlias

Module / class or interface : org.h2.command.ddl.CreateFunctionAlias

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CreateFunctionAlias | CreateFunctionAlias(Session;Schema) | 1 | 1
int | update() | 6 | 8
void | setAliasName(String) | 1 | 1
void | setJavaClassMethod(String) | 1 | 1
void | setIfNotExists(boolean) | 1 | 1
void | setForce(boolean) | 1 | 1
void | setDeterministic(boolean) | 1 | 1
void | setSource(String) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\CreateIndex.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.CreateIndex

Module / class or interface : org.h2.command.ddl.CreateIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CreateIndex | CreateIndex(Session;Schema) | 1 | 1
void | setIfNotExists(boolean) | 1 | 1
void | setTableName(String) | 1 | 1
void | setIndexName(String) | 1 | 1
void | setIndexColumns(IndexColumn[]) | 1 | 1
int | update() | 13 | 16
void | setPrimaryKey(boolean) | 1 | 1
void | setUnique(boolean) | 1 | 1
void | setHash(boolean) | 1 | 1
void | setComment(String) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\CreateLinkedTable.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.CreateLinkedTable

Module / class or interface : org.h2.command.ddl.CreateLinkedTable

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CreateLinkedTable | CreateLinkedTable(Session;Schema) | 1 | 1
void | setTableName(String) | 1 | 1
void | setDriver(String) | 1 | 1
void | setOriginalTable(String) | 1 | 1
void | setPassword(String) | 1 | 1
void | setUrl(String) | 1 | 1
void | setUser(String) | 1 | 1
void | setIfNotExists(boolean) | 1 | 1
int | update() | 5 | 13
void | setEmitUpdates(boolean) | 1 | 1
void | setComment(String) | 1 | 1
void | setForce(boolean) | 1 | 1
void | setTemporary(boolean) | 1 | 1
void | setGlobalTemporary(boolean) | 1 | 1
void | setReadOnly(boolean) | 1 | 1
void | setOriginalSchema(String) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\CreateRole.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.CreateRole

Module / class or interface : org.h2.command.ddl.CreateRole

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CreateRole | CreateRole(Session) | 1 | 1
void | setIfNotExists(boolean) | 1 | 1
void | setRoleName(String) | 1 | 1
int | update() | 4 | 9
int | getType() | 1 | 1

#### File lecode\command\ddl\CreateSchema.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.CreateSchema

Module / class or interface : org.h2.command.ddl.CreateSchema

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CreateSchema | CreateSchema(Session) | 1 | 1
void | setIfNotExists(boolean) | 1 | 1
int | update() | 3 | 10
void | setSchemaName(String) | 1 | 1
void | setAuthorization(String) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\CreateSequence.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.CreateSequence

Module / class or interface : org.h2.command.ddl.CreateSequence

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CreateSequence | CreateSequence(Session;Schema) | 1 | 1
void | setSequenceName(String) | 1 | 1
void | setIfNotExists(boolean) | 1 | 1
int | update() | 3 | 10
long | getLong(Expression;long) | 2 | 2
void | setStartWith(Expression) | 1 | 1
void | setIncrement(Expression) | 1 | 1
void | setBelongsToTable(boolean) | 1 | 1
void | setCacheSize(Expression) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\CreateTable.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.CreateTable

Module / class or interface : org.h2.command.ddl.CreateTable

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CreateTable | CreateTable(Session;Schema) | 1 | 3
void | setQuery(Query) | 1 | 1
void | setTemporary(boolean) | 1 | 1
void | setTableName(String) | 1 | 1
void | addColumn(Column) | 1 | 1
void | addConstraintCommand(DefineCommand) | 6 | 3
void | setIfNotExists(boolean) | 1 | 1
int | update() | 24 | 21
void | generateColumnsFromQuery() | 5 | 13
boolean | setPrimaryKeyColumns(IndexColumn[]) | 4 | 4
void | setPersistIndexes(boolean) | 1 | 1
void | setGlobalTemporary(boolean) | 1 | 1
void | setOnCommitDrop() | 1 | 1
void | setOnCommitTruncate() | 1 | 1
void | setComment(String) | 1 | 1
void | setPersistData(boolean) | 2 | 2
void | setSortedInsertMode(boolean) | 1 | 1
void | setTableEngine(String) | 1 | 1
void | setHidden(boolean) | 1 | 1
int | getType() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 6

Line start | Criticity class | Rule
--- | --- | ---
00120 | MAJOR | QC-JAV000001[00120] Avoid declaring class instance within loop, performance impact
00141 | MAJOR | QC-JAV000001[00141] Avoid declaring class instance within loop, performance impact
00201 | MAJOR | QC-JAV000001[00201] Avoid declaring class instance within loop, performance impact
00203 | MAJOR | QC-JAV000001[00203] Avoid declaring class instance within loop, performance impact
00206 | MAJOR | QC-JAV000001[00206] Avoid declaring class instance within loop, performance impact
00220 | MAJOR | QC-JAV000001[00220] Avoid declaring class instance within loop, performance impact

#### File lecode\command\ddl\CreateTableData.java 12 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.command.ddl.CreateTableData

Module / class or interface : org.h2.command.ddl.CreateTableData

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 12

Line start | Criticity class | Rule
--- | --- | ---
00023 | MAJOR | QC-JAVCWE493[00023] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00028 | MAJOR | QC-JAVCWE493[00028] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00033 | MAJOR | QC-JAVCWE493[00033] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00038 | MAJOR | QC-JAVCWE493[00038] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00043 | MAJOR | QC-JAVCWE493[00043] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00048 | MAJOR | QC-JAVCWE493[00048] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00053 | MAJOR | QC-JAVCWE493[00053] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00058 | MAJOR | QC-JAVCWE493[00058] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00063 | MAJOR | QC-JAVCWE493[00063] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00068 | MAJOR | QC-JAVCWE493[00068] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00073 | MAJOR | QC-JAVCWE493[00073] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00078 | MAJOR | QC-JAVCWE493[00078] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)

#### File lecode\command\ddl\CreateTrigger.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.CreateTrigger

Module / class or interface : org.h2.command.ddl.CreateTrigger

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CreateTrigger | CreateTrigger(Session;Schema) | 1 | 1
void | setInsteadOf(boolean) | 1 | 1
void | setBefore(boolean) | 1 | 1
void | setTriggerClassName(String) | 1 | 1
void | setTypeMask(int) | 1 | 1
void | setRowBased(boolean) | 1 | 1
void | setQueueSize(int) | 1 | 1
void | setNoWait(boolean) | 1 | 1
void | setTableName(String) | 1 | 1
void | setTriggerName(String) | 1 | 1
void | setIfNotExists(boolean) | 1 | 1
int | update() | 3 | 17
void | setForce(boolean) | 1 | 1
void | setOnRollback(boolean) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\CreateUser.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.CreateUser

Module / class or interface : org.h2.command.ddl.CreateUser

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CreateUser | CreateUser(Session) | 1 | 1
void | setIfNotExists(boolean) | 1 | 1
void | setUserName(String) | 1 | 1
void | setPassword(Expression) | 1 | 1
char[] | getCharArray(Expression) | 1 | 1
byte[] | getByteArray(Expression) | 1 | 1
int | update() | 10 | 16
void | setSalt(Expression) | 1 | 1
void | setHash(Expression) | 1 | 1
void | setAdmin(boolean) | 1 | 1
void | setComment(String) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\CreateUserDataType.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.CreateUserDataType

Module / class or interface : org.h2.command.ddl.CreateUserDataType

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CreateUserDataType | CreateUserDataType(Session) | 1 | 1
void | setTypeName(String) | 1 | 1
void | setColumn(Column) | 1 | 1
void | setIfNotExists(boolean) | 1 | 1
int | update() | 6 | 12
int | getType() | 1 | 1

#### File lecode\command\ddl\CreateView.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.CreateView

Module / class or interface : org.h2.command.ddl.CreateView

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CreateView | CreateView(Session;Schema) | 1 | 1
void | setViewName(String) | 1 | 1
void | setSelect(Query) | 1 | 1
void | setIfNotExists(boolean) | 1 | 1
void | setSelectSQL(String) | 1 | 1
void | setColumnNames(String[]) | 1 | 1
void | setComment(String) | 1 | 1
void | setOrReplace(boolean) | 1 | 1
void | setForce(boolean) | 1 | 1
int | update() | 12 | 16
int | getType() | 1 | 1

#### File lecode\command\ddl\DeallocateProcedure.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.DeallocateProcedure

Module / class or interface : org.h2.command.ddl.DeallocateProcedure

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DeallocateProcedure | DeallocateProcedure(Session) | 1 | 1
int | update() | 1 | 2
void | setProcedureName(String) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\DefineCommand.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Prepared | org.h2.command.ddl.DefineCommand

Module / class or interface : org.h2.command.ddl.DefineCommand

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DefineCommand | DefineCommand(Session) | 1 | 1
boolean | isReadOnly() | 1 | 1
ResultInterface | queryMeta() | 1 | 1
void | setTransactional(boolean) | 1 | 1
boolean | isTransactional() | 1 | 1

#### File lecode\command\ddl\DropAggregate.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.DropAggregate

Module / class or interface : org.h2.command.ddl.DropAggregate

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DropAggregate | DropAggregate(Session) | 1 | 1
int | update() | 4 | 6
void | setName(String) | 1 | 1
void | setIfExists(boolean) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\DropConstant.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.DropConstant

Module / class or interface : org.h2.command.ddl.DropConstant

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DropConstant | DropConstant(Session;Schema) | 1 | 1
void | setIfExists(boolean) | 1 | 1
void | setConstantName(String) | 1 | 1
int | update() | 4 | 6
int | getType() | 1 | 1

#### File lecode\command\ddl\DropDatabase.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.DropDatabase

Module / class or interface : org.h2.command.ddl.DropDatabase

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DropDatabase | DropDatabase(Session) | 1 | 1
int | update() | 3 | 3
void | dropAllObjects() | 17 | 19
void | setDropAllObjects(boolean) | 1 | 1
void | setDeleteFiles(boolean) | 1 | 1
int | getType() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00092 | MAJOR | QC-JAV000001[00092] Avoid declaring class instance within loop, performance impact
00103 | MAJOR | QC-JAV000001[00103] Avoid declaring class instance within loop, performance impact

#### File lecode\command\ddl\DropFunctionAlias.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.DropFunctionAlias

Module / class or interface : org.h2.command.ddl.DropFunctionAlias

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DropFunctionAlias | DropFunctionAlias(Session;Schema) | 1 | 1
int | update() | 4 | 6
void | setAliasName(String) | 1 | 1
void | setIfExists(boolean) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\DropIndex.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.DropIndex

Module / class or interface : org.h2.command.ddl.DropIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DropIndex | DropIndex(Session;Schema) | 1 | 1
void | setIfExists(boolean) | 1 | 1
void | setIndexName(String) | 1 | 1
int | update() | 7 | 9
int | getType() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00056 | MAJOR | QC-JAV000001[00056] Avoid declaring class instance within loop, performance impact

#### File lecode\command\ddl\DropRole.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.DropRole

Module / class or interface : org.h2.command.ddl.DropRole

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DropRole | DropRole(Session) | 1 | 1
void | setRoleName(String) | 1 | 1
int | update() | 5 | 7
void | setIfExists(boolean) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\DropSchema.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.DropSchema

Module / class or interface : org.h2.command.ddl.DropSchema

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DropSchema | DropSchema(Session) | 1 | 1
void | setSchemaName(String) | 1 | 1
int | update() | 5 | 6
void | setIfExists(boolean) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\DropSequence.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.DropSequence

Module / class or interface : org.h2.command.ddl.DropSequence

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DropSequence | DropSequence(Session;Schema) | 1 | 1
void | setIfExists(boolean) | 1 | 1
void | setSequenceName(String) | 1 | 1
int | update() | 5 | 6
int | getType() | 1 | 1

#### File lecode\command\ddl\DropTable.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.DropTable

Module / class or interface : org.h2.command.ddl.DropTable

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DropTable | DropTable(Session;Schema) | 1 | 2
void | addNextDropTable(DropTable) | 3 | 2
void | setIfExists(boolean) | 2 | 2
void | setTableName(String) | 1 | 1
void | prepareDrop() | 7 | 4
void | executeDrop() | 3 | 6
int | update() | 1 | 4
void | setDropAction(int) | 2 | 2
int | getType() | 1 | 1

#### File lecode\command\ddl\DropTrigger.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.DropTrigger

Module / class or interface : org.h2.command.ddl.DropTrigger

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DropTrigger | DropTrigger(Session;Schema) | 1 | 1
void | setIfExists(boolean) | 1 | 1
void | setTriggerName(String) | 1 | 1
int | update() | 4 | 7
int | getType() | 1 | 1

#### File lecode\command\ddl\DropUser.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.DropUser

Module / class or interface : org.h2.command.ddl.DropUser

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DropUser | DropUser(Session) | 1 | 1
void | setIfExists(boolean) | 1 | 1
void | setUserName(String) | 1 | 1
int | update() | 5 | 7
boolean | isTransactional() | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\DropUserDataType.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.DropUserDataType

Module / class or interface : org.h2.command.ddl.DropUserDataType

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DropUserDataType | DropUserDataType(Session) | 1 | 1
void | setIfExists(boolean) | 1 | 1
int | update() | 4 | 6
void | setTypeName(String) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\DropView.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.ddl.DropView

Module / class or interface : org.h2.command.ddl.DropView

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DropView | DropView(Session;Schema) | 1 | 2
void | setIfExists(boolean) | 1 | 1
void | setDropAction(int) | 1 | 1
void | setViewName(String) | 1 | 1
int | update() | 6 | 6
int | getType() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00064 | MAJOR | QC-JAV000001[00064] Avoid declaring class instance within loop, performance impact

#### File lecode\command\ddl\GrantRevoke.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.GrantRevoke

Module / class or interface : org.h2.command.ddl.GrantRevoke

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
GrantRevoke | GrantRevoke(Session) | 1 | 1
void | setOperationType(int) | 1 | 1
void | addRight(int) | 1 | 1
void | addRoleName(String) | 2 | 2
void | setGranteeName(String) | 3 | 3
int | update() | 8 | 4
void | grantRight() | 4 | 2
void | grantRole(Role) | 4 | 7
void | revokeRight() | 5 | 4
void | revokeRole(Role) | 2 | 4
boolean | isTransactional() | 1 | 1
void | addTable(Table) | 1 | 1
int | getType() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 4

Line start | Criticity class | Rule
--- | --- | ---
00082 | MAJOR | QC-JAV000001[00082] Avoid declaring class instance within loop, performance impact
00109 | MAJOR | QC-JAV000001[00109] Avoid declaring class instance within loop, performance impact
00141 | MAJOR | QC-JAV000001[00141] Avoid declaring class instance within loop, performance impact
00147 | MAJOR | QC-JAV000001[00147] Avoid declaring class instance within loop, performance impact

#### File lecode\command\ddl\PrepareProcedure.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.PrepareProcedure

Module / class or interface : org.h2.command.ddl.PrepareProcedure

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PrepareProcedure | PrepareProcedure(Session) | 1 | 1
void | checkParameters() | 1 | 0
int | update() | 1 | 6
void | setProcedureName(String) | 1 | 1
void | setPrepared(Prepared) | 1 | 1
ArrayList<Parameter> | getParameters() | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\SchemaCommand.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.SchemaCommand

Module / class or interface : org.h2.command.ddl.SchemaCommand

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SchemaCommand | SchemaCommand(Session;Schema) | 1 | 2
Schema | getSchema() | 1 | 1

#### File lecode\command\ddl\SetComment.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.SetComment

Module / class or interface : org.h2.command.ddl.SetComment

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SetComment | SetComment(Session) | 1 | 1
int | update() | 20 | 45
void | setCommentExpression(Expression) | 1 | 1
void | setObjectName(String) | 1 | 1
void | setObjectType(int) | 1 | 1
void | setColumnName(String) | 1 | 1
void | setSchemaName(String) | 1 | 1
void | setColumn(boolean) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\ddl\TruncateTable.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DefineCommand | org.h2.command.ddl.TruncateTable

Module / class or interface : org.h2.command.ddl.TruncateTable

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TruncateTable | TruncateTable(Session) | 1 | 1
void | setTable(Table) | 1 | 1
int | update() | 2 | 6
int | getType() | 1 | 1

#### File lecode\command\dml\AlterSequence.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.dml.AlterSequence

Module / class or interface : org.h2.command.dml.AlterSequence

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
AlterSequence | AlterSequence(Session;Schema) | 1 | 1
void | setSequence(Sequence) | 1 | 1
boolean | isTransactional() | 1 | 1
void | setColumn(Column) | 2 | 3
void | setStartWith(Expression) | 1 | 1
void | setIncrement(Expression) | 1 | 1
int | update() | 5 | 10
int | getType() | 1 | 1

#### File lecode\command\dml\AlterTableSet.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaCommand | org.h2.command.dml.AlterTableSet

Module / class or interface : org.h2.command.dml.AlterTableSet

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
AlterTableSet | AlterTableSet(Session;Schema;int;boolean) | 1 | 3
void | setCheckExisting(boolean) | 1 | 1
boolean | isTransactional() | 1 | 1
void | setTableName(String) | 1 | 1
int | update() | 2 | 7
int | getType() | 1 | 1

#### File lecode\command\dml\BackupCommand.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Prepared | org.h2.command.dml.BackupCommand

Module / class or interface : org.h2.command.dml.BackupCommand

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
BackupCommand | BackupCommand(Session) | 1 | 1
void | setFileName(Expression) | 1 | 1
int | update() | 1 | 4
void | backupTo(String) | 3 | 17
void | backupPageStore(ZipOutputStream;String;PageStore) | 1 | 7
void | backupFile(ZipOutputStream;String;String) | 2 | 9
boolean | isTransactional() | 1 | 1
String | correctFileName(String) | 2 | 3
boolean | needRecompile() | 1 | 1
ResultInterface | queryMeta() | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\dml\Call.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Prepared | org.h2.command.dml.Call

Module / class or interface : org.h2.command.dml.Call

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Call | Call(Session) | 1 | 1
ResultInterface | queryMeta() | 3 | 6
int | update() | 4 | 5
ResultInterface | query(int) | 2 | 10
void | prepare() | 2 | 4
void | setExpression(Expression) | 1 | 1
boolean | isQuery() | 1 | 1
boolean | isTransactional() | 1 | 1
boolean | isReadOnly() | 1 | 1
int | getType() | 1 | 1
boolean | isCacheable() | 1 | 1

#### File lecode\command\dml\Delete.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Prepared | org.h2.command.dml.Delete

Module / class or interface : org.h2.command.dml.Delete

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Delete | Delete(Session) | 1 | 1
void | setTableFilter(TableFilter) | 1 | 1
void | setCondition(Expression) | 1 | 1
int | update() | 5 | 17
String | getPlanSQL() | 3 | 6
void | prepare() | 2 | 6
boolean | isTransactional() | 1 | 1
ResultInterface | queryMeta() | 1 | 1
int | getType() | 1 | 1
void | setLimit(Expression) | 1 | 1
boolean | isCacheable() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00073 | MAJOR | QC-JAV000001[00073] Avoid declaring class instance within loop, performance impact
00092 | MAJOR | QC-JAV000001[00092] Avoid declaring class instance within loop, performance impact
00098 | MAJOR | QC-JAV000001[00098] Avoid declaring class instance within loop, performance impact

#### File lecode\command\dml\ExecuteProcedure.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Prepared | org.h2.command.dml.ExecuteProcedure

Module / class or interface : org.h2.command.dml.ExecuteProcedure

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ExecuteProcedure | ExecuteProcedure(Session) | 1 | 1
void | setProcedure(Procedure) | 1 | 1
void | setExpression(int;Expression) | 1 | 1
void | setParameters() | 2 | 7
boolean | isQuery() | 1 | 2
int | update() | 1 | 3
ResultInterface | query(int) | 1 | 3
boolean | isTransactional() | 1 | 1
ResultInterface | queryMeta() | 1 | 2
int | getType() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00050 | MAJOR | QC-JAV000001[00050] Avoid declaring class instance within loop, performance impact
00051 | MAJOR | QC-JAV000001[00051] Avoid declaring class instance within loop, performance impact

#### File lecode\command\dml\Explain.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Prepared | org.h2.command.dml.Explain

Module / class or interface : org.h2.command.dml.Explain

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Explain | Explain(Session) | 1 | 1
void | setCommand(Prepared) | 1 | 1
void | prepare() | 1 | 1
void | setExecuteCommand(boolean) | 1 | 1
ResultInterface | queryMeta() | 1 | 1
ResultInterface | query(int) | 4 | 9
void | add(String) | 1 | 2
boolean | isQuery() | 1 | 1
boolean | isTransactional() | 1 | 1
boolean | isReadOnly() | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\dml\Insert.java 23 rule violations (XML file)

Ancestor class | Children classes
--- | ---
PreparedResultTarget | org.h2.command.dml.Insert

Module / class or interface : org.h2.command.dml.Insert

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Insert | Insert(Session) | 1 | 1
void | setCommand(Command) | 2 | 2
void | setTable(Table) | 1 | 1
void | setColumns(Column[]) | 1 | 1
void | setQuery(Query) | 1 | 1
void | addRow(Expression[]) | 1 | 1
int | update() | 3 | 4
int | insertRows() | 6 | 9
void | addRow(Value[]) | 3 | 11
int | getRowCount() | 1 | 1
String | getPlanSQL() | 8 | 11
void | prepare() | 8 | 1
boolean | isTransactional() | 1 | 1
ResultInterface | queryMeta() | 1 | 1
void | setSortedInsertMode(boolean) | 1 | 1
int | getType() | 1 | 1
void | setInsertFromSelect(boolean) | 1 | 1
boolean | isCacheable() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 23

Line start | Criticity class | Rule
--- | --- | ---
00101 | MAJOR | QC-JAV000001[00101] Avoid declaring class instance within loop, performance impact
00102 | MAJOR | QC-JAV000001[00102] Avoid declaring class instance within loop, performance impact
00105 | MAJOR | QC-JAV000001[00105] Avoid declaring class instance within loop, performance impact
00107 | MAJOR | QC-JAV000001[00107] Avoid declaring class instance within loop, performance impact
00112 | MAJOR | QC-JAV000001[00112] Avoid declaring class instance within loop, performance impact
00114 | MAJOR | QC-JAV000001[00114] Avoid declaring class instance within loop, performance impact
00105 | MAJOR | QC-JAV000001[00105] Avoid declaring class instance within loop, performance impact
00107 | MAJOR | QC-JAV000001[00107] Avoid declaring class instance within loop, performance impact
00112 | MAJOR | QC-JAV000001[00112] Avoid declaring class instance within loop, performance impact
00114 | MAJOR | QC-JAV000001[00114] Avoid declaring class instance within loop, performance impact
00136 | MAJOR | QC-JAV000001[00136] Avoid declaring class instance within loop, performance impact
00150 | MAJOR | QC-JAV000001[00150] Avoid declaring class instance within loop, performance impact
00153 | MAJOR | QC-JAV000001[00153] Avoid declaring class instance within loop, performance impact
00155 | MAJOR | QC-JAV000001[00155] Avoid declaring class instance within loop, performance impact
00198 | MAJOR | QC-JAV000001[00198] Avoid declaring class instance within loop, performance impact
00229 | MAJOR | QC-JAV000001[00229] Avoid declaring class instance within loop, performance impact
00232 | MAJOR | QC-JAV000001[00232] Avoid declaring class instance within loop, performance impact
00233 | MAJOR | QC-JAV000001[00233] Avoid declaring class instance within loop, performance impact
00233 | MAJOR | QC-JAV000001[00233] Avoid declaring class instance within loop, performance impact
00229 | MAJOR | QC-JAV000001[00229] Avoid declaring class instance within loop, performance impact
00232 | MAJOR | QC-JAV000001[00232] Avoid declaring class instance within loop, performance impact
00233 | MAJOR | QC-JAV000001[00233] Avoid declaring class instance within loop, performance impact
00233 | MAJOR | QC-JAV000001[00233] Avoid declaring class instance within loop, performance impact

#### File lecode\command\dml\Merge.java 27 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Prepared | org.h2.command.dml.Merge

Module / class or interface : org.h2.command.dml.Merge

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Merge | Merge(Session) | 1 | 1
void | setCommand(Command) | 2 | 2
void | setTable(Table) | 1 | 1
void | setColumns(Column[]) | 1 | 1
void | setKeys(Column[]) | 1 | 1
void | setQuery(Query) | 1 | 1
void | addRow(Expression[]) | 1 | 1
int | update() | 4 | 12
void | merge(Row) | 7 | 15
String | getPlanSQL() | 7 | 13
void | prepare() | 12 | 13
boolean | isTransactional() | 1 | 1
ResultInterface | queryMeta() | 1 | 1
int | getType() | 1 | 1
boolean | isCacheable() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 27

Line start | Criticity class | Rule
--- | --- | ---
00088 | MAJOR | QC-JAV000001[00088] Avoid declaring class instance within loop, performance impact
00089 | MAJOR | QC-JAV000001[00089] Avoid declaring class instance within loop, performance impact
00091 | MAJOR | QC-JAV000001[00091] Avoid declaring class instance within loop, performance impact
00093 | MAJOR | QC-JAV000001[00093] Avoid declaring class instance within loop, performance impact
00097 | MAJOR | QC-JAV000001[00097] Avoid declaring class instance within loop, performance impact
00099 | MAJOR | QC-JAV000001[00099] Avoid declaring class instance within loop, performance impact
00091 | MAJOR | QC-JAV000001[00091] Avoid declaring class instance within loop, performance impact
00093 | MAJOR | QC-JAV000001[00093] Avoid declaring class instance within loop, performance impact
00097 | MAJOR | QC-JAV000001[00097] Avoid declaring class instance within loop, performance impact
00099 | MAJOR | QC-JAV000001[00099] Avoid declaring class instance within loop, performance impact
00114 | MAJOR | QC-JAV000001[00114] Avoid declaring class instance within loop, performance impact
00115 | MAJOR | QC-JAV000001[00115] Avoid declaring class instance within loop, performance impact
00118 | MAJOR | QC-JAV000001[00118] Avoid declaring class instance within loop, performance impact
00121 | MAJOR | QC-JAV000001[00121] Avoid declaring class instance within loop, performance impact
00123 | MAJOR | QC-JAV000001[00123] Avoid declaring class instance within loop, performance impact
00118 | MAJOR | QC-JAV000001[00118] Avoid declaring class instance within loop, performance impact
00121 | MAJOR | QC-JAV000001[00121] Avoid declaring class instance within loop, performance impact
00123 | MAJOR | QC-JAV000001[00123] Avoid declaring class instance within loop, performance impact
00138 | MAJOR | QC-JAV000001[00138] Avoid declaring class instance within loop, performance impact
00139 | MAJOR | QC-JAV000001[00139] Avoid declaring class instance within loop, performance impact
00140 | MAJOR | QC-JAV000001[00140] Avoid declaring class instance within loop, performance impact
00144 | MAJOR | QC-JAV000001[00144] Avoid declaring class instance within loop, performance impact
00145 | MAJOR | QC-JAV000001[00145] Avoid declaring class instance within loop, performance impact
00149 | MAJOR | QC-JAV000001[00149] Avoid declaring class instance within loop, performance impact
00218 | MAJOR | QC-JAV000001[00218] Avoid declaring class instance within loop, performance impact
00249 | MAJOR | QC-JAV000001[00249] Avoid declaring class instance within loop, performance impact
00249 | MAJOR | QC-JAV000001[00249] Avoid declaring class instance within loop, performance impact

#### File lecode\command\dml\NoOperation.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Prepared | org.h2.command.dml.NoOperation

Module / class or interface : org.h2.command.dml.NoOperation

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
NoOperation | NoOperation(Session) | 1 | 1
int | update() | 1 | 1
boolean | isQuery() | 1 | 1
boolean | isTransactional() | 1 | 1
boolean | needRecompile() | 1 | 1
boolean | isReadOnly() | 1 | 1
ResultInterface | queryMeta() | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\dml\Optimizer.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.command.dml.Optimizer

Module / class or interface : org.h2.command.dml.Optimizer

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Optimizer | Optimizer(TableFilter[];Expression;Session) | 1 | 3
int | getMaxBruteForceFilters(int) | 1 | 5
void | calculateBestPlan() | 5 | 7
boolean | canStop(int) | 3 | 2
void | calculateBruteForceAll() | 2 | 5
void | calculateBruteForceSome() | 5 | 6
void | calculateGenetic() | 6 | 5
boolean | testPlan(TableFilter[]) | 2 | 6
void | shuffleAll(TableFilter[]) | 3 | 3
boolean | shuffleTwo(TableFilter[]) | 6 | 13
void | optimize() | 3 | 9
TableFilter | getTopFilter() | 1 | 1
double | getCost() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 6

Line start | Criticity class | Rule
--- | --- | ---
00116 | MAJOR | QC-JAV000001[00116] Avoid declaring class instance within loop, performance impact
00133 | MAJOR | QC-JAV000001[00133] Avoid declaring class instance within loop, performance impact
00133 | MAJOR | QC-JAV000001[00133] Avoid declaring class instance within loop, performance impact
00133 | MAJOR | QC-JAV000001[00133] Avoid declaring class instance within loop, performance impact
00190 | MAJOR | QC-JAV000001[00190] Avoid declaring class instance within loop, performance impact
00238 | MAJOR | QC-JAV000001[00238] Avoid declaring class instance within loop, performance impact

#### File lecode\command\dml\Query.java 44 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Prepared | org.h2.command.dml.Query

Module / class or interface : org.h2.command.dml.Query

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Query | Query(Session) | 1 | 1
LocalResult | queryWithoutCache(int;ResultTarget) | 1 | 1
void | init() | 1 | 1
ArrayList<Expression> | getExpressions() | 1 | 1
double | getCost() | 1 | 1
int | getCostAsExpression() | 1 | 1
HashSet<Table> | getTables() | 1 | 1
void | setOrder(ArrayList<SelectOrderBy>) | 1 | 1
void | setForUpdate(boolean) | 1 | 1
int | getColumnCount() | 1 | 1
void | mapColumns(ColumnResolver;int) | 1 | 1
void | setEvaluatable(TableFilter;boolean) | 1 | 1
void | addGlobalCondition(Parameter;int;int) | 1 | 1
boolean | allowGlobalConditions() | 1 | 1
boolean | isEverything(ExpressionVisitor) | 1 | 1
void | updateAggregate(Session) | 1 | 1
void | fireBeforeSelectTriggers() | 1 | 1
void | setDistinct(boolean) | 1 | 1
void | setRandomAccessResult(boolean) | 1 | 1
boolean | isQuery() | 1 | 1
boolean | isTransactional() | 1 | 1
void | disableCache() | 1 | 1
boolean | sameResultAsLast(Session;Value[];Value[];long) | 7 | 11
Value[] | getParameterValues() | 3 | 9
LocalResult | query(int) | 1 | 1
LocalResult | query(int;ResultTarget) | 4 | 11
void | closeLastResult() | 2 | 1
void | initOrder(Session;ArrayList<Expression>;ArrayList<String>;ArrayList<SelectOrderBy>;int;boolean;ArrayList<TableFilter>) | 6 | 5
SortOrder | prepareOrder(ArrayList<SelectOrderBy>;int) | 8 | 15
void | setOffset(Expression) | 1 | 1
void | setLimit(Expression) | 1 | 1
void | addParameter(Parameter) | 2 | 2
void | setSampleSize(int) | 1 | 1
long | getMaxDataModificationId() | 1 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 44

Line start | Criticity class | Rule
--- | --- | ---
00248 | MAJOR | QC-JAV000001[00248] Avoid declaring class instance within loop, performance impact
00270 | MAJOR | QC-JAV000001[00270] Avoid declaring class instance within loop, performance impact
00340 | MAJOR | QC-JAV000001[00340] Avoid declaring class instance within loop, performance impact
00350 | MAJOR | QC-JAV000001[00350] Avoid declaring class instance within loop, performance impact
00352 | MAJOR | QC-JAV000001[00352] Avoid declaring class instance within loop, performance impact
00352 | MAJOR | QC-JAV000001[00352] Avoid declaring class instance within loop, performance impact
00353 | MAJOR | QC-JAV000001[00353] Avoid declaring class instance within loop, performance impact
00354 | MAJOR | QC-JAV000001[00354] Avoid declaring class instance within loop, performance impact
00357 | MAJOR | QC-JAV000001[00357] Avoid declaring class instance within loop, performance impact
00358 | MAJOR | QC-JAV000001[00358] Avoid declaring class instance within loop, performance impact
00360 | MAJOR | QC-JAV000001[00360] Avoid declaring class instance within loop, performance impact
00360 | MAJOR | QC-JAV000001[00360] Avoid declaring class instance within loop, performance impact
00363 | MAJOR | QC-JAV000001[00363] Avoid declaring class instance within loop, performance impact
00369 | MAJOR | QC-JAV000001[00369] Avoid declaring class instance within loop, performance impact
00380 | MAJOR | QC-JAV000001[00380] Avoid declaring class instance within loop, performance impact
00385 | MAJOR | QC-JAV000001[00385] Avoid declaring class instance within loop, performance impact
00386 | MAJOR | QC-JAV000001[00386] Avoid declaring class instance within loop, performance impact
00387 | MAJOR | QC-JAV000001[00387] Avoid declaring class instance within loop, performance impact
00387 | MAJOR | QC-JAV000001[00387] Avoid declaring class instance within loop, performance impact
00388 | MAJOR | QC-JAV000001[00388] Avoid declaring class instance within loop, performance impact
00390 | MAJOR | QC-JAV000001[00390] Avoid declaring class instance within loop, performance impact
00392 | MAJOR | QC-JAV000001[00392] Avoid declaring class instance within loop, performance impact
00406 | MAJOR | QC-JAV000001[00406] Avoid declaring class instance within loop, performance impact
00409 | MAJOR | QC-JAV000001[00409] Avoid declaring class instance within loop, performance impact
00423 | MAJOR | QC-JAV000001[00423] Avoid declaring class instance within loop, performance impact
00357 | MAJOR | QC-JAV000001[00357] Avoid declaring class instance within loop, performance impact
00358 | MAJOR | QC-JAV000001[00358] Avoid declaring class instance within loop, performance impact
00360 | MAJOR | QC-JAV000001[00360] Avoid declaring class instance within loop, performance impact
00360 | MAJOR | QC-JAV000001[00360] Avoid declaring class instance within loop, performance impact
00363 | MAJOR | QC-JAV000001[00363] Avoid declaring class instance within loop, performance impact
00369 | MAJOR | QC-JAV000001[00369] Avoid declaring class instance within loop, performance impact
00380 | MAJOR | QC-JAV000001[00380] Avoid declaring class instance within loop, performance impact
00385 | MAJOR | QC-JAV000001[00385] Avoid declaring class instance within loop, performance impact
00386 | MAJOR | QC-JAV000001[00386] Avoid declaring class instance within loop, performance impact
00387 | MAJOR | QC-JAV000001[00387] Avoid declaring class instance within loop, performance impact
00387 | MAJOR | QC-JAV000001[00387] Avoid declaring class instance within loop, performance impact
00388 | MAJOR | QC-JAV000001[00388] Avoid declaring class instance within loop, performance impact
00390 | MAJOR | QC-JAV000001[00390] Avoid declaring class instance within loop, performance impact
00392 | MAJOR | QC-JAV000001[00392] Avoid declaring class instance within loop, performance impact
00369 | MAJOR | QC-JAV000001[00369] Avoid declaring class instance within loop, performance impact
00409 | MAJOR | QC-JAV000001[00409] Avoid declaring class instance within loop, performance impact
00443 | MAJOR | QC-JAV000001[00443] Avoid declaring class instance within loop, performance impact
00446 | MAJOR | QC-JAV000001[00446] Avoid declaring class instance within loop, performance impact
00447 | MAJOR | QC-JAV000001[00447] Avoid declaring class instance within loop, performance impact

#### File lecode\command\dml\RunScriptCommand.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
ScriptBase | org.h2.command.dml.RunScriptCommand

Module / class or interface : org.h2.command.dml.RunScriptCommand

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
RunScriptCommand | RunScriptCommand(Session) | 1 | 1
int | update() | 2 | 10
void | execute(String) | 4 | 2
void | setCharset(String) | 1 | 1
ResultInterface | queryMeta() | 1 | 1
int | getType() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00052 | MAJOR | QC-JAV000001[00052] Avoid declaring class instance within loop, performance impact

#### File lecode\command\dml\ScriptBase.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
PreparedDataHandler | org.h2.command.dml.ScriptBase

Module / class or interface : org.h2.command.dml.ScriptBase

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ScriptBase | ScriptBase(Session) | 1 | 1
void | setCipher(String) | 1 | 1
boolean | isEncrypted() | 1 | 1
void | setPassword(Expression) | 1 | 1
void | setFileNameExpr(Expression) | 1 | 1
String | getFileName() | 3 | 3
boolean | isTransactional() | 1 | 1
void | deleteStore() | 2 | 2
void | initStore() | 2 | 8
void | openOutput() | 4 | 8
void | openInput() | 5 | 7
void | closeIO() | 2 | 6
boolean | needRecompile() | 1 | 1
String | getDatabasePath() | 1 | 1
FileStore | openFile(String;String;boolean) | 1 | 1
void | checkPowerOff() | 1 | 1
void | checkWritingAllowed() | 1 | 1
int | getMaxLengthInplaceLob() | 1 | 1
TempFileDeleter | getTempFileDeleter() | 1 | 1
String | getLobCompressionAlgorithm(int) | 1 | 1
void | setCompressionAlgorithm(String) | 1 | 1
Object | getLobSyncObject() | 1 | 1
SmallLRUCache<String,String[]> | getLobFileListCache() | 1 | 1
LobStorage | getLobStorage() | 1 | 1
Connection | getLobConnection() | 1 | 1
int | readLob(long;byte[];long;byte[];int;int) | 1 | 1

#### File lecode\command\dml\ScriptCommand.java 29 rule violations (XML file)

Ancestor class | Children classes
--- | ---
ScriptBase | org.h2.command.dml.ScriptCommand

Module / class or interface : org.h2.command.dml.ScriptCommand

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ScriptCommand | ScriptCommand(Session) | 1 | 1
boolean | isQuery() | 1 | 1
void | setSchemaNames(Set<String>) | 1 | 1
void | setTables(Collection<Table>) | 1 | 1
void | setData(boolean) | 1 | 1
void | setPasswords(boolean) | 1 | 1
void | setSettings(boolean) | 1 | 1
void | setLobBlockSize(long) | 1 | 1
void | setDrop(boolean) | 1 | 1
ResultInterface | queryMeta() | 1 | 3
LocalResult | createResult() | 1 | 2
ResultInterface | query(int) | 22 | 17
int | generateInsertValues(int;Table) | 9 | 18
int | writeLobStream(Value) | 4 | 8
InputStream | combineBlob(Connection;int) | 2 | 3
Reader | combineClob(Connection;int) | 2 | 3
ResultSet | getLobStream(Connection;String;int) | 1 | 3
void | reset() | 1 | 4
boolean | excludeSchema(Schema) | 4 | 3
boolean | excludeTable(Table) | 1 | 1
void | add(String;boolean) | 8 | 9
void | setSimple(boolean) | 1 | 1
void | setCharset(String) | 1 | 1
int | getType() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 26
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 3

Line start | Criticity class | Rule
--- | --- | ---
00200 | INFO | QC-JAV999996[00200] CPD de longueur 60 commencant en 1164 (ligne 200) et 1430 (ligne 251): ; for ( Table table : tables ) { if ( excludeSchema ( table . getSchema ( ) ) ) { continue ; } if ( excludeTable ( table ) ) { continue ; } if ( table . isHidden ( ) ) { continue ; } table . lock ( session , false , false ) ; String sql
00504 | INFO | QC-JAV999996[00504] CPD de longueur 61 commencant en 3059 (ligne 504) et 3272 (ligne 558): ; private boolean closed ; public int read ( ) throws IOException { while ( true ) { try { if ( current == null ) { if ( closed ) { return - 1 ; } if ( ! rs . next ( ) ) { close ( ) ; return - 1 ; } current = rs . getBinaryStream
00518 | INFO | QC-JAV999996[00518] CPD de longueur 93 commencant en 3130 (ligne 518) et 3343 (ligne 572): current ) ) ; } int x = current . read ( ) ; if ( x _= 0 ) { return x ; } current = null ; } catch ( SQLException e ) { throw DbException . convertToIOException ( e ) ; } } } public void close ( ) throws IOException { if ( closed ) { return ; } closed = true ; try { rs . close ( ) ; } catch ( SQLException e ) { throw DbException . convertToIOException ( e ) ; } } }
00142 | MAJOR | QC-JAV000001[00142] Avoid declaring class instance within loop, performance impact
00190 | MAJOR | QC-JAV000001[00190] Avoid declaring class instance within loop, performance impact
00190 | MAJOR | QC-JAV000001[00190] Avoid declaring class instance within loop, performance impact
00215 | MAJOR | QC-JAV000001[00215] Avoid declaring class instance within loop, performance impact
00243 | MAJOR | QC-JAV000001[00243] Avoid declaring class instance within loop, performance impact
00243 | MAJOR | QC-JAV000001[00243] Avoid declaring class instance within loop, performance impact
00263 | MAJOR | QC-JAV000001[00263] Avoid declaring class instance within loop, performance impact
00268 | MAJOR | QC-JAV000001[00268] Avoid declaring class instance within loop, performance impact
00270 | MAJOR | QC-JAV000001[00270] Avoid declaring class instance within loop, performance impact
00272 | MAJOR | QC-JAV000001[00272] Avoid declaring class instance within loop, performance impact
00280 | MAJOR | QC-JAV000001[00280] Avoid declaring class instance within loop, performance impact
00288 | MAJOR | QC-JAV000001[00288] Avoid declaring class instance within loop, performance impact
00290 | MAJOR | QC-JAV000001[00290] Avoid declaring class instance within loop, performance impact
00290 | MAJOR | QC-JAV000001[00290] Avoid declaring class instance within loop, performance impact
00314 | MAJOR | QC-JAV000001[00314] Avoid declaring class instance within loop, performance impact
00314 | MAJOR | QC-JAV000001[00314] Avoid declaring class instance within loop, performance impact
00330 | MAJOR | QC-JAV000001[00330] Avoid declaring class instance within loop, performance impact
00330 | MAJOR | QC-JAV000001[00330] Avoid declaring class instance within loop, performance impact
00338 | MAJOR | QC-JAV000001[00338] Avoid declaring class instance within loop, performance impact
00386 | MAJOR | QC-JAV000001[00386] Avoid declaring class instance within loop, performance impact
00396 | MAJOR | QC-JAV000001[00396] Avoid declaring class instance within loop, performance impact
00396 | MAJOR | QC-JAV000001[00396] Avoid declaring class instance within loop, performance impact
00447 | MAJOR | QC-JAV000001[00447] Avoid declaring class instance within loop, performance impact
00454 | MAJOR | QC-JAV000001[00454] Avoid declaring class instance within loop, performance impact
00467 | MAJOR | QC-JAV000001[00467] Avoid declaring class instance within loop, performance impact
00475 | MAJOR | QC-JAV000001[00475] Avoid declaring class instance within loop, performance impact

#### File lecode\command\dml\Select.java 81 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Query | org.h2.command.dml.Select

Module / class or interface : org.h2.command.dml.Select

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Select | Select(Session) | 1 | 1
void | addTableFilter(TableFilter;boolean) | 2 | 2
ArrayList<TableFilter> | getTopFilters() | 1 | 1
void | setExpressions(ArrayList<Expression>) | 1 | 1
void | setGroupQuery() | 1 | 1
void | setGroupBy(ArrayList<Expression>) | 1 | 1
HashMap<Expression,Object> | getCurrentGroup() | 1 | 1
int | getCurrentGroupRowId() | 1 | 1
void | setOrder(ArrayList<SelectOrderBy>) | 1 | 1
void | addCondition(Expression) | 3 | 2
void | queryGroupSorted(int;ResultTarget) | 3 | 5
void | addGroupSortedRow(Value[];int;ResultTarget) | 5 | 11
Value[] | keepOnlyDistinct(Value[];int) | 2 | 4
boolean | isHavingNullOrFalse(Value[]) | 4 | 2
Index | getGroupSortedIndex() | 4 | 3
boolean | isGroupSortedIndex(TableFilter;Index) | 7 | 10
int | getGroupByExpressionCount() | 4 | 3
void | queryGroup(int;LocalResult) | 7 | 13
Index | getSortIndex() | 12 | 12
void | queryDistinct(ResultTarget;long) | 7 | 14
void | queryFlat(int;ResultTarget;long) | 6 | 7
void | queryQuick(int;ResultTarget) | 2 | 6
ResultInterface | queryMeta() | 1 | 3
LocalResult | queryWithoutCache(int;ResultTarget) | 25 | 24
LocalResult | createLocalResult(LocalResult) | 1 | 1
void | expandColumnList() | 5 | 6
void | init() | 15 | 22
void | prepare() | 15 | 18
double | getCost() | 1 | 1
HashSet<Table> | getTables() | 2 | 3
void | fireBeforeSelectTriggers() | 2 | 4
double | preparePlan() | 2 | 9
void | setEvaluatableRecursive(TableFilter) | 7 | 6
String | getPlanSQL() | 27 | 34
void | setHaving(Expression) | 1 | 1
int | getColumnCount() | 1 | 1
TableFilter | getTopTableFilter() | 1 | 1
ArrayList<Expression> | getExpressions() | 1 | 1
void | setForUpdate(boolean) | 2 | 2
void | mapColumns(ColumnResolver;int) | 3 | 2
void | setEvaluatable(TableFilter;boolean) | 3 | 2
boolean | isQuickAggregateQuery() | 1 | 1
void | addGlobalCondition(Parameter;int;int) | 9 | 9
void | updateAggregate(Session) | 4 | 3
boolean | isEverything(ExpressionVisitor) | 9 | 8
boolean | isReadOnly() | 1 | 1
boolean | isCacheable() | 1 | 1
int | getType() | 1 | 1
boolean | allowGlobalConditions() | 2 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 78
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 3

Line start | Criticity class | Rule
--- | --- | ---
00163 | INFO | QC-JAV999996[00163] CPD de longueur 55 commencant en 769 (ligne 163) et 1717 (ligne 319): [ groupIndex . length ] ; for ( int i = 0 ; i _ groupIndex . length ; i ++ ) { int idx = groupIndex [ i ] ; Expression expr = expressions . get ( idx ) ; keyValues [ i ] = expr . getValue ( session ) ; } if
00196 | INFO | QC-JAV999996[00196] CPD de longueur 98 commencant en 985 (ligne 196) et 2013 (ligne 356): 0 ; ( groupIndex != null ) __ ( j _ groupIndex . length ) ; j ++ ) { row [ groupIndex [ j ] ] = keyValues [ j ] ; } for ( int j = 0 ; j _ columnCount ; j ++ ) { if ( ( groupByExpression != null ) __ groupByExpression [ j ] ) { continue ; } Expression expr = expressions . get ( j ) ; row [ j ] = expr . getValue ( session ) ; } if ( isHavingNullOrFalse ( row ) ) { return
00458 | INFO | QC-JAV999996[00458] CPD de longueur 60 commencant en 2597 (ligne 458) et 2850 (ligne 497): ResultTarget result , long limitRows ) { if ( ( limitRows _ 0 ) __ ( offsetExpr != null ) ) { int offset = offsetExpr . getValue ( session ) . getInt ( ) ; if ( offset _ 0 ) { limitRows += offset ; } } int rowNumber = 0 ; setCurrentRowNumber ( 0 ) ; Index
00163 | MAJOR | QC-JAV000001[00163] Avoid declaring class instance within loop, performance impact
00167 | MAJOR | QC-JAV000001[00167] Avoid declaring class instance within loop, performance impact
00183 | MAJOR | QC-JAV000001[00183] Avoid declaring class instance within loop, performance impact
00167 | MAJOR | QC-JAV000001[00167] Avoid declaring class instance within loop, performance impact
00183 | MAJOR | QC-JAV000001[00183] Avoid declaring class instance within loop, performance impact
00203 | MAJOR | QC-JAV000001[00203] Avoid declaring class instance within loop, performance impact
00243 | MAJOR | QC-JAV000001[00243] Avoid declaring class instance within loop, performance impact
00265 | MAJOR | QC-JAV000001[00265] Avoid declaring class instance within loop, performance impact
00266 | MAJOR | QC-JAV000001[00266] Avoid declaring class instance within loop, performance impact
00269 | MAJOR | QC-JAV000001[00269] Avoid declaring class instance within loop, performance impact
00269 | MAJOR | QC-JAV000001[00269] Avoid declaring class instance within loop, performance impact
00314 | MAJOR | QC-JAV000001[00314] Avoid declaring class instance within loop, performance impact
00319 | MAJOR | QC-JAV000001[00319] Avoid declaring class instance within loop, performance impact
00323 | MAJOR | QC-JAV000001[00323] Avoid declaring class instance within loop, performance impact
00328 | MAJOR | QC-JAV000001[00328] Avoid declaring class instance within loop, performance impact
00330 | MAJOR | QC-JAV000001[00330] Avoid declaring class instance within loop, performance impact
00330 | MAJOR | QC-JAV000001[00330] Avoid declaring class instance within loop, performance impact
00338 | MAJOR | QC-JAV000001[00338] Avoid declaring class instance within loop, performance impact
00323 | MAJOR | QC-JAV000001[00323] Avoid declaring class instance within loop, performance impact
00338 | MAJOR | QC-JAV000001[00338] Avoid declaring class instance within loop, performance impact
00352 | MAJOR | QC-JAV000001[00352] Avoid declaring class instance within loop, performance impact
00352 | MAJOR | QC-JAV000001[00352] Avoid declaring class instance within loop, performance impact
00354 | MAJOR | QC-JAV000001[00354] Avoid declaring class instance within loop, performance impact
00355 | MAJOR | QC-JAV000001[00355] Avoid declaring class instance within loop, performance impact
00363 | MAJOR | QC-JAV000001[00363] Avoid declaring class instance within loop, performance impact
00363 | MAJOR | QC-JAV000001[00363] Avoid declaring class instance within loop, performance impact
00391 | MAJOR | QC-JAV000001[00391] Avoid declaring class instance within loop, performance impact
00396 | MAJOR | QC-JAV000001[00396] Avoid declaring class instance within loop, performance impact
00399 | MAJOR | QC-JAV000001[00399] Avoid declaring class instance within loop, performance impact
00399 | MAJOR | QC-JAV000001[00399] Avoid declaring class instance within loop, performance impact
00414 | MAJOR | QC-JAV000001[00414] Avoid declaring class instance within loop, performance impact
00422 | MAJOR | QC-JAV000001[00422] Avoid declaring class instance within loop, performance impact
00430 | MAJOR | QC-JAV000001[00430] Avoid declaring class instance within loop, performance impact
00431 | MAJOR | QC-JAV000001[00431] Avoid declaring class instance within loop, performance impact
00430 | MAJOR | QC-JAV000001[00430] Avoid declaring class instance within loop, performance impact
00431 | MAJOR | QC-JAV000001[00431] Avoid declaring class instance within loop, performance impact
00475 | MAJOR | QC-JAV000001[00475] Avoid declaring class instance within loop, performance impact
00479 | MAJOR | QC-JAV000001[00479] Avoid declaring class instance within loop, performance impact
00480 | MAJOR | QC-JAV000001[00480] Avoid declaring class instance within loop, performance impact
00485 | MAJOR | QC-JAV000001[00485] Avoid declaring class instance within loop, performance impact
00516 | MAJOR | QC-JAV000001[00516] Avoid declaring class instance within loop, performance impact
00518 | MAJOR | QC-JAV000001[00518] Avoid declaring class instance within loop, performance impact
00518 | MAJOR | QC-JAV000001[00518] Avoid declaring class instance within loop, performance impact
00542 | MAJOR | QC-JAV000001[00542] Avoid declaring class instance within loop, performance impact
00650 | MAJOR | QC-JAV000001[00650] Avoid declaring class instance within loop, performance impact
00654 | MAJOR | QC-JAV000001[00654] Avoid declaring class instance within loop, performance impact
00655 | MAJOR | QC-JAV000001[00655] Avoid declaring class instance within loop, performance impact
00659 | MAJOR | QC-JAV000001[00659] Avoid declaring class instance within loop, performance impact
00660 | MAJOR | QC-JAV000001[00660] Avoid declaring class instance within loop, performance impact
00665 | MAJOR | QC-JAV000001[00665] Avoid declaring class instance within loop, performance impact
00666 | MAJOR | QC-JAV000001[00666] Avoid declaring class instance within loop, performance impact
00677 | MAJOR | QC-JAV000001[00677] Avoid declaring class instance within loop, performance impact
00678 | MAJOR | QC-JAV000001[00678] Avoid declaring class instance within loop, performance impact
00680 | MAJOR | QC-JAV000001[00680] Avoid declaring class instance within loop, performance impact
00681 | MAJOR | QC-JAV000001[00681] Avoid declaring class instance within loop, performance impact
00685 | MAJOR | QC-JAV000001[00685] Avoid declaring class instance within loop, performance impact
00660 | MAJOR | QC-JAV000001[00660] Avoid declaring class instance within loop, performance impact
00685 | MAJOR | QC-JAV000001[00685] Avoid declaring class instance within loop, performance impact
00703 | MAJOR | QC-JAV000001[00703] Avoid declaring class instance within loop, performance impact
00705 | MAJOR | QC-JAV000001[00705] Avoid declaring class instance within loop, performance impact
00734 | MAJOR | QC-JAV000001[00734] Avoid declaring class instance within loop, performance impact
00735 | MAJOR | QC-JAV000001[00735] Avoid declaring class instance within loop, performance impact
00738 | MAJOR | QC-JAV000001[00738] Avoid declaring class instance within loop, performance impact
00747 | MAJOR | QC-JAV000001[00747] Avoid declaring class instance within loop, performance impact
00738 | MAJOR | QC-JAV000001[00738] Avoid declaring class instance within loop, performance impact
00747 | MAJOR | QC-JAV000001[00747] Avoid declaring class instance within loop, performance impact
00770 | MAJOR | QC-JAV000001[00770] Avoid declaring class instance within loop, performance impact
00798 | MAJOR | QC-JAV000001[00798] Avoid declaring class instance within loop, performance impact
00907 | MAJOR | QC-JAV000001[00907] Avoid declaring class instance within loop, performance impact
00935 | MAJOR | QC-JAV000001[00935] Avoid declaring class instance within loop, performance impact
00939 | MAJOR | QC-JAV000001[00939] Avoid declaring class instance within loop, performance impact
00972 | MAJOR | QC-JAV000001[00972] Avoid declaring class instance within loop, performance impact
01020 | MAJOR | QC-JAV000001[01020] Avoid declaring class instance within loop, performance impact
01198 | MAJOR | QC-JAV000001[01198] Avoid declaring class instance within loop, performance impact
01207 | MAJOR | QC-JAV000001[01207] Avoid declaring class instance within loop, performance impact
01221 | MAJOR | QC-JAV000001[01221] Avoid declaring class instance within loop, performance impact
01222 | MAJOR | QC-JAV000001[01222] Avoid declaring class instance within loop, performance impact
01233 | MAJOR | QC-JAV000001[01233] Avoid declaring class instance within loop, performance impact

#### File lecode\command\dml\SelectListColumnResolver.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.command.dml.SelectListColumnResolver

Module / class or interface : org.h2.command.dml.SelectListColumnResolver

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SelectListColumnResolver | SelectListColumnResolver(Select) | 2 | 12
Column[] | getColumns() | 1 | 1
String | getSchemaName() | 1 | 1
Select | getSelect() | 1 | 1
Column[] | getSystemColumns() | 1 | 1
Column | getRowIdColumn() | 1 | 1
String | getTableAlias() | 1 | 1
TableFilter | getTableFilter() | 1 | 1
Value | getValue(Column) | 1 | 1
Expression | optimize(ExpressionColumn;Column) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00040 | MAJOR | QC-JAV000001[00040] Avoid declaring class instance within loop, performance impact
00041 | MAJOR | QC-JAV000001[00041] Avoid declaring class instance within loop, performance impact

#### File lecode\command\dml\SelectOrderBy.java 5 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.command.dml.SelectOrderBy

Module / class or interface : org.h2.command.dml.SelectOrderBy

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
String | getSQL() | 7 | 7

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 5

Line start | Criticity class | Rule
--- | --- | ---
00019 | MAJOR | QC-JAVCWE493[00019] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00026 | MAJOR | QC-JAVCWE493[00026] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00031 | MAJOR | QC-JAVCWE493[00031] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00036 | MAJOR | QC-JAVCWE493[00036] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00041 | MAJOR | QC-JAVCWE493[00041] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)

#### File lecode\command\dml\SelectUnion.java 7 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Query | org.h2.command.dml.SelectUnion

Module / class or interface : org.h2.command.dml.SelectUnion

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SelectUnion | SelectUnion(Session;Query) | 1 | 2
void | setUnionType(int) | 1 | 1
int | getUnionType() | 1 | 1
void | setRight(Query) | 1 | 1
Query | getLeft() | 1 | 1
Query | getRight() | 1 | 1
void | setSQL(String) | 1 | 1
void | setOrder(ArrayList<SelectOrderBy>) | 1 | 1
Value[] | convert(Value[];int) | 2 | 5
ResultInterface | queryMeta() | 1 | 4
LocalResult | getEmptyResult() | 1 | 2
LocalResult | queryWithoutCache(int;ResultTarget) | 23 | 29
void | init() | 4 | 12
void | prepare() | 5 | 25
double | getCost() | 1 | 1
HashSet<Table> | getTables() | 1 | 3
ArrayList<Expression> | getExpressions() | 1 | 1
void | setForUpdate(boolean) | 1 | 3
int | getColumnCount() | 1 | 1
void | mapColumns(ColumnResolver;int) | 1 | 2
void | setEvaluatable(TableFilter;boolean) | 1 | 2
void | addGlobalCondition(Parameter;int;int) | 5 | 2
String | getPlanSQL() | 10 | 18
LocalResult | query(int;ResultTarget) | 1 | 1
boolean | isEverything(ExpressionVisitor) | 1 | 1
boolean | isReadOnly() | 1 | 1
void | updateAggregate(Session) | 1 | 2
void | fireBeforeSelectTriggers() | 1 | 2
int | getType() | 1 | 1
boolean | allowGlobalConditions() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 7

Line start | Criticity class | Rule
--- | --- | ---
00105 | MAJOR | QC-JAV000001[00105] Avoid declaring class instance within loop, performance impact
00211 | MAJOR | QC-JAV000001[00211] Avoid declaring class instance within loop, performance impact
00257 | MAJOR | QC-JAV000001[00257] Avoid declaring class instance within loop, performance impact
00279 | MAJOR | QC-JAV000001[00279] Avoid declaring class instance within loop, performance impact
00280 | MAJOR | QC-JAV000001[00280] Avoid declaring class instance within loop, performance impact
00285 | MAJOR | QC-JAV000001[00285] Avoid declaring class instance within loop, performance impact
00286 | MAJOR | QC-JAV000001[00286] Avoid declaring class instance within loop, performance impact

#### File lecode\command\dml\Set.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Prepared | org.h2.command.dml.Set

Module / class or interface : org.h2.command.dml.Set

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Set | Set(Session;int) | 1 | 2
void | setString(String) | 1 | 1
boolean | isTransactional() | 10 | 2
int | update() | 45 | 37
int | getIntValue() | 1 | 2
void | setInt(int) | 1 | 1
void | setExpression(Expression) | 1 | 1
void | addOrUpdateSetting(String;String;int) | 1 | 1
void | addOrUpdateSetting(Session;String;String;int) | 9 | 11
boolean | needRecompile() | 1 | 1
ResultInterface | queryMeta() | 1 | 1
void | setStringArray(String[]) | 1 | 1
int | getType() | 1 | 1

#### File lecode\command\dml\SetTypes.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.command.dml.SetTypes

Module / class or interface : org.h2.command.dml.SetTypes

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SetTypes | SetTypes() | 1 | 0
int | getType(String) | 3 | 3
ArrayList<String> | getTypes() | 1 | 1
String | getTypeName(int) | 1 | 1

#### File lecode\command\dml\TransactionCommand.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Prepared | org.h2.command.dml.TransactionCommand

Module / class or interface : org.h2.command.dml.TransactionCommand

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TransactionCommand | TransactionCommand(Session;int) | 1 | 2
void | setSavepointName(String) | 1 | 1
int | update() | 17 | 33
boolean | isTransactional() | 1 | 1
boolean | needRecompile() | 1 | 1
void | setTransactionName(String) | 1 | 1
ResultInterface | queryMeta() | 1 | 1
int | getType() | 1 | 1
boolean | isCacheable() | 1 | 1

#### File lecode\command\dml\Update.java 16 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Prepared | org.h2.command.dml.Update

Module / class or interface : org.h2.command.dml.Update

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Update | Update(Session) | 1 | 1
void | setTableFilter(TableFilter) | 1 | 1
void | setCondition(Expression) | 1 | 1
void | setAssignment(Column;Expression) | 3 | 5
int | update() | 3 | 16
String | getPlanSQL() | 3 | 10
void | prepare() | 3 | 12
boolean | isTransactional() | 1 | 1
ResultInterface | queryMeta() | 1 | 1
int | getType() | 1 | 1
void | setLimit(Expression) | 1 | 1
boolean | isCacheable() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 16

Line start | Criticity class | Rule
--- | --- | ---
00107 | MAJOR | QC-JAV000001[00107] Avoid declaring class instance within loop, performance impact
00108 | MAJOR | QC-JAV000001[00108] Avoid declaring class instance within loop, performance impact
00110 | MAJOR | QC-JAV000001[00110] Avoid declaring class instance within loop, performance impact
00111 | MAJOR | QC-JAV000001[00111] Avoid declaring class instance within loop, performance impact
00115 | MAJOR | QC-JAV000001[00115] Avoid declaring class instance within loop, performance impact
00118 | MAJOR | QC-JAV000001[00118] Avoid declaring class instance within loop, performance impact
00110 | MAJOR | QC-JAV000001[00110] Avoid declaring class instance within loop, performance impact
00111 | MAJOR | QC-JAV000001[00111] Avoid declaring class instance within loop, performance impact
00115 | MAJOR | QC-JAV000001[00115] Avoid declaring class instance within loop, performance impact
00118 | MAJOR | QC-JAV000001[00118] Avoid declaring class instance within loop, performance impact
00147 | MAJOR | QC-JAV000001[00147] Avoid declaring class instance within loop, performance impact
00148 | MAJOR | QC-JAV000001[00148] Avoid declaring class instance within loop, performance impact
00163 | MAJOR | QC-JAV000001[00163] Avoid declaring class instance within loop, performance impact
00164 | MAJOR | QC-JAV000001[00164] Avoid declaring class instance within loop, performance impact
00181 | MAJOR | QC-JAV000001[00181] Avoid declaring class instance within loop, performance impact
00182 | MAJOR | QC-JAV000001[00182] Avoid declaring class instance within loop, performance impact

#### File lecode\compress\CompressDeflate.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.compress.CompressDeflate

Module / class or interface : org.h2.compress.CompressDeflate

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setOptions(String) | 2 | 3
int | compress(byte[];int;byte[];int) | 1 | 10
int | getAlgorithm() | 1 | 1
void | expand(byte[];int;int;byte[];int;int) | 2 | 6

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00039 | MAJOR | QC-JAV000001[00039] Avoid declaring class instance within loop, performance impact
00045 | MAJOR | QC-JAV000001[00045] Avoid declaring class instance within loop, performance impact

#### File lecode\compress\CompressLZF.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.compress.CompressLZF

Module / class or interface : org.h2.compress.CompressLZF

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setOptions(String) | 1 | 0
int | first(byte[];int) | 1 | 1
int | next(int;byte[];int) | 1 | 1
int | hash(int) | 1 | 1
int | compress(byte[];int;byte[];int) | 6 | 16
void | expand(byte[];int;int;byte[];int;int) | 5 | 3
int | getAlgorithm() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE481 | Assigning instead of comparing | 1
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00207 | INFO | QC-JAV999996[00207] CPD de longueur 56 commencant en 663 (ligne 207) et 728 (ligne 222): ( outPos ++ ) ] = in [ ( inPos ++ ) ] ; literals ++ ; if ( literals == MAX_LITERAL ) { out [ ( outPos - ( literals - 1 ) ) ] = ( byte ) ( literals - 1 ) ; literals = 0 ; outPos ++ ; } } }
00163 | MAJOR | QC-JAVCWE481[00163] Assigning instead of comparing on off=(inPos-(ref-1)) (see http://cwe.mitre.org/data/definitions/481.html)

#### File lecode\compress\CompressNo.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.compress.CompressNo

Module / class or interface : org.h2.compress.CompressNo

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
int | getAlgorithm() | 1 | 1
void | setOptions(String) | 1 | 0
int | compress(byte[];int;byte[];int) | 1 | 2
void | expand(byte[];int;int;byte[];int;int) | 1 | 1

#### File lecode\compress\Compressor.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.compress.Compressor

Module / class or interface : org.h2.compress.Compressor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
int | getAlgorithm() | 1 | 1
int | compress(byte[];int;byte[];int) | 1 | 1
void | expand(byte[];int;int;byte[];int;int) | 1 | 1
void | setOptions(String) | 1 | 1

#### File lecode\compress\LZFInputStream.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
InputStream | org.h2.compress.LZFInputStream

Module / class or interface : org.h2.compress.LZFInputStream

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
LZFInputStream | LZFInputStream(InputStream) | 2 | 2
byte[] | ensureSize(byte[];int) | 1 | 1
void | fillBuffer() | 6 | 13
void | readFully(byte[];int) | 1 | 4
int | readInt() | 2 | 5
int | read() | 2 | 3
int | read(byte[]) | 1 | 1
int | read(byte[];int;int) | 3 | 7
int | readBlock(byte[];int;int) | 2 | 7
void | close() | 1 | 1

#### File lecode\compress\LZFOutputStream.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
OutputStream | org.h2.compress.LZFOutputStream

Module / class or interface : org.h2.compress.LZFOutputStream

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
LZFOutputStream | LZFOutputStream(OutputStream) | 1 | 5
void | ensureOutput(int) | 2 | 2
void | write(int) | 2 | 2
void | compressAndWrite(byte[];int) | 4 | 2
void | writeInt(int) | 1 | 4
void | write(byte[];int;int) | 2 | 5
void | flush() | 1 | 2
void | close() | 1 | 2

#### File lecode\constant\DbSettings.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
SettingsBase | org.h2.constant.DbSettings

Module / class or interface : org.h2.constant.DbSettings

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DbSettings | DbSettings(HashMap<String,String>) | 1 | 1
DbSettings | getInstance(HashMap<String,String>) | 3 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 2

Line start | Criticity class | Rule
--- | --- | ---
00083 | MAJOR | QC-JAVCWE493[00083] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00169 | MAJOR | QC-JAVCWE493[00169] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)

#### File lecode\constant\ErrorCode.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.constant.ErrorCode

Module / class or interface : org.h2.constant.ErrorCode

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ErrorCode | ErrorCode() | 1 | 0
boolean | isCommon(int) | 15 | 2
String | getState(int) | 15 | 15

#### File lecode\constant\SysProperties.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.constant.SysProperties

Module / class or interface : org.h2.constant.SysProperties

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SysProperties | SysProperties() | 1 | 0
void | setBaseDir(String) | 2 | 2
String | getBaseDir() | 1 | 1
String | getScriptDirectory() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 3
MINOR | QC-JAVCWE500 | Static public field not marked final | 3

Line start | Criticity class | Rule
--- | --- | ---
00177 | MAJOR | QC-JAVCWE493[00177] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00177 | MINOR | QC-JAVCWE500[00177] Static public field not marked final (see http://cwe.mitre.org/data/definitions/500.html)
00284 | MAJOR | QC-JAVCWE493[00284] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00284 | MINOR | QC-JAVCWE500[00284] Static public field not marked final (see http://cwe.mitre.org/data/definitions/500.html)
00398 | MAJOR | QC-JAVCWE493[00398] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00398 | MINOR | QC-JAVCWE500[00398] Static public field not marked final (see http://cwe.mitre.org/data/definitions/500.html)

#### File lecode\constraint\Constraint.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaObjectBaseComparable<Constraint> | org.h2.constraint.Constraint

Module / class or interface : org.h2.constraint.Constraint

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Constraint | Constraint(Schema;int;String;Table) | 1 | 3
String | getConstraintType() | 1 | 1
void | checkRow(Session;Table;Row;Row) | 1 | 1
boolean | usesIndex(Index) | 1 | 1
void | setIndexOwner(Index) | 1 | 1
HashSet<Column> | getReferencedColumns(Table) | 1 | 1
String | getCreateSQLWithoutIndexes() | 1 | 1
boolean | isBefore() | 1 | 1
void | checkExistingData(Session) | 1 | 1
void | rebuild() | 1 | 1
Index | getUniqueIndex() | 1 | 1
void | checkRename() | 1 | 0
int | getType() | 1 | 1
Table | getTable() | 1 | 1
Table | getRefTable() | 1 | 1
String | getDropSQL() | 1 | 1
int | getConstraintTypeOrder() | 9 | 3
int | compareTo(Constraint) | 2 | 4
boolean | isHidden() | 1 | 1
boolean | isEverything(ExpressionVisitor) | 1 | 1

#### File lecode\constraint\ConstraintCheck.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Constraint | org.h2.constraint.ConstraintCheck

Module / class or interface : org.h2.constraint.ConstraintCheck

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ConstraintCheck | ConstraintCheck(Schema;int;String;Table) | 1 | 1
String | getConstraintType() | 1 | 1
void | setTableFilter(TableFilter) | 1 | 1
void | setExpression(Expression) | 1 | 1
String | getCreateSQLForCopy(Table;String) | 3 | 7
String | getShortDescription() | 1 | 1
String | getCreateSQLWithoutIndexes() | 1 | 1
String | getCreateSQL() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 6
void | checkRow(Session;Table;Row;Row) | 3 | 3
boolean | usesIndex(Index) | 1 | 1
void | setIndexOwner(Index) | 1 | 1
HashSet<Column> | getReferencedColumns(Table) | 3 | 5
Expression | getExpression() | 1 | 1
boolean | isBefore() | 1 | 1
void | checkExistingData(Session) | 3 | 4
Index | getUniqueIndex() | 1 | 1
void | rebuild() | 1 | 0
boolean | isEverything(ExpressionVisitor) | 1 | 1

#### File lecode\constraint\ConstraintReferential.java 27 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Constraint | org.h2.constraint.ConstraintReferential

Module / class or interface : org.h2.constraint.ConstraintReferential

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ConstraintReferential | ConstraintReferential(Schema;int;String;Table) | 1 | 1
String | getConstraintType() | 1 | 1
void | appendAction(StatementBuilder;int) | 4 | 7
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getCreateSQLForCopy(Table;Table;String;boolean) | 11 | 28
String | getShortDescription(Index;SearchRow) | 5 | 15
String | getCreateSQLWithoutIndexes() | 1 | 1
String | getCreateSQL() | 1 | 1
void | setColumns(IndexColumn[]) | 1 | 1
IndexColumn[] | getColumns() | 1 | 1
HashSet<Column> | getReferencedColumns(Table) | 6 | 2
void | setRefColumns(IndexColumn[]) | 1 | 1
IndexColumn[] | getRefColumns() | 1 | 1
void | setRefTable(Table) | 2 | 2
void | setIndex(Index;boolean) | 1 | 2
void | setRefIndex(Index;boolean) | 1 | 2
void | removeChildrenAndResources(Session) | 3 | 14
void | checkRow(Session;Table;Row;Row) | 6 | 3
void | checkRowOwnTable(Session;Row;Row) | 11 | 15
boolean | existsRow(Session;Index;SearchRow;Row) | 4 | 9
boolean | isEqual(Row;Row) | 1 | 1
void | checkRow(Session;Row) | 4 | 10
void | checkRowRefTable(Session;Row;Row) | 9 | 2
void | updateWithSkipCheck(Prepared) | 1 | 3
void | setWhere(Prepared;int;Row) | 2 | 7
int | getDeleteAction() | 1 | 1
void | setDeleteAction(int) | 3 | 4
void | buildDeleteSQL() | 4 | 6
Prepared | getUpdate(Session) | 1 | 1
Prepared | getDelete(Session) | 1 | 1
int | getUpdateAction() | 1 | 1
void | setUpdateAction(int) | 3 | 4
void | buildUpdateSQL() | 2 | 5
void | rebuild() | 1 | 2
Prepared | prepare(Session;String;int) | 3 | 3
void | appendUpdate(StatementBuilder) | 2 | 4
void | appendWhere(StatementBuilder) | 2 | 4
Table | getRefTable() | 1 | 1
boolean | usesIndex(Index) | 1 | 1
void | setIndexOwner(Index) | 5 | 3
boolean | isBefore() | 1 | 1
void | checkExistingData(Session) | 7 | 21
Index | getUniqueIndex() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 25
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 2

Line start | Criticity class | Rule
--- | --- | ---
00192 | INFO | QC-JAV999996[00192] CPD de longueur 52 commencant en 970 (ligne 192) et 1982 (ligne 378): = Math . min ( columns . length , cols . length ) ; for ( int i = 0 ; i _ len ; i ++ ) { int idx = cols [ i ] . getColumnId ( ) ; Value c = check . getValue ( idx ) ; buff
00337 | INFO | QC-JAV999996[00337] CPD de longueur 65 commencant en 1641 (ligne 337) et 1754 (ligne 353): for ( int i = 0 , len = columns . length ; i _ len ; i ++ ) { int idx = columns [ i ] . column . getColumnId ( ) ; Value v = newRow . getValue ( idx ) ; Column refCol = refColumns [ i ] . column ; int refIdx = refCol . getColumnId ( ) ; Value
00195 | MAJOR | QC-JAV000001[00195] Avoid declaring class instance within loop, performance impact
00318 | MAJOR | QC-JAV000001[00318] Avoid declaring class instance within loop, performance impact
00339 | MAJOR | QC-JAV000001[00339] Avoid declaring class instance within loop, performance impact
00340 | MAJOR | QC-JAV000001[00340] Avoid declaring class instance within loop, performance impact
00342 | MAJOR | QC-JAV000001[00342] Avoid declaring class instance within loop, performance impact
00355 | MAJOR | QC-JAV000001[00355] Avoid declaring class instance within loop, performance impact
00356 | MAJOR | QC-JAV000001[00356] Avoid declaring class instance within loop, performance impact
00371 | MAJOR | QC-JAV000001[00371] Avoid declaring class instance within loop, performance impact
00376 | MAJOR | QC-JAV000001[00376] Avoid declaring class instance within loop, performance impact
00381 | MAJOR | QC-JAV000001[00381] Avoid declaring class instance within loop, performance impact
00382 | MAJOR | QC-JAV000001[00382] Avoid declaring class instance within loop, performance impact
00381 | MAJOR | QC-JAV000001[00381] Avoid declaring class instance within loop, performance impact
00382 | MAJOR | QC-JAV000001[00382] Avoid declaring class instance within loop, performance impact
00402 | MAJOR | QC-JAV000001[00402] Avoid declaring class instance within loop, performance impact
00404 | MAJOR | QC-JAV000001[00404] Avoid declaring class instance within loop, performance impact
00405 | MAJOR | QC-JAV000001[00405] Avoid declaring class instance within loop, performance impact
00447 | MAJOR | QC-JAV000001[00447] Avoid declaring class instance within loop, performance impact
00448 | MAJOR | QC-JAV000001[00448] Avoid declaring class instance within loop, performance impact
00474 | MAJOR | QC-JAV000001[00474] Avoid declaring class instance within loop, performance impact
00475 | MAJOR | QC-JAV000001[00475] Avoid declaring class instance within loop, performance impact
00476 | MAJOR | QC-JAV000001[00476] Avoid declaring class instance within loop, performance impact
00563 | MAJOR | QC-JAV000001[00563] Avoid declaring class instance within loop, performance impact
00564 | MAJOR | QC-JAV000001[00564] Avoid declaring class instance within loop, performance impact
00565 | MAJOR | QC-JAV000001[00565] Avoid declaring class instance within loop, performance impact
00569 | MAJOR | QC-JAV000001[00569] Avoid declaring class instance within loop, performance impact

#### File lecode\constraint\ConstraintUnique.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Constraint | org.h2.constraint.ConstraintUnique

Module / class or interface : org.h2.constraint.ConstraintUnique

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ConstraintUnique | ConstraintUnique(Schema;int;String;Table;boolean) | 1 | 2
String | getConstraintType() | 1 | 1
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getCreateSQLForCopy(Table;String;boolean) | 5 | 11
String | getTypeName() | 2 | 2
String | getCreateSQLWithoutIndexes() | 1 | 1
String | getCreateSQL() | 1 | 1
void | setColumns(IndexColumn[]) | 1 | 1
IndexColumn[] | getColumns() | 1 | 1
void | setIndex(Index;boolean) | 1 | 2
void | removeChildrenAndResources(Session) | 2 | 7
void | checkRow(Session;Table;Row;Row) | 1 | 0
boolean | usesIndex(Index) | 1 | 1
void | setIndexOwner(Index) | 1 | 1
HashSet<Column> | getReferencedColumns(Table) | 2 | 3
boolean | isBefore() | 1 | 1
void | checkExistingData(Session) | 1 | 0
Index | getUniqueIndex() | 1 | 1
void | rebuild() | 1 | 0

#### File lecode\engine\Comment.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DbObjectBase | org.h2.engine.Comment

Module / class or interface : org.h2.engine.Comment

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Comment | Comment(Database;int;DbObject) | 1 | 3
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getTypeName(int) | 12 | 12
String | getDropSQL() | 1 | 1
String | getCreateSQL() | 3 | 5
int | getType() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 1
void | checkRename() | 1 | 1
String | getKey(DbObject) | 1 | 1
void | setCommentText(String) | 1 | 1

#### File lecode\engine\ConnectionInfo.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.engine.ConnectionInfo

Module / class or interface : org.h2.engine.ConnectionInfo

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ConnectionInfo | ConnectionInfo(String) | 1 | 3
ConnectionInfo | ConnectionInfo(String;Properties) | 3 | 13
boolean | isKnownSetting(String) | 1 | 1
Object | clone() | 1 | 5
void | parseName() | 14 | 7
void | setBaseDir(String) | 7 | 5
boolean | isRemote() | 1 | 1
boolean | isPersistent() | 1 | 1
boolean | isUnnamedInMemory() | 1 | 1
void | readProperties(Properties) | 5 | 5
void | readSettingsFromURL() | 3 | 5
char[] | removePassword() | 5 | 4
void | convertPasswords() | 4 | 11
byte[] | hashPassword(boolean;String;char[]) | 3 | 3
boolean | getProperty(String;boolean) | 3 | 4
boolean | removeProperty(String;boolean) | 1 | 2
String | removeProperty(String;String) | 2 | 3
String | getName() | 3 | 2
byte[] | getFilePasswordHash() | 1 | 1
String | getUserName() | 1 | 1
byte[] | getUserPasswordHash() | 1 | 1
String[] | getKeys() | 1 | 3
String | getProperty(String) | 2 | 3
int | getProperty(String;int) | 2 | 3
String | getProperty(String;String) | 2 | 3
String | getProperty(int;String) | 1 | 3
int | getIntProperty(int;int) | 1 | 4
boolean | isSSL() | 1 | 1
void | setUserName(String) | 1 | 1
void | setUserPasswordHash(byte[]) | 1 | 1
void | setFilePasswordHash(byte[]) | 1 | 1
void | setProperty(String;String) | 2 | 1
String | getURL() | 1 | 1
String | getOriginalURL() | 1 | 1
void | setOriginalURL(String) | 1 | 1
DbException | getFormatException() | 1 | 2
void | setServerKey(String) | 1 | 3
DbSettings | getDbSettings() | 3 | 4
String | remapURL(String) | 2 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 6

Line start | Criticity class | Rule
--- | --- | ---
00219 | MAJOR | QC-JAV000001[00219] Avoid declaring class instance within loop, performance impact
00223 | MAJOR | QC-JAV000001[00223] Avoid declaring class instance within loop, performance impact
00252 | MAJOR | QC-JAV000001[00252] Avoid declaring class instance within loop, performance impact
00253 | MAJOR | QC-JAV000001[00253] Avoid declaring class instance within loop, performance impact
00258 | MAJOR | QC-JAV000001[00258] Avoid declaring class instance within loop, performance impact
00599 | MAJOR | QC-JAV000001[00599] Avoid declaring class instance within loop, performance impact

#### File lecode\engine\Constants.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.engine.Constants

Module / class or interface : org.h2.engine.Constants

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Constants | Constants() | 1 | 0
String | getVersion() | 2 | 3
Object | getVersionStable() | 1 | 1
String | getFullVersion() | 1 | 1

#### File lecode\engine\Database.java 35 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.engine.Database

Module / class or interface : org.h2.engine.Database

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Database | Database(ConnectionInfo;String) | 4 | 31
void | openDatabase(int;int;boolean) | 4 | 3
void | setInitialPowerOffCount(int) | 1 | 1
void | setPowerOffCount(int) | 2 | 2
boolean | areEqual(Value;Value) | 1 | 1
int | compare(Value;Value) | 1 | 1
int | compareTypeSave(Value;Value) | 1 | 1
long | getModificationDataId() | 1 | 1
boolean | reconnectModified(boolean) | 8 | 12
long | getNextModificationDataId() | 1 | 1
long | getModificationMetaId() | 1 | 1
long | getNextModificationMetaId() | 1 | 2
int | getPowerOffCount() | 1 | 1
void | checkPowerOff() | 4 | 5
boolean | exists(String) | 1 | 1
Trace | getTrace(String) | 1 | 1
FileStore | openFile(String;String;boolean) | 2 | 6
boolean | validateFilePasswordHash(String;byte[]) | 2 | 2
String | parseDatabaseShortName() | 4 | 5
void | open(int;int) | 21 | 61
void | startServer(String) | 1 | 6
void | stopServer() | 2 | 3
void | recompileInvalidViews(Session) | 5 | 3
void | initMetaTables() | 3 | 1
void | addMeta(Session;DbObject) | 4 | 6
void | verifyMetaLocked(Session) | 2 | 1
boolean | lockMeta(Session) | 2 | 4
void | removeMeta(Session;int) | 5 | 4
HashMap<String,DbObject> | getMap(int) | 9 | 19
void | addSchemaObject(Session;SchemaObject) | 2 | 5
void | addDatabaseObject(Session;DbObject) | 5 | 9
UserAggregate | findAggregate(String) | 1 | 1
Comment | findComment(DbObject) | 2 | 3
Role | findRole(String) | 1 | 1
Schema | findSchema(String) | 2 | 3
Setting | findSetting(String) | 1 | 1
User | findUser(String) | 1 | 1
UserDataType | findUserDataType(String) | 1 | 1
User | getUser(String) | 2 | 3
Session | createSession(User) | 3 | 7
void | removeSession(Session) | 10 | 2
void | closeAllSessionsException(Session) | 3 | 2
void | close(boolean) | 12 | 25
void | stopWriter() | 2 | 2
void | closeOpenFilesAndUnlock(boolean) | 8 | 9
void | closeFiles() | 2 | 1
void | checkMetaFree(Session;int) | 2 | 4
int | allocateObjectId() | 1 | 3
ArrayList<UserAggregate> | getAllAggregates() | 1 | 1
ArrayList<Comment> | getAllComments() | 1 | 1
int | getAllowLiterals() | 2 | 2
ArrayList<Right> | getAllRights() | 1 | 1
ArrayList<Role> | getAllRoles() | 1 | 1
ArrayList<SchemaObject> | getAllSchemaObjects() | 2 | 4
ArrayList<SchemaObject> | getAllSchemaObjects(int) | 3 | 4
ArrayList<Table> | getAllTablesAndViews(boolean) | 3 | 4
ArrayList<Schema> | getAllSchemas() | 1 | 2
ArrayList<Setting> | getAllSettings() | 1 | 1
ArrayList<UserDataType> | getAllUserDataTypes() | 1 | 1
ArrayList<User> | getAllUsers() | 1 | 1
String | getCacheType() | 1 | 1
String | getCluster() | 1 | 1
CompareMode | getCompareMode() | 1 | 1
String | getDatabasePath() | 2 | 2
String | getShortName() | 1 | 1
String | getName() | 1 | 1
Session[] | getSessions(boolean) | 2 | 7
void | update(Session;DbObject) | 1 | 4
void | renameSchemaObject(Session;SchemaObject;String) | 1 | 3
void | updateWithChildren(Session;DbObject) | 4 | 4
void | renameDatabaseObject(Session;DbObject;String) | 4 | 11
String | createTempFile() | 2 | 4
void | deleteOldTempFiles() | 3 | 1
Schema | getSchema(String) | 2 | 3
void | removeDatabaseObject(Session;DbObject) | 3 | 12
Table | getDependentTable(SchemaObject;Table) | 10 | 5
void | removeSchemaObject(Session;SchemaObject) | 12 | 15
boolean | isPersistent() | 1 | 1
TraceSystem | getTraceSystem() | 1 | 1
void | setCacheSize(int) | 3 | 4
void | setMasterUser(User) | 1 | 3
Role | getPublicRole() | 1 | 1
String | getTempTableName(String;Session) | 2 | 4
void | setCompareMode(CompareMode) | 1 | 1
void | setCluster(String) | 1 | 1
void | checkWritingAllowed() | 4 | 1
boolean | isReadOnly() | 1 | 1
void | setWriteDelay(int) | 2 | 3
boolean | getFlushOnEachCommit() | 1 | 1
ArrayList<InDoubtTransaction> | getInDoubtTransactions() | 1 | 1
void | prepareCommit(Session;String) | 2 | 2
void | commit(Session) | 3 | 3
void | flush() | 2 | 2
void | setEventListener(DatabaseEventListener) | 1 | 1
void | setEventListenerClass(String) | 3 | 1
void | setProgress(int;String;int;int) | 2 | 0
void | exceptionThrown(SQLException;String) | 2 | 0
void | sync() | 2 | 2
int | getMaxMemoryRows() | 1 | 1
void | setMaxMemoryRows(int) | 1 | 1
void | setMaxMemoryUndo(int) | 1 | 1
int | getMaxMemoryUndo() | 1 | 1
void | setLockMode(int) | 6 | 4
int | getLockMode() | 1 | 1
void | setCloseDelay(int) | 1 | 1
Session | getSystemSession() | 1 | 1
boolean | isClosing() | 1 | 1
void | setMaxLengthInplaceLob(int) | 1 | 1
int | getMaxLengthInplaceLob() | 1 | 1
void | setIgnoreCase(boolean) | 1 | 1
boolean | getIgnoreCase() | 2 | 2
void | setDeleteFilesOnDisconnect(boolean) | 1 | 1
String | getLobCompressionAlgorithm(int) | 1 | 1
void | setLobCompressionAlgorithm(String) | 1 | 1
void | setMaxLogSize(long) | 2 | 1
void | setAllowLiterals(int) | 1 | 1
boolean | getOptimizeReuseResults() | 1 | 1
void | setOptimizeReuseResults(boolean) | 1 | 1
Object | getLobSyncObject() | 1 | 1
int | getSessionCount() | 1 | 1
void | setReferentialIntegrity(boolean) | 1 | 1
boolean | getReferentialIntegrity() | 1 | 1
boolean | isStarting() | 1 | 1
boolean | isMultiVersion() | 1 | 1
void | opened() | 3 | 2
void | setMode(Mode) | 1 | 1
Mode | getMode() | 1 | 1
boolean | isMultiThreaded() | 1 | 1
void | setMultiThreaded(boolean) | 4 | 1
void | setMaxOperationMemory(int) | 1 | 1
int | getMaxOperationMemory() | 1 | 1
Session | getExclusiveSession() | 1 | 1
void | setExclusiveSession(Session;boolean) | 2 | 2
SmallLRUCache<String,String[]> | getLobFileListCache() | 2 | 2
boolean | isSysTableLocked() | 1 | 1
TableLinkConnection | getLinkConnection(String;String;String;String) | 2 | 2
String | toString() | 1 | 1
void | shutdownImmediately() | 1 | 3
TempFileDeleter | getTempFileDeleter() | 1 | 1
PageStore | getPageStore() | 4 | 4
Table | getFirstUserTable() | 3 | 1
boolean | isReconnectNeeded() | 5 | 10
void | checkpointIfRequired() | 4 | 2
boolean | isFileLockSerialized() | 1 | 1
void | flushSequences() | 2 | 2
void | checkpoint() | 2 | 1
boolean | beforeWriting() | 3 | 4
void | afterWriting() | 3 | 3
void | setReadOnly(boolean) | 1 | 1
void | setCompactMode(int) | 1 | 1
SourceCompiler | getCompiler() | 2 | 2
LobStorage | getLobStorage() | 2 | 2
Connection | getLobConnection() | 1 | 4
void | setLogMode(int) | 4 | 3
int | getLogMode() | 2 | 2
int | getDefaultTableType() | 1 | 1
void | setDefaultTableType(int) | 1 | 1
void | setMultiVersion(boolean) | 1 | 1
DbSettings | getSettings() | 1 | 1
boolean | equalsIdentifiers(String;String) | 3 | 3
int | readLob(long;byte[];long;byte[];int;int) | 1 | 1

Deadlock risks Ressources definition
R0:org.h2.engine.Database.this
R1:org.h2.engine.Database.reconnectSync

Deadlock risks Sequences definition

Sequence | Step
--- | ---
No 0
| S0:org.h2.engine.Database.Database
| S0:org.h2.engine.Database.openDatabase
| S0:org.h2.engine.Database.open (R0)
| S0:org.h2.engine.Database.afterWriting (R1)
No 1
| S1:org.h2.engine.Database.checkpointIfRequired (R1,R0,(R1))
| S1:org.h2.engine.Database.checkpoint (R0)
| S1:org.h2.store.PageStore.checkpoint

Deadlock risks Typologies

Typo | C1 | C2 | C3
--- | --- | --- | ---
No 1
| R0 | R1 |
|  |  | S0 org.h2.engine.Database.Database
|  |  | S0 org.h2.engine.Database.openDatabase
| 1 |  | S0 org.h2.engine.Database.open R0
|  | 2 | S0 org.h2.engine.Database.afterWriting R1
| 2 | 2 | S1 org.h2.engine.Database.checkpointIfRequired R1,R0,(R1)
|  |  | S1 org.h2.engine.Database.checkpoint R0
|  |  | S1 org.h2.store.PageStore.checkpoint

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
BLOCKER | QC-JAVCWE833 | Potential deadlock between at least two ressources | 3
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 11
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 21

Line start | Criticity class | Rule
--- | --- | ---
00226 | MAJOR | QC-JAVCWE390[00226] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00230 | MAJOR | QC-JAVCWE390[00230] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00411 | MAJOR | QC-JAVCWE390[00411] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00625 | MAJOR | QC-JAV000001[00625] Avoid declaring class instance within loop, performance impact
00695 | MAJOR | QC-JAV000001[00695] Avoid declaring class instance within loop, performance impact
00696 | MAJOR | QC-JAV000001[00696] Avoid declaring class instance within loop, performance impact
00697 | MAJOR | QC-JAV000001[00697] Avoid declaring class instance within loop, performance impact
00697 | MAJOR | QC-JAV000001[00697] Avoid declaring class instance within loop, performance impact
00696 | MAJOR | QC-JAV000001[00696] Avoid declaring class instance within loop, performance impact
00697 | MAJOR | QC-JAV000001[00697] Avoid declaring class instance within loop, performance impact
00697 | MAJOR | QC-JAV000001[00697] Avoid declaring class instance within loop, performance impact
00711 | MAJOR | QC-JAV000001[00711] Avoid declaring class instance within loop, performance impact
00712 | MAJOR | QC-JAV000001[00712] Avoid declaring class instance within loop, performance impact
00712 | MAJOR | QC-JAV000001[00712] Avoid declaring class instance within loop, performance impact
00727 | MAJOR | QC-JAV000001[00727] Avoid declaring class instance within loop, performance impact
01052 | MAJOR | QC-JAV000001[01052] Avoid declaring class instance within loop, performance impact
01073 | MAJOR | QC-JAVCWE390[01073] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
01126 | MAJOR | QC-JAV000001[01126] Avoid declaring class instance within loop, performance impact
01126 | MAJOR | QC-JAV000001[01126] Avoid declaring class instance within loop, performance impact
01131 | MAJOR | QC-JAV000001[01131] Avoid declaring class instance within loop, performance impact
01131 | MAJOR | QC-JAV000001[01131] Avoid declaring class instance within loop, performance impact
01134 | MAJOR | QC-JAV000001[01134] Avoid declaring class instance within loop, performance impact
01158 | MAJOR | QC-JAVCWE390[01158] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
01160 | MAJOR | QC-JAVCWE390[01160] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
01172 | MAJOR | QC-JAVCWE390[01172] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
01813 | MAJOR | QC-JAVCWE390[01813] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
01830 | MAJOR | QC-JAVCWE390[01830] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
02094 | MAJOR | QC-JAVCWE390[02094] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
02231 | MAJOR | QC-JAV000001[02231] Avoid declaring class instance within loop, performance impact
02231 | MAJOR | QC-JAV000001[02231] Avoid declaring class instance within loop, performance impact
02263 | MAJOR | QC-JAV000001[02263] Avoid declaring class instance within loop, performance impact
02263 | MAJOR | QC-JAVCWE390[02263] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R0 : org.h2.engine.Database.this
00001 | BLOCKER | QC-JAVCWE833[00001] Deadlock ressource definition of R1 : org.h2.engine.Database.reconnectSync
00001 | BLOCKER | QC-JAVCWE833[00001] Potential deadlock between R0 and R1

#### File lecode\engine\DatabaseCloser.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Thread | org.h2.engine.DatabaseCloser

Module / class or interface : org.h2.engine.DatabaseCloser

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DatabaseCloser | DatabaseCloser(Database;int;boolean) | 1 | 4
void | reset() | 2 | 3
void | run() | 5 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 2
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00050 | MAJOR | QC-JAVCWE390[00050] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00065 | MAJOR | QC-JAV000001[00065] Avoid declaring class instance within loop, performance impact
00065 | MAJOR | QC-JAVCWE390[00065] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\engine\DbObject.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.engine.DbObject

Module / class or interface : org.h2.engine.DbObject

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
String | getSQL() | 1 | 1
ArrayList<DbObject> | getChildren() | 1 | 1
Database | getDatabase() | 1 | 1
int | getId() | 1 | 1
String | getName() | 1 | 1
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getCreateSQL() | 1 | 1
String | getDropSQL() | 1 | 1
int | getType() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 1
void | checkRename() | 1 | 1
void | rename(String) | 1 | 1
boolean | isTemporary() | 1 | 1
void | setTemporary(boolean) | 1 | 1
void | setComment(String) | 1 | 1
String | getComment() | 1 | 1

#### File lecode\engine\DbObjectBase.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.engine.DbObjectBase

Module / class or interface : org.h2.engine.DbObjectBase

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | initDbObjectBase(Database;int;String;String) | 1 | 5
String | getCreateSQL() | 1 | 1
String | getDropSQL() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 1
void | checkRename() | 1 | 1
void | setModified() | 1 | 1
long | getModificationId() | 1 | 1
void | setObjectName(String) | 1 | 1
String | getSQL() | 1 | 1
ArrayList<DbObject> | getChildren() | 1 | 1
Database | getDatabase() | 1 | 1
int | getId() | 1 | 1
String | getName() | 1 | 1
void | invalidate() | 1 | 5
void | rename(String) | 1 | 3
boolean | isTemporary() | 1 | 1
void | setTemporary(boolean) | 1 | 1
void | setComment(String) | 1 | 1
String | getComment() | 1 | 1
String | toString() | 1 | 1

#### File lecode\engine\Engine.java 7 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.engine.Engine

Module / class or interface : org.h2.engine.Engine

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Engine | getInstance() | 1 | 1
Session | openSession(ConnectionInfo;boolean;String) | 12 | 13
Session | createSession(ConnectionInfo) | 1 | 1
Session | createSessionAndValidate(ConnectionInfo) | 4 | 7
Session | openSession(ConnectionInfo) | 5 | 12
void | checkClustering(ConnectionInfo;Database) | 4 | 3
void | close(String) | 2 | 1
void | validateUserAndPassword(boolean) | 4 | 2

Deadlock risks Ressources definition
R0:org.h2.engine.Engine.openSession.database
R1:org.h2.engine.Engine.this

Deadlock risks Sequences definition

Sequence | Step
--- | ---
No 0
| S0:org.h2.engine.Engine.createSessionAndValidate
| S0:org.h2.engine.Engine.openSession (R0,R1)
| S0:DATABASES.put
No 1
| S1:org.h2.engine.Engine.createSessionAndValidate
| S1:org.h2.engine.Engine.openSession (R0,R1)
| S1:org.h2.engine.Engine.openSession (R0,R1)
| S1:DATABASES.put

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 3
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 4

Line start | Criticity class | Rule
--- | --- | ---
00167 | MAJOR | QC-JAV000001[00167] Avoid declaring class instance within loop, performance impact
00167 | MAJOR | QC-JAVCWE390[00167] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00178 | MAJOR | QC-JAV000001[00178] Avoid declaring class instance within loop, performance impact
00180 | MAJOR | QC-JAV000001[00180] Avoid declaring class instance within loop, performance impact
00183 | MAJOR | QC-JAV000001[00183] Avoid declaring class instance within loop, performance impact
00273 | MAJOR | QC-JAVCWE390[00273] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00297 | MAJOR | QC-JAVCWE390[00297] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\engine\FunctionAlias.java 11 rule violations (XML file)

Ancestor class | Children classes
--- | ---
SchemaObjectBase | org.h2.engine.FunctionAlias

Module / class or interface : org.h2.engine.FunctionAlias

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FunctionAlias | FunctionAlias(Schema;int;String) | 1 | 1
FunctionAlias | newInstance(Schema;int;String;String;boolean) | 2 | 8
FunctionAlias | newInstanceFromSource(Schema;int;String;String;boolean) | 1 | 4
void | init(boolean) | 2 | 1
void | load() | 4 | 3
void | loadFromSource() | 1 | 6
void | loadClass() | 5 | 10
String | getMethodSignature(Method) | 4 | 4
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getDropSQL() | 1 | 1
String | getSQL() | 2 | 2
String | getCreateSQL() | 4 | 6
int | getType() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 5
void | checkRename() | 1 | 1
JavaMethod | findJavaMethod(Expression[]) | 3 | 4
String | getJavaClassName() | 1 | 1
String | getJavaMethodName() | 1 | 1
JavaMethod[] | getJavaMethods() | 1 | 2
void | setDeterministic(boolean) | 1 | 1
boolean | isDeterministic() | 1 | 1
String | getSource() | 1 | 1
boolean | isVarArgs(Method) | 2 | 5

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 10

Line start | Criticity class | Rule
--- | --- | ---
00141 | MAJOR | QC-JAV000001[00141] Avoid declaring class instance within loop, performance impact
00146 | MAJOR | QC-JAV000001[00146] Avoid declaring class instance within loop, performance impact
00147 | MAJOR | QC-JAV000001[00147] Avoid declaring class instance within loop, performance impact
00239 | CRITICAL | QC-JAVCWE476[00239] The argument args is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk
00346 | MAJOR | QC-JAV000001[00346] Avoid declaring class instance within loop, performance impact
00353 | MAJOR | QC-JAV000001[00353] Avoid declaring class instance within loop, performance impact
00354 | MAJOR | QC-JAV000001[00354] Avoid declaring class instance within loop, performance impact
00358 | MAJOR | QC-JAV000001[00358] Avoid declaring class instance within loop, performance impact
00358 | MAJOR | QC-JAV000001[00358] Avoid declaring class instance within loop, performance impact
00359 | MAJOR | QC-JAV000001[00359] Avoid declaring class instance within loop, performance impact
00359 | MAJOR | QC-JAV000001[00359] Avoid declaring class instance within loop, performance impact

#### File lecode\engine\MetaRecord.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.engine.MetaRecord

Module / class or interface : org.h2.engine.MetaRecord

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
MetaRecord | MetaRecord(SearchRow) | 1 | 3
MetaRecord | MetaRecord(DbObject) | 1 | 3
void | setRecord(SearchRow) | 1 | 4
void | execute(Database;Session;DatabaseEventListener) | 3 | 6
int | getId() | 1 | 1
int | getObjectType() | 1 | 1
String | getSQL() | 1 | 1
int | compareTo(MetaRecord) | 2 | 4
int | getCreateOrder() | 16 | 16
String | toString() | 1 | 1

#### File lecode\engine\Mode.java 14 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.engine.Mode

Module / class or interface : org.h2.engine.Mode

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Mode | Mode(String) | 1 | 1
void | add(Mode) | 1 | 1
Mode | getInstance(String) | 1 | 1
String | getName() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 14

Line start | Criticity class | Rule
--- | --- | ---
00034 | MAJOR | QC-JAVCWE493[00034] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00042 | MAJOR | QC-JAVCWE493[00042] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00049 | MAJOR | QC-JAVCWE493[00049] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00057 | MAJOR | QC-JAVCWE493[00057] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00062 | MAJOR | QC-JAVCWE493[00062] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00069 | MAJOR | QC-JAVCWE493[00069] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00074 | MAJOR | QC-JAVCWE493[00074] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00081 | MAJOR | QC-JAVCWE493[00081] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00086 | MAJOR | QC-JAVCWE493[00086] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00092 | MAJOR | QC-JAVCWE493[00092] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00099 | MAJOR | QC-JAVCWE493[00099] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00104 | MAJOR | QC-JAVCWE493[00104] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00109 | MAJOR | QC-JAVCWE493[00109] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00114 | MAJOR | QC-JAVCWE493[00114] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)

#### File lecode\engine\Procedure.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.engine.Procedure

Module / class or interface : org.h2.engine.Procedure

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Procedure | Procedure(String;Prepared) | 1 | 2
String | getName() | 1 | 1
Prepared | getPrepared() | 1 | 1

#### File lecode\engine\Right.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DbObjectBase | org.h2.engine.Right

Module / class or interface : org.h2.engine.Right

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Right | Right(Database;int;RightOwner;Role) | 1 | 3
Right | Right(Database;int;RightOwner;int;Table) | 1 | 4
boolean | appendRight(StringBuilder;int;int;String;boolean) | 3 | 3
String | getRights() | 3 | 8
Role | getGrantedRole() | 1 | 1
Table | getGrantedTable() | 1 | 1
DbObject | getGrantee() | 1 | 1
String | getDropSQL() | 1 | 1
String | getCreateSQLForCopy(Table;String) | 3 | 6
String | getCreateSQL() | 1 | 1
int | getType() | 1 | 1
void | removeChildrenAndResources(Session) | 3 | 7
void | checkRename() | 1 | 1
void | setRightMask(int) | 1 | 1
int | getRightMask() | 1 | 1

#### File lecode\engine\RightOwner.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DbObjectBase | org.h2.engine.RightOwner

Module / class or interface : org.h2.engine.RightOwner

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
RightOwner | RightOwner(Database;int;String;String) | 1 | 1
boolean | isRoleGranted(Role) | 4 | 2
boolean | isRightGrantedRecursive(Table;int) | 5 | 3
void | grantRight(Table;Right) | 2 | 2
void | revokeRight(Table) | 3 | 3
void | grantRole(Role;Right) | 2 | 2
void | revokeRole(Role) | 4 | 5
Right | getRightForTable(Table) | 2 | 2
Right | getRightForRole(Role) | 2 | 2

#### File lecode\engine\Role.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
RightOwner | org.h2.engine.Role

Module / class or interface : org.h2.engine.Role

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Role | Role(Database;int;String;boolean) | 1 | 2
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getDropSQL() | 1 | 1
String | getCreateSQL(boolean) | 3 | 5
String | getCreateSQL() | 1 | 1
int | getType() | 1 | 1
void | removeChildrenAndResources(Session) | 7 | 4
void | checkRename() | 1 | 0

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00061 | MAJOR | QC-JAV000001[00061] Avoid declaring class instance within loop, performance impact
00067 | MAJOR | QC-JAV000001[00067] Avoid declaring class instance within loop, performance impact

#### File lecode\engine\Session.java 12 rule violations (XML file)

Ancestor class | Children classes
--- | ---
SessionWithState | org.h2.engine.Session

Module / class or interface : org.h2.engine.Session

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Session | Session(Database;User;int) | 1 | 9
boolean | setCommitOrRollbackDisabled(boolean) | 1 | 3
void | initVariables() | 2 | 1
void | setVariable(String;Value) | 4 | 8
Value | getVariable(String) | 1 | 3
String[] | getVariableNames() | 2 | 4
Table | findLocalTempTable(String) | 2 | 2
ArrayList<Table> | getLocalTempTables() | 2 | 2
void | addLocalTempTable(Table) | 3 | 4
void | removeLocalTempTable(Table) | 1 | 3
Index | findLocalTempTableIndex(String) | 2 | 2
HashMap<String,Index> | getLocalTempTableIndexes() | 2 | 2
void | addLocalTempTableIndex(Index) | 3 | 3
void | removeLocalTempTableIndex(Index) | 2 | 1
Constraint | findLocalTempTableConstraint(String) | 2 | 2
HashMap<String,Constraint> | getLocalTempTableConstraints() | 2 | 2
void | addLocalTempTableConstraint(Constraint) | 3 | 4
void | removeLocalTempTableConstraint(Constraint) | 2 | 1
boolean | getAutoCommit() | 1 | 1
User | getUser() | 1 | 1
void | setAutoCommit(boolean) | 1 | 1
int | getLockTimeout() | 1 | 1
void | setLockTimeout(int) | 1 | 1
CommandInterface | prepareCommand(String;int) | 1 | 1
Prepared | prepare(String) | 1 | 1
Prepared | prepare(String;boolean) | 1 | 3
Command | prepareLocal(String) | 7 | 5
Database | getDatabase() | 1 | 1
int | getPowerOffCount() | 1 | 1
void | setPowerOffCount(int) | 1 | 1
void | commit(boolean) | 8 | 9
void | checkCommitRollback() | 2 | 1
void | rollback() | 4 | 10
void | rollbackTo(int;boolean) | 3 | 5
int | getUndoLogPos() | 1 | 1
int | getId() | 1 | 1
void | cancel() | 1 | 1
void | close() | 2 | 0
void | addLock(Table) | 3 | 1
void | log(Table;short;Row) | 5 | 4
void | unlockReadLocks() | 4 | 4
void | unlock(Table) | 1 | 1
void | unlockAll() | 4 | 2
void | cleanTempTables(boolean) | 2 | 0
Random | getRandom() | 2 | 2
Trace | getTrace() | 3 | 5
void | setLastIdentity(Value) | 1 | 2
Value | getLastIdentity() | 1 | 1
void | setLastScopeIdentity(Value) | 1 | 1
Value | getLastScopeIdentity() | 1 | 1
void | addLogPos(int;int) | 2 | 2
int | getFirstUncommittedLog() | 1 | 1
void | setAllCommitted() | 1 | 2
boolean | containsUncommitted() | 1 | 1
void | addSavepoint(String) | 2 | 2
void | rollbackToSavepoint(String) | 3 | 6
void | prepareCommit(String) | 2 | 2
void | setPreparedTransaction(String;boolean) | 7 | 3
boolean | isClosed() | 1 | 1
void | setThrottle(int) | 1 | 1
void | throttle() | 4 | 6
void | setCurrentCommand(Command) | 2 | 4
void | checkCanceled() | 3 | 5
long | getCancel() | 1 | 1
Command | getCurrentCommand() | 1 | 1
long | getCurrentCommandStart() | 1 | 1
boolean | getAllowLiterals() | 1 | 1
void | setAllowLiterals(boolean) | 1 | 1
void | setCurrentSchema(Schema) | 1 | 2
String | getCurrentSchemaName() | 1 | 1
JdbcConnection | createConnection(boolean) | 3 | 4
DataHandler | getDataHandler() | 1 | 1
void | unlinkAtCommit(Value) | 3 | 3
void | unlinkAtCommitStop(Value) | 2 | 1
String | getNextSystemIdentifier(String) | 2 | 4
void | addProcedure(Procedure) | 2 | 2
void | removeProcedure(String) | 2 | 1
Procedure | getProcedure(String) | 2 | 2
void | setSchemaSearchPath(String[]) | 1 | 2
String[] | getSchemaSearchPath() | 1 | 1
int | hashCode() | 1 | 1
String | toString() | 1 | 1
void | setUndoLogEnabled(boolean) | 1 | 1
void | setRedoLogBinary(boolean) | 1 | 1
boolean | isUndoLogEnabled() | 1 | 1
void | begin() | 1 | 2
long | getSessionStart() | 1 | 1
long | getTransactionStart() | 2 | 2
Table[] | getLocks() | 2 | 6
void | waitIfExclusiveModeEnabled() | 3 | 1
void | addTemporaryResult(ResultInterface) | 4 | 3
void | closeTemporaryResults() | 3 | 1
void | setQueryTimeout(int) | 2 | 4
int | getQueryTimeout() | 1 | 1
void | setWaitForLock(Table) | 1 | 1
Table | getWaitForLock() | 1 | 1
int | getModificationId() | 1 | 1
boolean | isReconnectNeeded(boolean) | 4 | 1
void | afterWriting() | 1 | 1
SessionInterface | reconnect(boolean) | 2 | 6
void | setConnectionInfo(ConnectionInfo) | 1 | 1
Value | getTransactionId() | 2 | 2
int | nextObjectId() | 1 | 1
boolean | isRedoLogBinaryEnabled() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 2
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 10

Line start | Criticity class | Rule
--- | --- | ---
00457 | MAJOR | QC-JAV000001[00457] Avoid declaring class instance within loop, performance impact
00463 | MAJOR | QC-JAV000001[00463] Avoid declaring class instance within loop, performance impact
00528 | MAJOR | QC-JAV000001[00528] Avoid declaring class instance within loop, performance impact
00536 | MAJOR | QC-JAV000001[00536] Avoid declaring class instance within loop, performance impact
00612 | MAJOR | QC-JAV000001[00612] Avoid declaring class instance within loop, performance impact
00630 | MAJOR | QC-JAV000001[00630] Avoid declaring class instance within loop, performance impact
00660 | MAJOR | QC-JAV000001[00660] Avoid declaring class instance within loop, performance impact
00855 | MAJOR | QC-JAVCWE390[00855] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
01081 | MAJOR | QC-JAV000001[01081] Avoid declaring class instance within loop, performance impact
01097 | MAJOR | QC-JAV000001[01097] Avoid declaring class instance within loop, performance impact
01107 | MAJOR | QC-JAV000001[01107] Avoid declaring class instance within loop, performance impact
01107 | MAJOR | QC-JAVCWE390[01107] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\engine\SessionFactory.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.engine.SessionFactory

Module / class or interface : org.h2.engine.SessionFactory

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SessionInterface | createSession(ConnectionInfo) | 1 | 1

#### File lecode\engine\SessionInterface.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Closeable | org.h2.engine.SessionInterface

Module / class or interface : org.h2.engine.SessionInterface

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CommandInterface | prepareCommand(String;int) | 1 | 1
void | close() | 1 | 1
Trace | getTrace() | 1 | 1
boolean | isClosed() | 1 | 1
int | getPowerOffCount() | 1 | 1
void | setPowerOffCount(int) | 1 | 1
DataHandler | getDataHandler() | 1 | 1
int | getUndoLogPos() | 1 | 1
void | cancel() | 1 | 1
boolean | isReconnectNeeded(boolean) | 1 | 1
SessionInterface | reconnect(boolean) | 1 | 1
void | afterWriting() | 1 | 1
boolean | getAutoCommit() | 1 | 1
void | setAutoCommit(boolean) | 1 | 1

#### File lecode\engine\SessionRemote.java 18 rule violations (XML file)

Ancestor class | Children classes
--- | ---
SessionWithStateDataHandler | org.h2.engine.SessionRemote

Module / class or interface : org.h2.engine.SessionRemote

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SessionRemote | SessionRemote(ConnectionInfo) | 1 | 1
Transfer | initTransfer(ConnectionInfo;String;String) | 2 | 25
int | getUndoLogPos() | 3 | 5
void | cancel() | 1 | 0
void | cancelStatement(int) | 2 | 0
void | checkClusterDisableAutoCommit(String) | 2 | 5
boolean | getAutoCommit() | 1 | 1
void | setAutoCommit(boolean) | 2 | 2
void | setAutoCommitFromServer(boolean) | 4 | 1
void | setAutoCommitSend(boolean) | 6 | 0
void | autoCommitIfCluster() | 3 | 0
String | getFilePrefix(String) | 4 | 6
int | getPowerOffCount() | 1 | 1
void | setPowerOffCount(int) | 1 | 1
SessionInterface | connectEmbeddedOrServer(boolean) | 6 | 8
void | connectServer(ConnectionInfo) | 12 | 35
void | switchOffCluster() | 1 | 2
void | removeServer(IOException;int;int) | 2 | 5
CommandInterface | prepareCommand(String;int) | 1 | 2
boolean | autoReconnect(int) | 8 | 10
void | checkClosed() | 2 | 1
void | close() | 4 | 6
Trace | getTrace() | 1 | 1
int | getNextId() | 1 | 1
int | getCurrentId() | 1 | 1
void | done(Transfer) | 10 | 11
boolean | isClustered() | 1 | 1
boolean | isClosed() | 1 | 1
void | traceOperation(String;int) | 2 | 1
void | checkPowerOff() | 1 | 0
void | checkWritingAllowed() | 1 | 0
String | getDatabasePath() | 1 | 1
String | getLobCompressionAlgorithm(int) | 1 | 1
int | getMaxLengthInplaceLob() | 1 | 1
FileStore | openFile(String;String;boolean) | 4 | 9
DataHandler | getDataHandler() | 1 | 1
Object | getLobSyncObject() | 1 | 1
SmallLRUCache<String,String[]> | getLobFileListCache() | 1 | 1
int | getLastReconnect() | 1 | 1
TempFileDeleter | getTempFileDeleter() | 1 | 1
boolean | isReconnectNeeded(boolean) | 1 | 1
SessionInterface | reconnect(boolean) | 1 | 1
void | afterWriting() | 1 | 0
LobStorage | getLobStorage() | 2 | 2
Connection | getLobConnection() | 1 | 1
int | readLob(long;byte[];long;byte[];int;int) | 2 | 4

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 17

Line start | Criticity class | Rule
--- | --- | ---
00130 | MAJOR | QC-JAV000001[00130] Avoid declaring class instance within loop, performance impact
00136 | MAJOR | QC-JAV000001[00136] Avoid declaring class instance within loop, performance impact
00157 | MAJOR | QC-JAV000001[00157] Avoid declaring class instance within loop, performance impact
00167 | MAJOR | QC-JAV000001[00167] Avoid declaring class instance within loop, performance impact
00211 | MAJOR | QC-JAV000001[00211] Avoid declaring class instance within loop, performance impact
00216 | MAJOR | QC-JAV000001[00216] Avoid declaring class instance within loop, performance impact
00244 | MAJOR | QC-JAV000001[00244] Avoid declaring class instance within loop, performance impact
00249 | MAJOR | QC-JAV000001[00249] Avoid declaring class instance within loop, performance impact
00393 | MAJOR | QC-JAV000001[00393] Avoid declaring class instance within loop, performance impact
00395 | MAJOR | QC-JAV000001[00395] Avoid declaring class instance within loop, performance impact
00397 | MAJOR | QC-JAV000001[00397] Avoid declaring class instance within loop, performance impact
00467 | MAJOR | QC-JAV000001[00467] Avoid declaring class instance within loop, performance impact
00474 | MAJOR | QC-JAV000001[00474] Avoid declaring class instance within loop, performance impact
00474 | MAJOR | QC-JAVCWE390[00474] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00517 | MAJOR | QC-JAV000001[00517] Avoid declaring class instance within loop, performance impact
00520 | MAJOR | QC-JAV000001[00520] Avoid declaring class instance within loop, performance impact
00697 | MAJOR | QC-JAV000001[00697] Avoid declaring class instance within loop, performance impact
00714 | MAJOR | QC-JAV000001[00714] Avoid declaring class instance within loop, performance impact

#### File lecode\engine\SessionWithState.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.engine.SessionWithState

Module / class or interface : org.h2.engine.SessionWithState

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | recreateSessionState() | 2 | 1
void | readSessionState() | 2 | 7

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00032 | MAJOR | QC-JAV000001[00032] Avoid declaring class instance within loop, performance impact
00054 | MAJOR | QC-JAV000001[00054] Avoid declaring class instance within loop, performance impact

#### File lecode\engine\Setting.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DbObjectBase | org.h2.engine.Setting

Module / class or interface : org.h2.engine.Setting

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Setting | Setting(Database;int;String) | 1 | 1
void | setIntValue(int) | 1 | 1
int | getIntValue() | 1 | 1
void | setStringValue(String) | 1 | 1
String | getStringValue() | 1 | 1
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getDropSQL() | 1 | 1
String | getCreateSQL() | 3 | 5
int | getType() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 2
void | checkRename() | 1 | 1

#### File lecode\engine\SettingsBase.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.engine.SettingsBase

Module / class or interface : org.h2.engine.SettingsBase

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SettingsBase | SettingsBase(HashMap<String,String>) | 1 | 1
boolean | get(String;boolean) | 1 | 3
int | get(String;int) | 1 | 3
String | get(String;String) | 5 | 7
boolean | containsKey(String) | 1 | 1
HashMap<String,String> | getSettings() | 1 | 1

#### File lecode\engine\UndoLog.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.engine.UndoLog

Module / class or interface : org.h2.engine.UndoLog

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
UndoLog | UndoLog(Session) | 1 | 2
int | size() | 3 | 3
void | clear() | 2 | 7
UndoLogRecord | getLast() | 6 | 7
void | seek(long) | 1 | 1
void | removeLast(boolean) | 3 | 4
void | add(UndoLogRecord) | 6 | 2
void | saveIfPossible(UndoLogRecord;Data) | 2 | 2
int | getTableId(Table) | 2 | 4
Table | getTable(int) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 5
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00159 | INFO | QC-JAV999996[00159] CPD de longueur 64 commencant en 735 (ligne 159) et 983 (ligne 187): database . getMaxMemoryUndo ( ) ) __ ( database . isPersistent ( ) __ ( ! database . isMultiVersion ( ) ) ) ) { if ( file == null ) { String fileName = database . createTempFile ( ) ; file = database . openFile ( fileName , "rw" , false ) ; file . setCheckedWriting ( false ) ; file . setLength
00092 | MAJOR | QC-JAV000001[00092] Avoid declaring class instance within loop, performance impact
00107 | MAJOR | QC-JAV000001[00107] Avoid declaring class instance within loop, performance impact
00117 | MAJOR | QC-JAV000001[00117] Avoid declaring class instance within loop, performance impact
00168 | MAJOR | QC-JAV000001[00168] Avoid declaring class instance within loop, performance impact
00196 | MAJOR | QC-JAV000001[00196] Avoid declaring class instance within loop, performance impact

#### File lecode\engine\UndoLogRecord.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.engine.UndoLogRecord

Module / class or interface : org.h2.engine.UndoLogRecord

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
UndoLogRecord | UndoLogRecord(Table;short;Row) | 1 | 4
boolean | isStored() | 1 | 1
boolean | canStore() | 2 | 2
void | undo(Session) | 5 | 4
void | append(Data;UndoLog) | 2 | 16
void | save(Data;FileStore;UndoLog) | 1 | 6
UndoLogRecord | loadFromBuffer(Data;UndoLog) | 1 | 6
void | load(Data;FileStore;UndoLog) | 4 | 9
void | load(Data;UndoLog) | 2 | 15
Table | getTable() | 1 | 1
long | getFilePos() | 1 | 1
void | commit() | 1 | 1
Row | getRow() | 1 | 1
void | invalidatePos() | 2 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00149 | MAJOR | QC-JAV000001[00149] Avoid declaring class instance within loop, performance impact

#### File lecode\engine\User.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
RightOwner | org.h2.engine.User

Module / class or interface : org.h2.engine.User

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
User | User(Database;int;String;boolean) | 1 | 2
void | setAdmin(boolean) | 1 | 1
boolean | isAdmin() | 1 | 1
void | setSaltAndHash(byte[];byte[]) | 1 | 2
void | setUserPasswordHash(byte[]) | 4 | 0
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getCreateSQL() | 1 | 1
String | getDropSQL() | 1 | 1
void | checkRight(Table;int) | 2 | 1
boolean | hasRight(Table;int) | 11 | 11
String | getCreateSQL(boolean) | 5 | 7
boolean | validateUserPasswordHash(byte[]) | 3 | 4
void | checkAdmin() | 2 | 1
int | getType() | 1 | 1
ArrayList<DbObject> | getChildren() | 5 | 2
void | removeChildrenAndResources(Session) | 3 | 5
void | checkRename() | 1 | 0
void | checkOwnsNoSchemas() | 3 | 0

#### File lecode\engine\UserAggregate.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DbObjectBase | org.h2.engine.UserAggregate

Module / class or interface : org.h2.engine.UserAggregate

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
UserAggregate | UserAggregate(Database;int;String;String;boolean) | 2 | 3
AggregateFunction | getInstance() | 2 | 6
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getDropSQL() | 1 | 1
String | getCreateSQL() | 1 | 1
int | getType() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 4
void | checkRename() | 1 | 1
String | getJavaClassName() | 1 | 1

#### File lecode\engine\UserDataType.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DbObjectBase | org.h2.engine.UserDataType

Module / class or interface : org.h2.engine.UserDataType

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
UserDataType | UserDataType(Database;int;String) | 1 | 1
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getDropSQL() | 1 | 1
String | getCreateSQL() | 1 | 1
Column | getColumn() | 1 | 1
int | getType() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 1
void | checkRename() | 1 | 0
void | setColumn(Column) | 1 | 1

#### File lecode\expression\Aggregate.java 5 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Expression | org.h2.expression.Aggregate

Module / class or interface : org.h2.expression.Aggregate

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Aggregate | Aggregate(int;Expression;Select;boolean) | 1 | 4
void | addAggregate(String;int) | 1 | 1
int | getAggregateType(String) | 1 | 2
void | setOrder(ArrayList<SelectOrderBy>) | 1 | 1
void | setSeparator(Expression) | 1 | 1
SortOrder | initOrder(Session) | 2 | 10
void | updateAggregate(Session) | 6 | 10
Value | getValue(Session) | 8 | 10
int | getType() | 1 | 1
void | mapColumns(ColumnResolver;int) | 5 | 2
Expression | optimize(Session) | 25 | 40
void | setEvaluatable(TableFilter;boolean) | 5 | 2
int | getScale() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
String | getSQLGroupConcat() | 5 | 6
String | getSQL() | 17 | 32
Index | getColumnIndex() | 3 | 4
boolean | isEverything(ExpressionVisitor) | 6 | 3
int | getCost() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 5

Line start | Criticity class | Rule
--- | --- | ---
00214 | MAJOR | QC-JAV000001[00214] Avoid declaring class instance within loop, performance impact
00254 | MAJOR | QC-JAV000001[00254] Avoid declaring class instance within loop, performance impact
00319 | MAJOR | QC-JAV000001[00319] Avoid declaring class instance within loop, performance impact
00321 | MAJOR | QC-JAV000001[00321] Avoid declaring class instance within loop, performance impact
00580 | MAJOR | QC-JAV000001[00580] Avoid declaring class instance within loop, performance impact

#### File lecode\expression\AggregateData.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.expression.AggregateData

Module / class or interface : org.h2.expression.AggregateData

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
AggregateData | AggregateData(int;int) | 1 | 2
void | add(Database;boolean;Value) | 37 | 24
ArrayList<Value> | getList() | 1 | 1
Value | getValue(Database;boolean) | 19 | 17
Value | divide(Value;long) | 2 | 5
void | groupDistinct(Database) | 5 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00255 | MAJOR | QC-JAV000001[00255] Avoid declaring class instance within loop, performance impact

#### File lecode\expression\Alias.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Expression | org.h2.expression.Alias

Module / class or interface : org.h2.expression.Alias

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Alias | Alias(Expression;String;boolean) | 1 | 3
Expression | getNonAliasExpression() | 1 | 1
Value | getValue(Session) | 1 | 1
int | getType() | 1 | 1
void | mapColumns(ColumnResolver;int) | 1 | 1
Expression | optimize(Session) | 1 | 2
void | setEvaluatable(TableFilter;boolean) | 1 | 1
int | getScale() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
boolean | isAutoIncrement() | 1 | 1
String | getSQL() | 1 | 1
void | updateAggregate(Session) | 1 | 1
String | getAlias() | 1 | 1
int | getNullable() | 1 | 1
boolean | isEverything(ExpressionVisitor) | 1 | 1
int | getCost() | 1 | 1
String | getTableName() | 2 | 2
String | getColumnName() | 2 | 2

#### File lecode\expression\CompareLike.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Condition | org.h2.expression.CompareLike

Module / class or interface : org.h2.expression.CompareLike

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CompareLike | CompareLike(Database;Expression;Expression;Expression;boolean) | 1 | 1
CompareLike | CompareLike(CompareMode;String;Expression;Expression;Expression;boolean) | 1 | 6
Character | getEscapeChar(String) | 1 | 1
String | getSQL() | 4 | 4
Expression | optimize(Session) | 12 | 11
Character | getEscapeChar(Value) | 8 | 6
void | createIndexConditions(Session;TableFilter) | 13 | 20
Value | getValue(Session) | 8 | 12
boolean | compare(char[];String;int;int) | 1 | 1
boolean | compareAt(String;int;int;int;char[];int[]) | 2 | 3
boolean | test(String;String;char) | 2 | 3
void | initPattern(String;Character) | 13 | 20
boolean | isFullMatch() | 4 | 2
void | mapColumns(ColumnResolver;int) | 2 | 3
void | setEvaluatable(TableFilter;boolean) | 2 | 3
void | updateAggregate(Session) | 2 | 3
boolean | isEverything(ExpressionVisitor) | 1 | 1
int | getCost() | 1 | 1

#### File lecode\expression\Comparison.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Condition | org.h2.expression.Comparison

Module / class or interface : org.h2.expression.Comparison

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Comparison | Comparison(Session;int;Expression;Expression) | 1 | 4
String | getSQL() | 3 | 7
String | getCompareOperator(int) | 9 | 9
Expression | optimize(Session) | 10 | 3
Value | getValue(Session) | 6 | 9
boolean | compareNotNull(Database;Value;Value;int) | 9 | 15
int | getReversedCompareType(int) | 9 | 6
int | getNotCompareType() | 11 | 11
Expression | getNotIfPossible(Session) | 1 | 2
void | createIndexConditions(Session;TableFilter) | 27 | 16
void | setEvaluatable(TableFilter;boolean) | 2 | 2
void | updateAggregate(Session) | 2 | 2
void | addFilterConditions(TableFilter;boolean) | 2 | 2
void | mapColumns(ColumnResolver;int) | 2 | 2
boolean | isEverything(ExpressionVisitor) | 1 | 1
int | getCost() | 1 | 1
Expression | getIfEquals(Expression) | 5 | 2
Expression | getAdditional(Session;Comparison;boolean) | 4 | 7
Expression | getExpression(boolean) | 1 | 1

#### File lecode\expression\Condition.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Expression | org.h2.expression.Condition

Module / class or interface : org.h2.expression.Condition

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
int | getType() | 1 | 1
int | getScale() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1

#### File lecode\expression\ConditionAndOr.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Condition | org.h2.expression.ConditionAndOr

Module / class or interface : org.h2.expression.ConditionAndOr

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ConditionAndOr | ConditionAndOr(int;Expression;Expression) | 2 | 4
String | getSQL() | 3 | 7
void | createIndexConditions(Session;TableFilter) | 2 | 2
Expression | getNotIfPossible(Session) | 3 | 6
Value | getValue(Session) | 3 | 3
Expression | optimize(Session) | 19 | 14
void | addFilterConditions(TableFilter;boolean) | 3 | 3
void | mapColumns(ColumnResolver;int) | 1 | 2
void | setEvaluatable(TableFilter;boolean) | 1 | 2
void | updateAggregate(Session) | 1 | 2
boolean | isEverything(ExpressionVisitor) | 1 | 1
int | getCost() | 1 | 1
Expression | getExpression(boolean) | 1 | 1

#### File lecode\expression\ConditionExists.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Condition | org.h2.expression.ConditionExists

Module / class or interface : org.h2.expression.ConditionExists

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ConditionExists | ConditionExists(Query) | 1 | 1
Value | getValue(Session) | 1 | 5
Expression | optimize(Session) | 1 | 2
String | getSQL() | 1 | 1
void | updateAggregate(Session) | 1 | 0
void | mapColumns(ColumnResolver;int) | 1 | 1
void | setEvaluatable(TableFilter;boolean) | 1 | 1
boolean | isEverything(ExpressionVisitor) | 1 | 1
int | getCost() | 1 | 1

#### File lecode\expression\ConditionIn.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Condition | org.h2.expression.ConditionIn

Module / class or interface : org.h2.expression.ConditionIn

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ConditionIn | ConditionIn(Database;Expression;ArrayList<Expression>) | 1 | 3
Value | getValue(Session) | 6 | 7
void | mapColumns(ColumnResolver;int) | 2 | 3
Expression | optimize(Session) | 8 | 22
void | createIndexConditions(Session;TableFilter) | 5 | 6
void | setEvaluatable(TableFilter;boolean) | 2 | 2
String | getSQL() | 2 | 5
void | updateAggregate(Session) | 2 | 2
boolean | isEverything(ExpressionVisitor) | 2 | 2
boolean | areAllValues(ExpressionVisitor) | 3 | 1
int | getCost() | 2 | 3
Expression | getAdditional(Comparison) | 2 | 4

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00051 | MAJOR | QC-JAV000001[00051] Avoid declaring class instance within loop, performance impact
00087 | MAJOR | QC-JAV000001[00087] Avoid declaring class instance within loop, performance impact

#### File lecode\expression\ConditionInConstantSet.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Condition | org.h2.expression.ConditionInConstantSet

Module / class or interface : org.h2.expression.ConditionInConstantSet

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ConditionInConstantSet | ConditionInConstantSet(Session;Expression;ArrayList<Expression>) | 2 | 4
Value | getValue(Session) | 3 | 8
void | mapColumns(ColumnResolver;int) | 1 | 2
Expression | optimize(Session) | 1 | 2
void | createIndexConditions(Session;TableFilter) | 4 | 5
void | setEvaluatable(TableFilter;boolean) | 1 | 1
String | getSQL() | 2 | 5
void | updateAggregate(Session) | 1 | 0
boolean | isEverything(ExpressionVisitor) | 12 | 3
int | getCost() | 1 | 2

#### File lecode\expression\ConditionInSelect.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Condition | org.h2.expression.ConditionInSelect

Module / class or interface : org.h2.expression.ConditionInSelect

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ConditionInSelect | ConditionInSelect(Database;Expression;Query;boolean;int) | 1 | 5
Value | getValue(Session) | 9 | 14
Value | getValueSlow(LocalResult;Value) | 7 | 6
void | mapColumns(ColumnResolver;int) | 1 | 3
Expression | optimize(Session) | 2 | 5
void | setEvaluatable(TableFilter;boolean) | 1 | 2
String | getSQL() | 3 | 6
void | updateAggregate(Session) | 1 | 2
boolean | isEverything(ExpressionVisitor) | 1 | 1
int | getCost() | 1 | 1
void | createIndexConditions(Session;TableFilter) | 5 | 7

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00080 | MAJOR | QC-JAV000001[00080] Avoid declaring class instance within loop, performance impact

#### File lecode\expression\ConditionNot.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Condition | org.h2.expression.ConditionNot

Module / class or interface : org.h2.expression.ConditionNot

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ConditionNot | ConditionNot(Expression) | 1 | 1
Expression | getNotIfPossible(Session) | 1 | 1
Value | getValue(Session) | 2 | 3
void | mapColumns(ColumnResolver;int) | 1 | 1
Expression | optimize(Session) | 4 | 7
void | setEvaluatable(TableFilter;boolean) | 1 | 1
String | getSQL() | 1 | 1
void | updateAggregate(Session) | 1 | 1
void | addFilterConditions(TableFilter;boolean) | 2 | 2
boolean | isEverything(ExpressionVisitor) | 1 | 1
int | getCost() | 1 | 1

#### File lecode\expression\Expression.java 5 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.expression.Expression

Module / class or interface : org.h2.expression.Expression

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Value | getValue(Session) | 1 | 1
int | getType() | 1 | 1
void | mapColumns(ColumnResolver;int) | 1 | 1
Expression | optimize(Session) | 1 | 1
void | setEvaluatable(TableFilter;boolean) | 1 | 1
int | getScale() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
String | getSQL() | 1 | 1
void | updateAggregate(Session) | 1 | 1
boolean | isEverything(ExpressionVisitor) | 1 | 1
int | getCost() | 1 | 1
Expression | getNotIfPossible(Session) | 1 | 1
boolean | isConstant() | 1 | 1
boolean | isValueSet() | 1 | 1
boolean | isAutoIncrement() | 1 | 1
Boolean | getBooleanValue(Session) | 1 | 1
void | createIndexConditions(Session;TableFilter) | 1 | 0
String | getColumnName() | 1 | 1
String | getSchemaName() | 1 | 1
String | getTableName() | 1 | 1
int | getNullable() | 1 | 1
String | getTableAlias() | 1 | 1
String | getAlias() | 1 | 1
boolean | isWildcard() | 1 | 1
Expression | getNonAliasExpression() | 1 | 1
void | addFilterConditions(TableFilter;boolean) | 2 | 2
String | toString() | 1 | 1
Expression[] | getExpressionColumns(Session) | 1 | 1
Expression[] | getExpressionColumns(Session;ValueArray) | 2 | 8
Expression[] | getExpressionColumns(Session;ResultSet) | 2 | 6

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 5

Line start | Criticity class | Rule
--- | --- | ---
00310 | MAJOR | QC-JAV000001[00310] Avoid declaring class instance within loop, performance impact
00311 | MAJOR | QC-JAV000001[00311] Avoid declaring class instance within loop, performance impact
00332 | MAJOR | QC-JAV000001[00332] Avoid declaring class instance within loop, performance impact
00337 | MAJOR | QC-JAV000001[00337] Avoid declaring class instance within loop, performance impact
00338 | MAJOR | QC-JAV000001[00338] Avoid declaring class instance within loop, performance impact

#### File lecode\expression\ExpressionColumn.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Expression | org.h2.expression.ExpressionColumn

Module / class or interface : org.h2.expression.ExpressionColumn

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ExpressionColumn | ExpressionColumn(Database;Column) | 1 | 5
ExpressionColumn | ExpressionColumn(Database;String;String;String) | 1 | 4
String | getSQL() | 5 | 9
TableFilter | getTableFilter() | 1 | 1
void | mapColumns(ColumnResolver;int) | 9 | 8
void | mapColumn(ColumnResolver;Column;int) | 6 | 3
Expression | optimize(Session) | 4 | 4
void | updateAggregate(Session) | 6 | 7
Value | getValue(Session) | 4 | 6
int | getType() | 1 | 1
void | setEvaluatable(TableFilter;boolean) | 2 | 1
Column | getColumn() | 1 | 1
int | getScale() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
String | getOriginalColumnName() | 1 | 1
String | getOriginalTableAliasName() | 1 | 1
String | getColumnName() | 1 | 1
String | getSchemaName() | 1 | 2
String | getTableName() | 1 | 2
String | getAlias() | 1 | 1
boolean | isAutoIncrement() | 1 | 1
int | getNullable() | 1 | 1
boolean | isEverything(ExpressionVisitor) | 13 | 11
int | getCost() | 1 | 1
void | createIndexConditions(Session;TableFilter) | 2 | 3
Expression | getNotIfPossible(Session) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00087 | MAJOR | QC-JAV000001[00087] Avoid declaring class instance within loop, performance impact
00102 | MAJOR | QC-JAV000001[00102] Avoid declaring class instance within loop, performance impact

#### File lecode\expression\ExpressionList.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Expression | org.h2.expression.ExpressionList

Module / class or interface : org.h2.expression.ExpressionList

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ExpressionList | ExpressionList(Expression[]) | 1 | 1
Value | getValue(Session) | 2 | 5
int | getType() | 1 | 1
void | mapColumns(ColumnResolver;int) | 2 | 1
Expression | optimize(Session) | 4 | 7
void | setEvaluatable(TableFilter;boolean) | 2 | 1
int | getScale() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
String | getSQL() | 3 | 5
void | updateAggregate(Session) | 2 | 1
boolean | isEverything(ExpressionVisitor) | 3 | 1
int | getCost() | 2 | 3
Expression[] | getExpressionColumns(Session) | 2 | 7

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00050 | MAJOR | QC-JAV000001[00050] Avoid declaring class instance within loop, performance impact
00118 | MAJOR | QC-JAV000001[00118] Avoid declaring class instance within loop, performance impact
00119 | MAJOR | QC-JAV000001[00119] Avoid declaring class instance within loop, performance impact

#### File lecode\expression\ExpressionVisitor.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.expression.ExpressionVisitor

Module / class or interface : org.h2.expression.ExpressionVisitor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ExpressionVisitor | ExpressionVisitor(int;int;HashSet<DbObject>;HashSet<Column>;Table;ColumnResolver;long[]) | 1 | 7
ExpressionVisitor | ExpressionVisitor(int) | 1 | 7
ExpressionVisitor | getDependenciesVisitor(HashSet<DbObject>) | 1 | 1
ExpressionVisitor | getOptimizableVisitor(Table) | 1 | 1
ExpressionVisitor | getNotFromResolverVisitor(ColumnResolver) | 1 | 1
ExpressionVisitor | getColumnsVisitor(HashSet<Column>) | 1 | 1
ExpressionVisitor | getMaxModificationIdVisitor() | 1 | 1
void | addDependency(DbObject) | 1 | 1
void | addColumn(Column) | 1 | 1
HashSet<DbObject> | getDependencies() | 1 | 1
ExpressionVisitor | incrementQueryLevel(int) | 1 | 1
ColumnResolver | getResolver() | 1 | 1
void | addDataModificationId(long) | 2 | 2
long | getMaxDataModificationId() | 1 | 1
int | getQueryLevel() | 1 | 1
Table | getTable() | 1 | 1
int | getType() | 1 | 1

#### File lecode\expression\Function.java 6 rule violations (XML file)

Module / class or interface : org.h2.expression.

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
BLOCKER | QC-JAV999999 | Syntax analysis failure on the source code | 1
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 5

Line start | Criticity class | Rule
--- | --- | ---
00072 | BLOCKER | QC-JAV999999[00072] syntax analysis failed on file D:\\maven-qcr-plugin-testsunitaires\\qcr4java\\h2-1.3.170-sources\\lecode\\expression\\Function.java near following tokens ; import org . h2 . value . ValueUuid ; public class Function extends Expression implements FunctionCall { public static final
01129 | INFO | QC-JAV999996[01129] CPD de longueur 72 commencant en 9380 (ligne 1129) et 9486 (ligne 1139): { if ( v0 == ValueNull . INSTANCE || v1 == ValueNull . INSTANCE ) { result = ValueNull . INSTANCE ; } else { String locale = v2 == null ? null : v2 == ValueNull . INSTANCE ? null : v2 . getString ( ) ; String tz = v3 == null ? null : v3 == ValueNull . INSTANCE ? null : v3 . getString ( ) ; result
01175 | INFO | QC-JAV999996[01175] CPD de longueur 72 commencant en 9788 (ligne 1175) et 10116 (ligne 1211): v3 == null ? null : v3 . getString ( ) ; String fieldDelimiter = v4 == null ? null : v4 . getString ( ) ; String escapeCharacter = v5 == null ? null : v5 . getString ( ) ; Value v6 = getNullOrValue ( session , args , values , 6 ) ; String nullString = v6 == null ? null : v6 . getString ( ) ; setCsvDelimiterEscape
01331 | INFO | QC-JAV999996[01331] CPD de longueur 64 commencant en 10938 (ligne 1331) et 11023 (ligne 1340): String algorithm , byte [ ] key , byte [ ] data ) { BlockCipher cipher = CipherFactory . getBlockCipher ( algorithm ) ; byte [ ] newKey = getPaddedArrayCopy ( key , cipher . getKeyLength ( ) ) ; cipher . setKey ( newKey ) ; byte [ ] newData = getPaddedArrayCopy ( data , BlockCipher . ALIGN ) ; cipher . decrypt
01410 | INFO | QC-JAV999996[01410] CPD de longueur 59 commencant en 11424 (ligne 1410) et 11492 (ligne 1414): . getOffset ( calendar . get ( Calendar . ERA ) , calendar . get ( Calendar . YEAR ) , calendar . get ( Calendar . MONTH ) , calendar . get ( Calendar . DAY_OF_MONTH ) , calendar . get ( Calendar . DAY_OF_WEEK ) , calendar . get ( Calendar . MILLISECOND ) ) ; calendar
01820 | INFO | QC-JAV999996[01820] CPD de longueur 77 commencant en 13963 (ligne 1820) et 14118 (ligne 1836): Math . max ( args [ 1 ] . getPrecision ( ) , args [ 2 ] . getPrecision ( ) ) ; d = Math . max ( args [ 1 ] . getDisplaySize ( ) , args [ 2 ] . getDisplaySize ( ) ) ; s = Math . max ( args [ 1 ] . getScale ( ) , args [ 2 ] . getScale ( ) ) ; break ; case NVL2

#### File lecode\expression\FunctionCall.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.expression.FunctionCall

Module / class or interface : org.h2.expression.FunctionCall

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
String | getName() | 1 | 1
int | getParameterCount() | 1 | 1
ValueResultSet | getValueForColumnList(Session;Expression[]) | 1 | 1
int | getType() | 1 | 1
Expression | optimize(Session) | 1 | 1
Expression[] | getArgs() | 1 | 1
String | getSQL() | 1 | 1
boolean | isDeterministic() | 1 | 1
boolean | isFast() | 1 | 1

#### File lecode\expression\FunctionInfo.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.expression.FunctionInfo

Module / class or interface : org.h2.expression.FunctionInfo

#### File lecode\expression\JavaAggregate.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Expression | org.h2.expression.JavaAggregate

Module / class or interface : org.h2.expression.JavaAggregate

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JavaAggregate | JavaAggregate(UserAggregate;Expression[];Select) | 1 | 3
int | getCost() | 2 | 3
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
int | getScale() | 1 | 1
String | getSQL() | 2 | 5
int | getType() | 1 | 1
boolean | isEverything(ExpressionVisitor) | 6 | 4
void | mapColumns(ColumnResolver;int) | 2 | 1
Expression | optimize(Session) | 2 | 15
void | setEvaluatable(TableFilter;boolean) | 2 | 1
AggregateFunction | getInstance() | 1 | 3
Value | getValue(Session) | 4 | 6
void | updateAggregate(Session) | 7 | 11

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00112 | MAJOR | QC-JAV000001[00112] Avoid declaring class instance within loop, performance impact
00182 | MAJOR | QC-JAV000001[00182] Avoid declaring class instance within loop, performance impact

#### File lecode\expression\JavaFunction.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
ExpressionFunctionCall | org.h2.expression.JavaFunction

Module / class or interface : org.h2.expression.JavaFunction

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JavaFunction | JavaFunction(FunctionAlias;Expression[]) | 1 | 3
Value | getValue(Session) | 1 | 1
int | getType() | 1 | 1
void | mapColumns(ColumnResolver;int) | 2 | 1
Expression | optimize(Session) | 3 | 8
void | setEvaluatable(TableFilter;boolean) | 3 | 0
int | getScale() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
String | getSQL() | 3 | 6
void | updateAggregate(Session) | 3 | 0
String | getName() | 1 | 1
int | getParameterCount() | 1 | 1
ValueResultSet | getValueForColumnList(Session;Expression[]) | 1 | 2
Expression[] | getArgs() | 1 | 1
boolean | isEverything(ExpressionVisitor) | 6 | 4
int | getCost() | 2 | 3
boolean | isDeterministic() | 1 | 1
Expression[] | getExpressionColumns(Session) | 3 | 4
boolean | isFast() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00054 | MAJOR | QC-JAV000001[00054] Avoid declaring class instance within loop, performance impact

#### File lecode\expression\Operation.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Expression | org.h2.expression.Operation

Module / class or interface : org.h2.expression.Operation

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Operation | Operation(int;Expression;Expression) | 1 | 3
String | getSQL() | 3 | 4
String | getOperationToken() | 8 | 8
Value | getValue(Session) | 16 | 11
void | mapColumns(ColumnResolver;int) | 2 | 2
Expression | optimize(Session) | 15 | 13
void | swap() | 1 | 3
void | setEvaluatable(TableFilter;boolean) | 2 | 2
int | getType() | 1 | 1
long | getPrecision() | 2 | 1
int | getDisplaySize() | 2 | 1
int | getScale() | 2 | 2
void | updateAggregate(Session) | 2 | 2
boolean | isEverything(ExpressionVisitor) | 1 | 1
int | getCost() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00248 | INFO | QC-JAV999996[00248] CPD de longueur 64 commencant en 1460 (ligne 248) et 1633 (ligne 260): ) ) ; right = ( new Operation ( NEGATE , right , null ) ) ; right = right . optimize ( session ) ; f . setParameter ( 1 , right ) ; f . setParameter ( 2 , left ) ; f . doneWithParameters ( ) ; return f . optimize ( session ) ; } else if ( ( (

#### File lecode\expression\Parameter.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
ExpressionParameterInterface | org.h2.expression.Parameter

Module / class or interface : org.h2.expression.Parameter

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Parameter | Parameter(int) | 1 | 1
String | getSQL() | 1 | 1
void | setValue(Value;boolean) | 1 | 1
void | setValue(Value) | 1 | 1
Value | getParamValue() | 2 | 2
Value | getValue(Session) | 1 | 1
int | getType() | 3 | 3
void | mapColumns(ColumnResolver;int) | 1 | 0
void | checkSet() | 2 | 1
Expression | optimize(Session) | 1 | 1
boolean | isConstant() | 1 | 1
boolean | isValueSet() | 1 | 1
void | setEvaluatable(TableFilter;boolean) | 1 | 0
int | getScale() | 3 | 3
long | getPrecision() | 3 | 3
int | getDisplaySize() | 3 | 3
void | updateAggregate(Session) | 1 | 0
boolean | isEverything(ExpressionVisitor) | 11 | 3
int | getCost() | 1 | 1
Expression | getNotIfPossible(Session) | 1 | 1
void | setColumn(Column) | 1 | 1
int | getIndex() | 1 | 1

#### File lecode\expression\ParameterInterface.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.expression.ParameterInterface

Module / class or interface : org.h2.expression.ParameterInterface

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setValue(Value;boolean) | 1 | 1
Value | getParamValue() | 1 | 1
void | checkSet() | 1 | 1
boolean | isValueSet() | 1 | 1
int | getType() | 1 | 1
long | getPrecision() | 1 | 1
int | getScale() | 1 | 1
int | getNullable() | 1 | 1

#### File lecode\expression\ParameterRemote.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.expression.ParameterRemote

Module / class or interface : org.h2.expression.ParameterRemote

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ParameterRemote | ParameterRemote(int) | 1 | 1
void | setValue(Value;boolean) | 2 | 2
Value | getParamValue() | 1 | 1
void | checkSet() | 2 | 1
boolean | isValueSet() | 1 | 1
int | getType() | 1 | 1
long | getPrecision() | 1 | 1
int | getScale() | 1 | 1
int | getNullable() | 1 | 1
void | readMetaData(Transfer) | 1 | 4
void | writeMetaData(Transfer;ParameterInterface) | 1 | 4

#### File lecode\expression\Rownum.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Expression | org.h2.expression.Rownum

Module / class or interface : org.h2.expression.Rownum

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Rownum | Rownum(Prepared) | 1 | 1
Value | getValue(Session) | 1 | 1
int | getType() | 1 | 1
void | mapColumns(ColumnResolver;int) | 1 | 0
Expression | optimize(Session) | 1 | 1
void | setEvaluatable(TableFilter;boolean) | 1 | 0
int | getScale() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
String | getSQL() | 1 | 1
void | updateAggregate(Session) | 1 | 0
boolean | isEverything(ExpressionVisitor) | 11 | 3
int | getCost() | 1 | 1

#### File lecode\expression\SequenceValue.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Expression | org.h2.expression.SequenceValue

Module / class or interface : org.h2.expression.SequenceValue

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SequenceValue | SequenceValue(Sequence) | 1 | 1
Value | getValue(Session) | 1 | 3
int | getType() | 1 | 1
void | mapColumns(ColumnResolver;int) | 1 | 0
Expression | optimize(Session) | 1 | 1
void | setEvaluatable(TableFilter;boolean) | 1 | 0
int | getScale() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
String | getSQL() | 1 | 1
void | updateAggregate(Session) | 1 | 0
boolean | isEverything(ExpressionVisitor) | 11 | 7
int | getCost() | 1 | 1

#### File lecode\expression\Subquery.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Expression | org.h2.expression.Subquery

Module / class or interface : org.h2.expression.Subquery

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Subquery | Subquery(Query) | 1 | 1
Value | getValue(Session) | 4 | 6
int | getType() | 1 | 1
void | mapColumns(ColumnResolver;int) | 1 | 1
Expression | optimize(Session) | 1 | 2
void | setEvaluatable(TableFilter;boolean) | 1 | 1
int | getScale() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
String | getSQL() | 1 | 1
void | updateAggregate(Session) | 1 | 1
Expression | getExpression() | 4 | 3
boolean | isEverything(ExpressionVisitor) | 1 | 1
Query | getQuery() | 1 | 1
int | getCost() | 1 | 1
Expression[] | getExpressionColumns(Session) | 1 | 1

#### File lecode\expression\TableFunction.java 15 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Function | org.h2.expression.TableFunction

Module / class or interface : org.h2.expression.TableFunction

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TableFunction | TableFunction(Database;FunctionInfo;long) | 1 | 3
Value | getValue(Session) | 1 | 1
void | checkParameterCount(int) | 2 | 1
String | getSQL() | 2 | 6
String | getName() | 1 | 1
ValueResultSet | getValueForColumnList(Session;Expression[]) | 1 | 1
void | setColumns(ArrayList<Column>) | 1 | 2
ValueResultSet | getTable(Session;Expression[];boolean;boolean) | 6 | 15
SimpleResultSet | getSimpleResultSet(ResultInterface;int) | 4 | 15
long | getRowCount() | 1 | 1
Expression[] | getExpressionColumns(Session) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 15

Line start | Criticity class | Rule
--- | --- | ---
00080 | MAJOR | QC-JAV000001[00080] Avoid declaring class instance within loop, performance impact
00081 | MAJOR | QC-JAV000001[00081] Avoid declaring class instance within loop, performance impact
00092 | MAJOR | QC-JAV000001[00092] Avoid declaring class instance within loop, performance impact
00096 | MAJOR | QC-JAV000001[00096] Avoid declaring class instance within loop, performance impact
00096 | MAJOR | QC-JAV000001[00096] Avoid declaring class instance within loop, performance impact
00097 | MAJOR | QC-JAV000001[00097] Avoid declaring class instance within loop, performance impact
00103 | MAJOR | QC-JAV000001[00103] Avoid declaring class instance within loop, performance impact
00105 | MAJOR | QC-JAV000001[00105] Avoid declaring class instance within loop, performance impact
00106 | MAJOR | QC-JAV000001[00106] Avoid declaring class instance within loop, performance impact
00110 | MAJOR | QC-JAV000001[00110] Avoid declaring class instance within loop, performance impact
00105 | MAJOR | QC-JAV000001[00105] Avoid declaring class instance within loop, performance impact
00106 | MAJOR | QC-JAV000001[00106] Avoid declaring class instance within loop, performance impact
00110 | MAJOR | QC-JAV000001[00110] Avoid declaring class instance within loop, performance impact
00130 | MAJOR | QC-JAV000001[00130] Avoid declaring class instance within loop, performance impact
00138 | MAJOR | QC-JAV000001[00138] Avoid declaring class instance within loop, performance impact

#### File lecode\expression\ValueExpression.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Expression | org.h2.expression.ValueExpression

Module / class or interface : org.h2.expression.ValueExpression

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueExpression | ValueExpression(Value) | 1 | 1
ValueExpression | getNull() | 1 | 1
ValueExpression | getDefault() | 1 | 1
ValueExpression | get(Value) | 2 | 2
Value | getValue(Session) | 1 | 1
int | getType() | 1 | 1
void | createIndexConditions(Session;TableFilter) | 3 | 1
Expression | getNotIfPossible(Session) | 1 | 1
void | mapColumns(ColumnResolver;int) | 1 | 0
Expression | optimize(Session) | 1 | 1
boolean | isConstant() | 1 | 1
boolean | isValueSet() | 1 | 1
void | setEvaluatable(TableFilter;boolean) | 1 | 0
int | getScale() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
String | getSQL() | 2 | 2
void | updateAggregate(Session) | 1 | 0
boolean | isEverything(ExpressionVisitor) | 11 | 2
int | getCost() | 1 | 1
Expression[] | getExpressionColumns(Session) | 2 | 2

#### File lecode\expression\Variable.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Expression | org.h2.expression.Variable

Module / class or interface : org.h2.expression.Variable

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Variable | Variable(Session;String) | 1 | 2
int | getCost() | 1 | 1
int | getDisplaySize() | 1 | 1
long | getPrecision() | 1 | 1
String | getSQL() | 1 | 1
int | getScale() | 1 | 1
int | getType() | 1 | 1
Value | getValue(Session) | 1 | 2
boolean | isEverything(ExpressionVisitor) | 11 | 3
void | mapColumns(ColumnResolver;int) | 1 | 0
Expression | optimize(Session) | 1 | 1
void | setEvaluatable(TableFilter;boolean) | 1 | 0
void | updateAggregate(Session) | 1 | 0
String | getName() | 1 | 1

#### File lecode\expression\Wildcard.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Expression | org.h2.expression.Wildcard

Module / class or interface : org.h2.expression.Wildcard

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Wildcard | Wildcard(String;String) | 1 | 2
boolean | isWildcard() | 1 | 1
Value | getValue(Session) | 1 | 1
int | getType() | 1 | 1
void | mapColumns(ColumnResolver;int) | 1 | 1
Expression | optimize(Session) | 1 | 1
void | setEvaluatable(TableFilter;boolean) | 1 | 1
int | getScale() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
String | getTableAlias() | 1 | 1
String | getSchemaName() | 1 | 1
String | getSQL() | 2 | 2
void | updateAggregate(Session) | 1 | 1
boolean | isEverything(ExpressionVisitor) | 1 | 1
int | getCost() | 1 | 1

#### File lecode\fulltext\FullText.java 60 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.fulltext.FullText

Module / class or interface : org.h2.fulltext.FullText

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | init(Connection) | 3 | 26
void | createIndex(Connection;String;String;String) | 1 | 8
void | reindex(Connection) | 1 | 13
void | dropIndex(Connection;String;String) | 4 | 16
void | dropAll(Connection) | 1 | 8
ResultSet | search(Connection;String;int;int) | 1 | 2
ResultSet | searchData(Connection;String;int;int) | 1 | 2
void | setIgnoreList(Connection;String) | 1 | 9
void | setWhitespaceChars(Connection;String) | 1 | 8
String | asString(Object;int) | 32 | 4
SimpleResultSet | createResultSet(boolean) | 3 | 8
Object[][] | parseKey(Connection;String) | 1 | 13
String | quoteSQL(Object;int) | 33 | 6
void | removeAllTriggers(Connection;String) | 2 | 5
void | setColumns(int[];ArrayList<String>;ArrayList<String>) | 4 | 6
ResultSet | search(Connection;String;int;int;boolean) | 11 | 21
void | addColumnData(ArrayList<String>;ArrayList<String>;Expression) | 5 | 10
void | addWords(FullTextSettings;HashSet<String>;Reader) | 2 | 6
void | addWords(FullTextSettings;HashSet<String>;String) | 2 | 4
void | createTrigger(Connection;String;String) | 1 | 1
void | createOrDropTrigger(Connection;String;String;boolean) | 2 | 6
void | indexExistingRows(Connection;String;String) | 2 | 7
String | quoteString(String) | 4 | 10
void | setIgnoreList(FullTextSettings;String) | 3 | 3
boolean | hasChanged(Object[];Object[];int[]) | 5 | 2
void | closeAll() | 1 | 1
SQLException | throwException(String) | 1 | 1

Security risk sequences

Seq | Step | Source / Method / Target | Risk nature
--- | --- | --- | ---
No 1 |  |  |
| 6 | null \---org.h2.fulltext.FullText.FullTextTrigger.fire\------org.h2.fulltext.FullText.FullTextTrigger.fire2 |
| 5 | org.h2.fulltext.FullText.FullTextTrigger.fire2\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.fire.oldRow |
| 4 | org.h2.fulltext.FullText.FullTextTrigger.fire.oldRow\---org.h2.fulltext.FullText.FullTextTrigger.delete\------org.h2.fulltext.FullText.FullTextTrigger.delete1 |
| 3 | org.h2.fulltext.FullText.FullTextTrigger.delete1\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.delete.row |
| 2 | org.h2.fulltext.FullText.FullTextTrigger.delete.row\---org.h2.fulltext.FullText.FullTextTrigger.getKey\------org.h2.fulltext.FullText.FullTextTrigger.delete.key |
| 1 | org.h2.fulltext.FullText.FullTextTrigger.delete.key\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 2 |  |  |
| 2 | org.h2.tools.SimpleResultSet.next\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.getWordIds.word |
| 1 | org.h2.fulltext.FullText.FullTextTrigger.getWordIds.word\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 3 |  |  |
| 6 | org.h2.fulltext.FullText.createIndex2\---dummymethode\------org.h2.fulltext.FullText.createIndex.schema |
| 5 | org.h2.fulltext.FullText.createIndex.schema\---org.h2.fulltext.FullText.indexExistingRows\------org.h2.fulltext.FullText.indexExistingRows2 |
| 4 | org.h2.fulltext.FullText.indexExistingRows2\---dummymethode\------org.h2.fulltext.FullText.indexExistingRows.schema |
| 3 | org.h2.fulltext.FullText.indexExistingRows.schema\---org.h2.fulltext.FullText.FullTextTrigger.init\------org.h2.fulltext.FullText.FullTextTrigger.init2 |
| 2 | org.h2.fulltext.FullText.FullTextTrigger.init2\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.init.schemaName |
| 1 | org.h2.fulltext.FullText.FullTextTrigger.init.schemaName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 4 |  |  |
| 6 | "SCHEMA"\---org.h2.tools.SimpleResultSet.getString (correctly sanitized)\------org.h2.fulltext.FullText.reindex.schema | correctly sanitized
| 5 | org.h2.fulltext.FullText.reindex.schema\---org.h2.fulltext.FullText.indexExistingRows\------org.h2.fulltext.FullText.indexExistingRows2 |
| 4 | org.h2.fulltext.FullText.indexExistingRows2\---dummymethode\------org.h2.fulltext.FullText.indexExistingRows.schema |
| 3 | org.h2.fulltext.FullText.indexExistingRows.schema\---org.h2.fulltext.FullText.FullTextTrigger.init\------org.h2.fulltext.FullText.FullTextTrigger.init2 |
| 2 | org.h2.fulltext.FullText.FullTextTrigger.init2\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.init.schemaName |
| 1 | org.h2.fulltext.FullText.FullTextTrigger.init.schemaName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : None
No 5 |  |  |
| 6 | org.h2.fulltext.FullText.createIndex3\---dummymethode\------org.h2.fulltext.FullText.createIndex.table |
| 5 | org.h2.fulltext.FullText.createIndex.table\---org.h2.fulltext.FullText.indexExistingRows\------org.h2.fulltext.FullText.indexExistingRows3 |
| 4 | org.h2.fulltext.FullText.indexExistingRows3\---dummymethode\------org.h2.fulltext.FullText.indexExistingRows.table |
| 3 | org.h2.fulltext.FullText.indexExistingRows.table\---org.h2.fulltext.FullText.FullTextTrigger.init\------org.h2.fulltext.FullText.FullTextTrigger.init4 |
| 2 | org.h2.fulltext.FullText.FullTextTrigger.init4\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.init.tableName |
| 1 | org.h2.fulltext.FullText.FullTextTrigger.init.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 6 |  |  |
| 6 | "TABLE"\---org.h2.tools.SimpleResultSet.getString (correctly sanitized)\------org.h2.fulltext.FullText.reindex.table | correctly sanitized
| 5 | org.h2.fulltext.FullText.reindex.table\---org.h2.fulltext.FullText.indexExistingRows\------org.h2.fulltext.FullText.indexExistingRows3 |
| 4 | org.h2.fulltext.FullText.indexExistingRows3\---dummymethode\------org.h2.fulltext.FullText.indexExistingRows.table |
| 3 | org.h2.fulltext.FullText.indexExistingRows.table\---org.h2.fulltext.FullText.FullTextTrigger.init\------org.h2.fulltext.FullText.FullTextTrigger.init4 |
| 2 | org.h2.fulltext.FullText.FullTextTrigger.init4\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.init.tableName |
| 1 | org.h2.fulltext.FullText.FullTextTrigger.init.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : None
No 7 |  |  |
| 7 | 1\---org.h2.tools.SimpleResultSet.getObject\------org.h2.fulltext.FullText.indexExistingRows.row |
| 6 | org.h2.fulltext.FullText.indexExistingRows.row\---org.h2.fulltext.FullText.FullTextTrigger.fire\------org.h2.fulltext.FullText.FullTextTrigger.fire3 |
| 5 | org.h2.fulltext.FullText.FullTextTrigger.fire3\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.fire.newRow |
| 4 | org.h2.fulltext.FullText.FullTextTrigger.fire.newRow\---org.h2.fulltext.FullText.FullTextTrigger.insert\------org.h2.fulltext.FullText.FullTextTrigger.insert1 |
| 3 | org.h2.fulltext.FullText.FullTextTrigger.insert1\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.insert.row |
| 2 | org.h2.fulltext.FullText.FullTextTrigger.insert.row\---org.h2.fulltext.FullText.FullTextTrigger.getKey\------org.h2.fulltext.FullText.FullTextTrigger.insert.key |
| 1 | org.h2.fulltext.FullText.FullTextTrigger.insert.key\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 8 |  |  |
| 7 | org.h2.fulltext.FullText.indexExistingRows.i\---org.h2.tools.SimpleResultSet.getObject\------org.h2.fulltext.FullText.indexExistingRows.row |
| 6 | org.h2.fulltext.FullText.indexExistingRows.row\---org.h2.fulltext.FullText.FullTextTrigger.fire\------org.h2.fulltext.FullText.FullTextTrigger.fire3 |
| 5 | org.h2.fulltext.FullText.FullTextTrigger.fire3\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.fire.newRow |
| 4 | org.h2.fulltext.FullText.FullTextTrigger.fire.newRow\---org.h2.fulltext.FullText.FullTextTrigger.insert\------org.h2.fulltext.FullText.FullTextTrigger.insert1 |
| 3 | org.h2.fulltext.FullText.FullTextTrigger.insert1\---dummymethode\------org.h2.fulltext.FullText.FullTextTrigger.insert.row |
| 2 | org.h2.fulltext.FullText.FullTextTrigger.insert.row\---org.h2.fulltext.FullText.FullTextTrigger.getKey\------org.h2.fulltext.FullText.FullTextTrigger.insert.key |
| 1 | org.h2.fulltext.FullText.FullTextTrigger.insert.key\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 9 |  |  |
| 2 | org.h2.fulltext.FullText.createIndex4\---dummymethode\------org.h2.fulltext.FullText.createIndex.columnList |
| 1 | org.h2.fulltext.FullText.createIndex.columnList\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 10 |  |  |
| 2 | org.h2.fulltext.FullText.dropIndex2\---dummymethode\------org.h2.fulltext.FullText.dropIndex.schema |
| 1 | org.h2.fulltext.FullText.dropIndex.schema\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 11 |  |  |
| 2 | org.h2.fulltext.FullText.dropIndex3\---dummymethode\------org.h2.fulltext.FullText.dropIndex.table |
| 1 | org.h2.fulltext.FullText.dropIndex.table\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 12 |  |  |
| 2 | org.h2.fulltext.FullText.setWhitespaceChars2\---dummymethode\------org.h2.fulltext.FullText.setWhitespaceChars.whitespaceChars |
| 1 | org.h2.fulltext.FullText.setWhitespaceChars.whitespaceChars\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
BLOCKER | QC-JAVCWE089 | Potential SQL Injection | 24
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 35
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00365 | INFO | QC-JAV999996[00365] CPD de longueur 81 commencant en 1681 (ligne 365) et 2219 (ligne 467): Object data , int type ) throws SQLException { if ( data == null ) { return "NULL" ; } switch ( type ) { case Types . BIT : case Types . BOOLEAN : case Types . INTEGER : case Types . BIGINT : case Types . DECIMAL : case Types . DOUBLE : case Types . FLOAT : case Types . NUMERIC : case Types . REAL : case Types . SMALLINT : case Types . TINYINT : case
00129 | MAJOR | QC-JAV000001[00129] Avoid declaring class instance within loop, performance impact
00134 | MAJOR | QC-JAV000001[00134] Avoid declaring class instance within loop, performance impact
00136 | MAJOR | QC-JAV000001[00136] Avoid declaring class instance within loop, performance impact
00143 | MAJOR | QC-JAV000001[00143] Avoid declaring class instance within loop, performance impact
00191 | MAJOR | QC-JAV000001[00191] Avoid declaring class instance within loop, performance impact
00192 | MAJOR | QC-JAV000001[00192] Avoid declaring class instance within loop, performance impact
00525 | MAJOR | QC-JAV000001[00525] Avoid declaring class instance within loop, performance impact
00526 | MAJOR | QC-JAV000001[00526] Avoid declaring class instance within loop, performance impact
00543 | MAJOR | QC-JAV000001[00543] Avoid declaring class instance within loop, performance impact
00547 | MAJOR | QC-JAV000001[00547] Avoid declaring class instance within loop, performance impact
00547 | MAJOR | QC-JAV000001[00547] Avoid declaring class instance within loop, performance impact
00592 | MAJOR | QC-JAV000001[00592] Avoid declaring class instance within loop, performance impact
00597 | MAJOR | QC-JAV000001[00597] Avoid declaring class instance within loop, performance impact
00599 | MAJOR | QC-JAV000001[00599] Avoid declaring class instance within loop, performance impact
00599 | MAJOR | QC-JAV000001[00599] Avoid declaring class instance within loop, performance impact
00612 | MAJOR | QC-JAV000001[00612] Avoid declaring class instance within loop, performance impact
00619 | MAJOR | QC-JAV000001[00619] Avoid declaring class instance within loop, performance impact
00621 | MAJOR | QC-JAV000001[00621] Avoid declaring class instance within loop, performance impact
00623 | MAJOR | QC-JAV000001[00623] Avoid declaring class instance within loop, performance impact
00631 | MAJOR | QC-JAV000001[00631] Avoid declaring class instance within loop, performance impact
00687 | MAJOR | QC-JAV000001[00687] Avoid declaring class instance within loop, performance impact
00710 | MAJOR | QC-JAV000001[00710] Avoid declaring class instance within loop, performance impact
00765 | MAJOR | QC-JAV000001[00765] Avoid declaring class instance within loop, performance impact
00795 | MAJOR | QC-JAV000001[00795] Avoid declaring class instance within loop, performance impact
00814 | MAJOR | QC-JAV000001[00814] Avoid declaring class instance within loop, performance impact
01008 | MAJOR | QC-JAV000001[01008] Avoid declaring class instance within loop, performance impact
01010 | MAJOR | QC-JAV000001[01010] Avoid declaring class instance within loop, performance impact
01011 | MAJOR | QC-JAV000001[01011] Avoid declaring class instance within loop, performance impact
01012 | MAJOR | QC-JAV000001[01012] Avoid declaring class instance within loop, performance impact
01014 | MAJOR | QC-JAV000001[01014] Avoid declaring class instance within loop, performance impact
01018 | MAJOR | QC-JAV000001[01018] Avoid declaring class instance within loop, performance impact
01026 | MAJOR | QC-JAV000001[01026] Avoid declaring class instance within loop, performance impact
01027 | MAJOR | QC-JAV000001[01027] Avoid declaring class instance within loop, performance impact
01032 | MAJOR | QC-JAV000001[01032] Avoid declaring class instance within loop, performance impact
01050 | MAJOR | QC-JAV000001[01050] Avoid declaring class instance within loop, performance impact
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) null org.h2.fulltext.FullText.FullTextTrigger.fire org.h2.fulltext.FullText.FullTextTrigger.fire2 org.h2.fulltext.FullText.FullTextTrigger.fire2 dummymethode org.h2.fulltext.FullText.FullTextTrigger.fire.oldRow org.h2.fulltext.FullText.FullTextTrigger.fire.oldRow org.h2.fulltext.FullText.FullTextTrigger.delete org.h2.fulltext.FullText.FullTextTrigger.delete1 org.h2.fulltext.FullText.FullTextTrigger.delete1 dummymethode org.h2.fulltext.FullText.FullTextTrigger.delete.row org.h2.fulltext.FullText.FullTextTrigger.delete.row org.h2.fulltext.FullText.FullTextTrigger.getKey org.h2.fulltext.FullText.FullTextTrigger.delete.key//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.delete.key java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.delete.key java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.tools.SimpleResultSet.next dummymethode org.h2.fulltext.FullText.FullTextTrigger.getWordIds.word//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.getWordIds.word java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.getWordIds.word java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.createIndex2 dummymethode org.h2.fulltext.FullText.createIndex.schema org.h2.fulltext.FullText.createIndex.schema org.h2.fulltext.FullText.indexExistingRows org.h2.fulltext.FullText.indexExistingRows2 org.h2.fulltext.FullText.indexExistingRows2 dummymethode org.h2.fulltext.FullText.indexExistingRows.schema org.h2.fulltext.FullText.indexExistingRows.schema org.h2.fulltext.FullText.FullTextTrigger.init org.h2.fulltext.FullText.FullTextTrigger.init2 org.h2.fulltext.FullText.FullTextTrigger.init2 dummymethode org.h2.fulltext.FullText.FullTextTrigger.init.schemaName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.init.schemaName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.init.schemaName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) "SCHEMA" org.h2.tools.SimpleResultSet.getString org.h2.fulltext.FullText.reindex.schema org.h2.fulltext.FullText.reindex.schema org.h2.fulltext.FullText.indexExistingRows org.h2.fulltext.FullText.indexExistingRows2 org.h2.fulltext.FullText.indexExistingRows2 dummymethode org.h2.fulltext.FullText.indexExistingRows.schema org.h2.fulltext.FullText.indexExistingRows.schema org.h2.fulltext.FullText.FullTextTrigger.init org.h2.fulltext.FullText.FullTextTrigger.init2 org.h2.fulltext.FullText.FullTextTrigger.init2 dummymethode org.h2.fulltext.FullText.FullTextTrigger.init.schemaName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.init.schemaName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : None
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.init.schemaName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : None
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.createIndex3 dummymethode org.h2.fulltext.FullText.createIndex.table org.h2.fulltext.FullText.createIndex.table org.h2.fulltext.FullText.indexExistingRows org.h2.fulltext.FullText.indexExistingRows3 org.h2.fulltext.FullText.indexExistingRows3 dummymethode org.h2.fulltext.FullText.indexExistingRows.table org.h2.fulltext.FullText.indexExistingRows.table org.h2.fulltext.FullText.FullTextTrigger.init org.h2.fulltext.FullText.FullTextTrigger.init4 org.h2.fulltext.FullText.FullTextTrigger.init4 dummymethode org.h2.fulltext.FullText.FullTextTrigger.init.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.init.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.init.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) "TABLE" org.h2.tools.SimpleResultSet.getString org.h2.fulltext.FullText.reindex.table org.h2.fulltext.FullText.reindex.table org.h2.fulltext.FullText.indexExistingRows org.h2.fulltext.FullText.indexExistingRows3 org.h2.fulltext.FullText.indexExistingRows3 dummymethode org.h2.fulltext.FullText.indexExistingRows.table org.h2.fulltext.FullText.indexExistingRows.table org.h2.fulltext.FullText.FullTextTrigger.init org.h2.fulltext.FullText.FullTextTrigger.init4 org.h2.fulltext.FullText.FullTextTrigger.init4 dummymethode org.h2.fulltext.FullText.FullTextTrigger.init.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.init.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : None
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.init.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : None
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) 1 org.h2.tools.SimpleResultSet.getObject org.h2.fulltext.FullText.indexExistingRows.row org.h2.fulltext.FullText.indexExistingRows.row org.h2.fulltext.FullText.FullTextTrigger.fire org.h2.fulltext.FullText.FullTextTrigger.fire3 org.h2.fulltext.FullText.FullTextTrigger.fire3 dummymethode org.h2.fulltext.FullText.FullTextTrigger.fire.newRow org.h2.fulltext.FullText.FullTextTrigger.fire.newRow org.h2.fulltext.FullText.FullTextTrigger.insert org.h2.fulltext.FullText.FullTextTrigger.insert1 org.h2.fulltext.FullText.FullTextTrigger.insert1 dummymethode org.h2.fulltext.FullText.FullTextTrigger.insert.row org.h2.fulltext.FullText.FullTextTrigger.insert.row org.h2.fulltext.FullText.FullTextTrigger.getKey org.h2.fulltext.FullText.FullTextTrigger.insert.key//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.insert.key java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.insert.key java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.indexExistingRows.i org.h2.tools.SimpleResultSet.getObject org.h2.fulltext.FullText.indexExistingRows.row org.h2.fulltext.FullText.indexExistingRows.row org.h2.fulltext.FullText.FullTextTrigger.fire org.h2.fulltext.FullText.FullTextTrigger.fire3 org.h2.fulltext.FullText.FullTextTrigger.fire3 dummymethode org.h2.fulltext.FullText.FullTextTrigger.fire.newRow org.h2.fulltext.FullText.FullTextTrigger.fire.newRow org.h2.fulltext.FullText.FullTextTrigger.insert org.h2.fulltext.FullText.FullTextTrigger.insert1 org.h2.fulltext.FullText.FullTextTrigger.insert1 dummymethode org.h2.fulltext.FullText.FullTextTrigger.insert.row org.h2.fulltext.FullText.FullTextTrigger.insert.row org.h2.fulltext.FullText.FullTextTrigger.getKey org.h2.fulltext.FullText.FullTextTrigger.insert.key//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.insert.key java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.FullTextTrigger.insert.key java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.createIndex4 dummymethode org.h2.fulltext.FullText.createIndex.columnList//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.createIndex.columnList java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.createIndex.columnList java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.dropIndex2 dummymethode org.h2.fulltext.FullText.dropIndex.schema//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.dropIndex.schema java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.dropIndex.schema java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.dropIndex3 dummymethode org.h2.fulltext.FullText.dropIndex.table//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.dropIndex.table java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.dropIndex.table java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.setWhitespaceChars2 dummymethode org.h2.fulltext.FullText.setWhitespaceChars.whitespaceChars//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.setWhitespaceChars.whitespaceChars java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullText.setWhitespaceChars.whitespaceChars java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL

#### File lecode\fulltext\FullTextLucene.java 30 rule violations (XML file)

Ancestor class | Children classes
--- | ---
FullText | org.h2.fulltext.FullTextLucene

Module / class or interface : org.h2.fulltext.FullTextLucene

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | init(Connection) | 1 | 10
void | createIndex(Connection;String;String;String) | 1 | 8
void | reindex(Connection) | 1 | 9
void | dropAll(Connection) | 1 | 4
ResultSet | search(Connection;String;int;int) | 1 | 1
ResultSet | searchData(Connection;String;int;int) | 1 | 1
SQLException | convertException(Exception) | 1 | 3
void | createTrigger(Connection;String;String) | 1 | 6
IndexAccess | getIndexAccess(Connection) | 2 | 3
String | getIndexPath(Connection) | 3 | 9
void | indexExistingRows(Connection;String;String) | 2 | 8
void | removeIndexFiles(Connection) | 3 | 4
void | removeIndexAccess(IndexAccess;String) | 1 | 4
ResultSet | search(Connection;String;int;int;boolean) | 5 | 12

Security risk sequences

Seq | Step | Source / Method / Target | Risk nature
--- | --- | --- | ---
No 1 |  |  |
| 6 | org.h2.fulltext.FullTextLucene.createIndex2\---dummymethode\------org.h2.fulltext.FullTextLucene.createIndex.schema |
| 5 | org.h2.fulltext.FullTextLucene.createIndex.schema\---org.h2.fulltext.FullTextLucene.indexExistingRows\------org.h2.fulltext.FullTextLucene.indexExistingRows2 |
| 4 | org.h2.fulltext.FullTextLucene.indexExistingRows2\---dummymethode\------org.h2.fulltext.FullTextLucene.indexExistingRows.schema |
| 3 | org.h2.fulltext.FullTextLucene.indexExistingRows.schema\---org.h2.fulltext.FullTextLucene.FullTextTrigger.init\------org.h2.fulltext.FullTextLucene.FullTextTrigger.init2 |
| 2 | org.h2.fulltext.FullTextLucene.FullTextTrigger.init2\---dummymethode\------org.h2.fulltext.FullTextLucene.FullTextTrigger.init.schemaName |
| 1 | org.h2.fulltext.FullTextLucene.FullTextTrigger.init.schemaName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 2 |  |  |
| 6 | "SCHEMA"\---org.h2.tools.SimpleResultSet.getString (correctly sanitized)\------org.h2.fulltext.FullTextLucene.reindex.schema | correctly sanitized
| 5 | org.h2.fulltext.FullTextLucene.reindex.schema\---org.h2.fulltext.FullTextLucene.indexExistingRows\------org.h2.fulltext.FullTextLucene.indexExistingRows2 |
| 4 | org.h2.fulltext.FullTextLucene.indexExistingRows2\---dummymethode\------org.h2.fulltext.FullTextLucene.indexExistingRows.schema |
| 3 | org.h2.fulltext.FullTextLucene.indexExistingRows.schema\---org.h2.fulltext.FullTextLucene.FullTextTrigger.init\------org.h2.fulltext.FullTextLucene.FullTextTrigger.init2 |
| 2 | org.h2.fulltext.FullTextLucene.FullTextTrigger.init2\---dummymethode\------org.h2.fulltext.FullTextLucene.FullTextTrigger.init.schemaName |
| 1 | org.h2.fulltext.FullTextLucene.FullTextTrigger.init.schemaName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : None
No 3 |  |  |
| 6 | org.h2.fulltext.FullTextLucene.createIndex3\---dummymethode\------org.h2.fulltext.FullTextLucene.createIndex.table |
| 5 | org.h2.fulltext.FullTextLucene.createIndex.table\---org.h2.fulltext.FullTextLucene.indexExistingRows\------org.h2.fulltext.FullTextLucene.indexExistingRows3 |
| 4 | org.h2.fulltext.FullTextLucene.indexExistingRows3\---dummymethode\------org.h2.fulltext.FullTextLucene.indexExistingRows.table |
| 3 | org.h2.fulltext.FullTextLucene.indexExistingRows.table\---org.h2.fulltext.FullTextLucene.FullTextTrigger.init\------org.h2.fulltext.FullTextLucene.FullTextTrigger.init4 |
| 2 | org.h2.fulltext.FullTextLucene.FullTextTrigger.init4\---dummymethode\------org.h2.fulltext.FullTextLucene.FullTextTrigger.init.tableName |
| 1 | org.h2.fulltext.FullTextLucene.FullTextTrigger.init.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 4 |  |  |
| 6 | "TABLE"\---org.h2.tools.SimpleResultSet.getString (correctly sanitized)\------org.h2.fulltext.FullTextLucene.reindex.table | correctly sanitized
| 5 | org.h2.fulltext.FullTextLucene.reindex.table\---org.h2.fulltext.FullTextLucene.indexExistingRows\------org.h2.fulltext.FullTextLucene.indexExistingRows3 |
| 4 | org.h2.fulltext.FullTextLucene.indexExistingRows3\---dummymethode\------org.h2.fulltext.FullTextLucene.indexExistingRows.table |
| 3 | org.h2.fulltext.FullTextLucene.indexExistingRows.table\---org.h2.fulltext.FullTextLucene.FullTextTrigger.init\------org.h2.fulltext.FullTextLucene.FullTextTrigger.init4 |
| 2 | org.h2.fulltext.FullTextLucene.FullTextTrigger.init4\---dummymethode\------org.h2.fulltext.FullTextLucene.FullTextTrigger.init.tableName |
| 1 | org.h2.fulltext.FullTextLucene.FullTextTrigger.init.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : None
No 5 |  |  |
| 2 | org.h2.fulltext.FullTextLucene.createIndex4\---dummymethode\------org.h2.fulltext.FullTextLucene.createIndex.columnList |
| 1 | org.h2.fulltext.FullTextLucene.createIndex.columnList\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
BLOCKER | QC-JAVCWE089 | Potential SQL Injection | 10
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 20

Line start | Criticity class | Rule
--- | --- | ---
00154 | MAJOR | QC-JAV000001[00154] Avoid declaring class instance within loop, performance impact
00155 | MAJOR | QC-JAV000001[00155] Avoid declaring class instance within loop, performance impact
00336 | MAJOR | QC-JAV000001[00336] Avoid declaring class instance within loop, performance impact
00441 | MAJOR | QC-JAV000001[00441] Avoid declaring class instance within loop, performance impact
00442 | MAJOR | QC-JAV000001[00442] Avoid declaring class instance within loop, performance impact
00445 | MAJOR | QC-JAV000001[00445] Avoid declaring class instance within loop, performance impact
00448 | MAJOR | QC-JAV000001[00448] Avoid declaring class instance within loop, performance impact
00448 | MAJOR | QC-JAV000001[00448] Avoid declaring class instance within loop, performance impact
00449 | MAJOR | QC-JAV000001[00449] Avoid declaring class instance within loop, performance impact
00449 | MAJOR | QC-JAV000001[00449] Avoid declaring class instance within loop, performance impact
00450 | MAJOR | QC-JAV000001[00450] Avoid declaring class instance within loop, performance impact
00451 | MAJOR | QC-JAV000001[00451] Avoid declaring class instance within loop, performance impact
00452 | MAJOR | QC-JAV000001[00452] Avoid declaring class instance within loop, performance impact
00452 | MAJOR | QC-JAV000001[00452] Avoid declaring class instance within loop, performance impact
00453 | MAJOR | QC-JAV000001[00453] Avoid declaring class instance within loop, performance impact
00454 | MAJOR | QC-JAV000001[00454] Avoid declaring class instance within loop, performance impact
00456 | MAJOR | QC-JAV000001[00456] Avoid declaring class instance within loop, performance impact
00662 | MAJOR | QC-JAV000001[00662] Avoid declaring class instance within loop, performance impact
00663 | MAJOR | QC-JAV000001[00663] Avoid declaring class instance within loop, performance impact
00723 | MAJOR | QC-JAV000001[00723] Avoid declaring class instance within loop, performance impact
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.createIndex2 dummymethode org.h2.fulltext.FullTextLucene.createIndex.schema org.h2.fulltext.FullTextLucene.createIndex.schema org.h2.fulltext.FullTextLucene.indexExistingRows org.h2.fulltext.FullTextLucene.indexExistingRows2 org.h2.fulltext.FullTextLucene.indexExistingRows2 dummymethode org.h2.fulltext.FullTextLucene.indexExistingRows.schema org.h2.fulltext.FullTextLucene.indexExistingRows.schema org.h2.fulltext.FullTextLucene.FullTextTrigger.init org.h2.fulltext.FullTextLucene.FullTextTrigger.init2 org.h2.fulltext.FullTextLucene.FullTextTrigger.init2 dummymethode org.h2.fulltext.FullTextLucene.FullTextTrigger.init.schemaName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.FullTextTrigger.init.schemaName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.FullTextTrigger.init.schemaName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) "SCHEMA" org.h2.tools.SimpleResultSet.getString org.h2.fulltext.FullTextLucene.reindex.schema org.h2.fulltext.FullTextLucene.reindex.schema org.h2.fulltext.FullTextLucene.indexExistingRows org.h2.fulltext.FullTextLucene.indexExistingRows2 org.h2.fulltext.FullTextLucene.indexExistingRows2 dummymethode org.h2.fulltext.FullTextLucene.indexExistingRows.schema org.h2.fulltext.FullTextLucene.indexExistingRows.schema org.h2.fulltext.FullTextLucene.FullTextTrigger.init org.h2.fulltext.FullTextLucene.FullTextTrigger.init2 org.h2.fulltext.FullTextLucene.FullTextTrigger.init2 dummymethode org.h2.fulltext.FullTextLucene.FullTextTrigger.init.schemaName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.FullTextTrigger.init.schemaName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : None
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.FullTextTrigger.init.schemaName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : None
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.createIndex3 dummymethode org.h2.fulltext.FullTextLucene.createIndex.table org.h2.fulltext.FullTextLucene.createIndex.table org.h2.fulltext.FullTextLucene.indexExistingRows org.h2.fulltext.FullTextLucene.indexExistingRows3 org.h2.fulltext.FullTextLucene.indexExistingRows3 dummymethode org.h2.fulltext.FullTextLucene.indexExistingRows.table org.h2.fulltext.FullTextLucene.indexExistingRows.table org.h2.fulltext.FullTextLucene.FullTextTrigger.init org.h2.fulltext.FullTextLucene.FullTextTrigger.init4 org.h2.fulltext.FullTextLucene.FullTextTrigger.init4 dummymethode org.h2.fulltext.FullTextLucene.FullTextTrigger.init.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.FullTextTrigger.init.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.FullTextTrigger.init.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) "TABLE" org.h2.tools.SimpleResultSet.getString org.h2.fulltext.FullTextLucene.reindex.table org.h2.fulltext.FullTextLucene.reindex.table org.h2.fulltext.FullTextLucene.indexExistingRows org.h2.fulltext.FullTextLucene.indexExistingRows3 org.h2.fulltext.FullTextLucene.indexExistingRows3 dummymethode org.h2.fulltext.FullTextLucene.indexExistingRows.table org.h2.fulltext.FullTextLucene.indexExistingRows.table org.h2.fulltext.FullTextLucene.FullTextTrigger.init org.h2.fulltext.FullTextLucene.FullTextTrigger.init4 org.h2.fulltext.FullTextLucene.FullTextTrigger.init4 dummymethode org.h2.fulltext.FullTextLucene.FullTextTrigger.init.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.FullTextTrigger.init.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : None
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.FullTextTrigger.init.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : None
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.createIndex4 dummymethode org.h2.fulltext.FullTextLucene.createIndex.columnList//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.createIndex.columnList java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.fulltext.FullTextLucene.createIndex.columnList java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL

#### File lecode\fulltext\FullTextSettings.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.fulltext.FullTextSettings

Module / class or interface : org.h2.fulltext.FullTextSettings

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FullTextSettings | FullTextSettings() | 1 | 0
HashSet<String> | getIgnoreList() | 1 | 1
HashMap<String,Integer> | getWordList() | 1 | 1
IndexInfo | getIndexInfo(int) | 1 | 1
void | addIndexInfo(IndexInfo) | 1 | 1
String | convertWord(String) | 2 | 3
FullTextSettings | getInstance(Connection) | 2 | 5
String | getIndexPath(Connection) | 2 | 7
PreparedStatement | prepare(Connection;String) | 4 | 8
void | removeAllIndexes() | 1 | 1
void | removeIndexInfo(IndexInfo) | 1 | 1
void | setInitialized(boolean) | 1 | 1
boolean | isInitialized() | 1 | 1
void | closeAll() | 1 | 1
void | setWhitespaceChars(String) | 1 | 1
String | getWhitespaceChars() | 1 | 1

#### File lecode\fulltext\IndexInfo.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.fulltext.IndexInfo

Module / class or interface : org.h2.fulltext.IndexInfo

#### File lecode\index\BaseIndex.java 5 rule violations (XML file)

Ancestor class | Children classes
--- | ---
SchemaObjectBaseIndex | org.h2.index.BaseIndex

Module / class or interface : org.h2.index.BaseIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | initBaseIndex(Table;int;String;IndexColumn[];IndexType) | 3 | 7
String | getDropSQL() | 1 | 1
DbException | getDuplicateKeyException() | 1 | 4
String | getPlanSQL() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 3
boolean | canFindNext() | 1 | 1
Cursor | find(TableFilter;SearchRow;SearchRow) | 1 | 1
Cursor | findNext(Session;SearchRow;SearchRow) | 1 | 1
long | getCostRangeIndex(int[];long) | 7 | 11
int | compareRows(SearchRow;SearchRow) | 5 | 7
boolean | containsNullAndAllowMultipleNull(SearchRow) | 7 | 5
int | compareKeys(SearchRow;SearchRow) | 3 | 4
int | compareValues(Value;Value;int) | 4 | 6
int | getColumnIndex(Column) | 3 | 3
String | getColumnListSQL() | 2 | 4
String | getCreateSQLForCopy(Table;String) | 3 | 9
String | getCreateSQL() | 1 | 1
IndexColumn[] | getIndexColumns() | 1 | 1
Column[] | getColumns() | 1 | 1
IndexType | getIndexType() | 1 | 1
int | getType() | 1 | 1
Table | getTable() | 1 | 1
void | commit(int;Row) | 1 | 0
void | setMultiVersion(boolean) | 1 | 1
Row | getRow(Session;long) | 1 | 1
boolean | isHidden() | 1 | 1
boolean | isRowIdIndex() | 1 | 1
boolean | canScan() | 1 | 1
void | setSortedInsertMode(boolean) | 1 | 0

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 5

Line start | Criticity class | Rule
--- | --- | ---
00063 | MAJOR | QC-JAV000001[00063] Avoid declaring class instance within loop, performance impact
00137 | MAJOR | QC-JAV000001[00137] Avoid declaring class instance within loop, performance impact
00174 | MAJOR | QC-JAV000001[00174] Avoid declaring class instance within loop, performance impact
00202 | MAJOR | QC-JAV000001[00202] Avoid declaring class instance within loop, performance impact
00210 | MAJOR | QC-JAV000001[00210] Avoid declaring class instance within loop, performance impact

#### File lecode\index\Cursor.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.Cursor

Module / class or interface : org.h2.index.Cursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Row | get() | 1 | 1
SearchRow | getSearchRow() | 1 | 1
boolean | next() | 1 | 1
boolean | previous() | 1 | 1

#### File lecode\index\FunctionCursor.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.FunctionCursor

Module / class or interface : org.h2.index.FunctionCursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FunctionCursor | FunctionCursor(ResultInterface) | 1 | 1
Row | get() | 3 | 3
SearchRow | getSearchRow() | 1 | 1
boolean | next() | 3 | 4
boolean | previous() | 1 | 1

#### File lecode\index\FunctionCursorResultSet.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.FunctionCursorResultSet

Module / class or interface : org.h2.index.FunctionCursorResultSet

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FunctionCursorResultSet | FunctionCursorResultSet(Session;ResultSet) | 1 | 4
Row | get() | 3 | 3
SearchRow | getSearchRow() | 1 | 1
boolean | next() | 3 | 3
boolean | previous() | 1 | 1

#### File lecode\index\FunctionIndex.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
BaseIndex | org.h2.index.FunctionIndex

Module / class or interface : org.h2.index.FunctionIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FunctionIndex | FunctionIndex(FunctionTable;IndexColumn[]) | 1 | 2
void | close(Session) | 1 | 0
void | add(Session;Row) | 1 | 1
void | remove(Session;Row) | 1 | 1
Cursor | find(Session;SearchRow;SearchRow) | 2 | 2
double | getCost(Session;int[]) | 4 | 5
void | remove(Session) | 1 | 1
void | truncate(Session) | 1 | 1
boolean | needRebuild() | 1 | 1
void | checkRename() | 1 | 1
boolean | canGetFirstOrLast() | 1 | 1
Cursor | findFirstOrLast(Session;boolean) | 1 | 1
long | getRowCount(Session) | 1 | 1
long | getRowCountApproximation() | 1 | 1
String | getPlanSQL() | 1 | 1
boolean | canScan() | 1 | 1

#### File lecode\index\HashIndex.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
BaseIndex | org.h2.index.HashIndex

Module / class or interface : org.h2.index.HashIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
HashIndex | HashIndex(RegularTable;int;String;IndexColumn[];IndexType) | 1 | 4
void | reset() | 1 | 1
void | truncate(Session) | 1 | 1
void | add(Session;Row) | 2 | 4
void | remove(Session;Row) | 1 | 1
Cursor | find(Session;SearchRow;SearchRow) | 4 | 6
long | getRowCount(Session) | 1 | 1
long | getRowCountApproximation() | 1 | 1
void | close(Session) | 1 | 0
void | remove(Session) | 1 | 0
double | getCost(Session;int[]) | 3 | 3
void | checkRename() | 1 | 0
boolean | needRebuild() | 1 | 1
boolean | canGetFirstOrLast() | 1 | 1
Cursor | findFirstOrLast(Session;boolean) | 1 | 1
boolean | canScan() | 1 | 1

#### File lecode\index\Index.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaObject | org.h2.index.Index

Module / class or interface : org.h2.index.Index

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
String | getPlanSQL() | 1 | 1
void | close(Session) | 1 | 1
void | add(Session;Row) | 1 | 1
void | remove(Session;Row) | 1 | 1
Cursor | find(Session;SearchRow;SearchRow) | 1 | 1
Cursor | find(TableFilter;SearchRow;SearchRow) | 1 | 1
double | getCost(Session;int[]) | 1 | 1
void | remove(Session) | 1 | 1
void | truncate(Session) | 1 | 1
boolean | canGetFirstOrLast() | 1 | 1
boolean | canFindNext() | 1 | 1
Cursor | findNext(Session;SearchRow;SearchRow) | 1 | 1
Cursor | findFirstOrLast(Session;boolean) | 1 | 1
boolean | needRebuild() | 1 | 1
long | getRowCount(Session) | 1 | 1
long | getRowCountApproximation() | 1 | 1
int | compareRows(SearchRow;SearchRow) | 1 | 1
int | getColumnIndex(Column) | 1 | 1
IndexColumn[] | getIndexColumns() | 1 | 1
Column[] | getColumns() | 1 | 1
IndexType | getIndexType() | 1 | 1
Table | getTable() | 1 | 1
void | commit(int;Row) | 1 | 1
Row | getRow(Session;long) | 1 | 1
boolean | isRowIdIndex() | 1 | 1
boolean | canScan() | 1 | 1
void | setSortedInsertMode(boolean) | 1 | 1

#### File lecode\index\IndexCondition.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.IndexCondition

Module / class or interface : org.h2.index.IndexCondition

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
IndexCondition | IndexCondition(int;ExpressionColumn;Expression) | 1 | 3
IndexCondition | get(int;ExpressionColumn;Expression) | 1 | 1
IndexCondition | getInList(ExpressionColumn;List<Expression>) | 1 | 3
IndexCondition | getInQuery(ExpressionColumn;Query) | 1 | 3
Value | getCurrentValue(Session) | 1 | 1
Value[] | getCurrentValueList(Session) | 2 | 9
ResultInterface | getCurrentResult() | 1 | 1
String | getSQL() | 12 | 25
int | getMask(ArrayList<IndexCondition>) | 11 | 6
boolean | isAlwaysFalse() | 1 | 1
boolean | isStart() | 5 | 2
boolean | isEnd() | 5 | 2
int | getCompareType() | 1 | 1
Column | getColumn() | 1 | 1
boolean | isEvaluatable() | 4 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00133 | MAJOR | QC-JAV000001[00133] Avoid declaring class instance within loop, performance impact

#### File lecode\index\IndexCursor.java 7 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.IndexCursor

Module / class or interface : org.h2.index.IndexCursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
IndexCursor | IndexCursor(TableFilter) | 1 | 1
void | setIndex(Index) | 3 | 5
void | find(Session;ArrayList<IndexCondition>) | 9 | 13
boolean | canUseIndexForIn(Column) | 3 | 5
SearchRow | getSearchRow(SearchRow;int;Value;boolean) | 5 | 5
Value | getMax(Value;Value;boolean) | 12 | 6
boolean | isAlwaysFalse() | 1 | 1
Row | get() | 2 | 2
SearchRow | getSearchRow() | 1 | 1
boolean | next() | 3 | 1
void | nextCursor() | 4 | 0
void | find(Value) | 2 | 5
boolean | previous() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 7

Line start | Criticity class | Rule
--- | --- | ---
00082 | MAJOR | QC-JAV000001[00082] Avoid declaring class instance within loop, performance impact
00087 | MAJOR | QC-JAV000001[00087] Avoid declaring class instance within loop, performance impact
00104 | MAJOR | QC-JAV000001[00104] Avoid declaring class instance within loop, performance impact
00109 | MAJOR | QC-JAV000001[00109] Avoid declaring class instance within loop, performance impact
00248 | MAJOR | QC-JAV000001[00248] Avoid declaring class instance within loop, performance impact
00256 | MAJOR | QC-JAV000001[00256] Avoid declaring class instance within loop, performance impact
00260 | MAJOR | QC-JAV000001[00260] Avoid declaring class instance within loop, performance impact

#### File lecode\index\IndexType.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.IndexType

Module / class or interface : org.h2.index.IndexType

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
IndexType | createPrimaryKey(boolean;boolean) | 1 | 6
IndexType | createUnique(boolean;boolean) | 1 | 5
IndexType | createNonUnique(boolean) | 1 | 1
IndexType | createNonUnique(boolean;boolean) | 1 | 4
IndexType | createScan(boolean) | 1 | 4
void | setBelongsToConstraint(boolean) | 1 | 1
boolean | getBelongsToConstraint() | 1 | 1
boolean | isHash() | 1 | 1
boolean | isPersistent() | 1 | 1
boolean | isPrimaryKey() | 1 | 1
boolean | isUnique() | 1 | 1
String | getSQL() | 6 | 4
boolean | isScan() | 1 | 1

#### File lecode\index\LinkedCursor.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.LinkedCursor

Module / class or interface : org.h2.index.LinkedCursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
LinkedCursor | LinkedCursor(TableLink;ResultSet;Session;String;PreparedStatement) | 1 | 5
Row | get() | 1 | 1
SearchRow | getSearchRow() | 1 | 1
boolean | next() | 3 | 9
boolean | previous() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00064 | MAJOR | QC-JAV000001[00064] Avoid declaring class instance within loop, performance impact
00065 | MAJOR | QC-JAV000001[00065] Avoid declaring class instance within loop, performance impact

#### File lecode\index\LinkedIndex.java 11 rule violations (XML file)

Ancestor class | Children classes
--- | ---
BaseIndex | org.h2.index.LinkedIndex

Module / class or interface : org.h2.index.LinkedIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
LinkedIndex | LinkedIndex(TableLink;int;IndexColumn[];IndexType) | 1 | 3
String | getCreateSQL() | 1 | 1
void | close(Session) | 1 | 0
boolean | isNull(Value) | 1 | 1
void | add(Session;Row) | 6 | 12
Cursor | find(Session;SearchRow;SearchRow) | 5 | 14
void | addParameter(StatementBuilder;Column) | 3 | 2
double | getCost(Session;int[]) | 1 | 1
void | remove(Session) | 1 | 0
void | truncate(Session) | 1 | 0
void | checkRename() | 1 | 1
boolean | needRebuild() | 1 | 1
boolean | canGetFirstOrLast() | 1 | 1
Cursor | findFirstOrLast(Session;boolean) | 1 | 1
void | remove(Session;Row) | 4 | 15
void | update(Row;Row) | 7 | 19
long | getRowCount(Session) | 1 | 1
long | getRowCountApproximation() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 10
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00084 | INFO | QC-JAV999996[00084] CPD de longueur 71 commencant en 505 (ligne 84) et 627 (ligne 100): getValue ( i ) ; if ( v != null ) { buff . appendOnlyFirst ( " WHERE " ) ; buff . appendExceptFirst ( " AND " ) ; Column col = table . getColumn ( i ) ; buff . append ( col . getSQL ( ) ) ; if ( v == ValueNull . INSTANCE ) { buff . append ( " IS NULL" ) ; } else { buff . append ( " _= "
00058 | MAJOR | QC-JAV000001[00058] Avoid declaring class instance within loop, performance impact
00084 | MAJOR | QC-JAV000001[00084] Avoid declaring class instance within loop, performance impact
00088 | MAJOR | QC-JAV000001[00088] Avoid declaring class instance within loop, performance impact
00100 | MAJOR | QC-JAV000001[00100] Avoid declaring class instance within loop, performance impact
00104 | MAJOR | QC-JAV000001[00104] Avoid declaring class instance within loop, performance impact
00173 | MAJOR | QC-JAV000001[00173] Avoid declaring class instance within loop, performance impact
00175 | MAJOR | QC-JAV000001[00175] Avoid declaring class instance within loop, performance impact
00210 | MAJOR | QC-JAV000001[00210] Avoid declaring class instance within loop, performance impact
00221 | MAJOR | QC-JAV000001[00221] Avoid declaring class instance within loop, performance impact
00224 | MAJOR | QC-JAV000001[00224] Avoid declaring class instance within loop, performance impact

#### File lecode\index\MetaCursor.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.MetaCursor

Module / class or interface : org.h2.index.MetaCursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
MetaCursor | MetaCursor(ArrayList<Row>) | 1 | 1
Row | get() | 1 | 1
SearchRow | getSearchRow() | 1 | 1
boolean | next() | 1 | 2
boolean | previous() | 1 | 1

#### File lecode\index\MetaIndex.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
BaseIndex | org.h2.index.MetaIndex

Module / class or interface : org.h2.index.MetaIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
MetaIndex | MetaIndex(MetaTable;IndexColumn[];boolean) | 1 | 3
void | close(Session) | 1 | 0
void | add(Session;Row) | 1 | 1
void | remove(Session;Row) | 1 | 1
Cursor | find(Session;SearchRow;SearchRow) | 1 | 2
double | getCost(Session;int[]) | 2 | 2
void | truncate(Session) | 1 | 1
void | remove(Session) | 1 | 1
int | getColumnIndex(Column) | 2 | 2
void | checkRename() | 1 | 1
boolean | needRebuild() | 1 | 1
String | getCreateSQL() | 1 | 1
boolean | canGetFirstOrLast() | 1 | 1
Cursor | findFirstOrLast(Session;boolean) | 1 | 1
long | getRowCount(Session) | 1 | 1
long | getRowCountApproximation() | 1 | 1
String | getPlanSQL() | 1 | 1

#### File lecode\index\MultiVersionCursor.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.MultiVersionCursor

Module / class or interface : org.h2.index.MultiVersionCursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
MultiVersionCursor | MultiVersionCursor(Session;MultiVersionIndex;Cursor;Cursor;Object) | 1 | 7
void | loadCurrent() | 1 | 4
void | loadNext(boolean) | 3 | 0
boolean | step(Cursor) | 1 | 1
Row | get() | 2 | 1
SearchRow | getSearchRow() | 2 | 1
boolean | next() | 2 | 0
boolean | previous() | 1 | 3

#### File lecode\index\MultiVersionIndex.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.MultiVersionIndex

Module / class or interface : org.h2.index.MultiVersionIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
MultiVersionIndex | MultiVersionIndex(Index;RegularTable) | 1 | 7
void | add(Session;Row) | 4 | 1
void | close(Session) | 1 | 1
Cursor | find(TableFilter;SearchRow;SearchRow) | 1 | 3
Cursor | find(Session;SearchRow;SearchRow) | 1 | 3
Cursor | findNext(Session;SearchRow;SearchRow) | 1 | 1
boolean | canFindNext() | 1 | 1
boolean | canGetFirstOrLast() | 1 | 1
Cursor | findFirstOrLast(Session;boolean) | 4 | 9
double | getCost(Session;int[]) | 1 | 1
boolean | needRebuild() | 1 | 1
boolean | isUncommittedFromOtherSession(Session;Row) | 1 | 4
boolean | removeIfExists(Session;Row) | 2 | 3
void | remove(Session;Row) | 3 | 1
void | remove(Session) | 1 | 1
void | truncate(Session) | 1 | 2
void | commit(int;Row) | 1 | 1
int | compareRows(SearchRow;SearchRow) | 1 | 1
int | getColumnIndex(Column) | 1 | 1
Column[] | getColumns() | 1 | 1
IndexColumn[] | getIndexColumns() | 1 | 1
String | getCreateSQL() | 1 | 1
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getDropSQL() | 1 | 1
IndexType | getIndexType() | 1 | 1
String | getPlanSQL() | 1 | 1
long | getRowCount(Session) | 1 | 1
Table | getTable() | 1 | 1
int | getType() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 2
String | getSQL() | 1 | 1
Schema | getSchema() | 1 | 1
void | checkRename() | 1 | 1
ArrayList<DbObject> | getChildren() | 1 | 1
String | getComment() | 1 | 1
Database | getDatabase() | 1 | 1
int | getId() | 1 | 1
String | getName() | 1 | 1
boolean | isTemporary() | 1 | 1
void | rename(String) | 1 | 1
void | setComment(String) | 1 | 1
void | setTemporary(boolean) | 1 | 1
long | getRowCountApproximation() | 1 | 1
Index | getBaseIndex() | 1 | 1
Row | getRow(Session;long) | 1 | 1
boolean | isHidden() | 1 | 1
boolean | isRowIdIndex() | 1 | 1
boolean | canScan() | 1 | 1
void | setSortedInsertMode(boolean) | 1 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 6

Line start | Criticity class | Rule
--- | --- | ---
00100 | MAJOR | QC-JAV000001[00100] Avoid declaring class instance within loop, performance impact
00101 | MAJOR | QC-JAV000001[00101] Avoid declaring class instance within loop, performance impact
00114 | MAJOR | QC-JAV000001[00114] Avoid declaring class instance within loop, performance impact
00118 | MAJOR | QC-JAV000001[00118] Avoid declaring class instance within loop, performance impact
00145 | MAJOR | QC-JAV000001[00145] Avoid declaring class instance within loop, performance impact
00155 | MAJOR | QC-JAV000001[00155] Avoid declaring class instance within loop, performance impact

#### File lecode\index\NonUniqueHashCursor.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.NonUniqueHashCursor

Module / class or interface : org.h2.index.NonUniqueHashCursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
NonUniqueHashCursor | NonUniqueHashCursor(Session;RegularTable;ArrayList<Long>) | 1 | 3
Row | get() | 2 | 2
SearchRow | getSearchRow() | 1 | 1
boolean | next() | 1 | 1
boolean | previous() | 1 | 1

#### File lecode\index\NonUniqueHashIndex.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
HashIndex | org.h2.index.NonUniqueHashIndex

Module / class or interface : org.h2.index.NonUniqueHashIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
NonUniqueHashIndex | NonUniqueHashIndex(RegularTable;int;String;IndexColumn[];IndexType) | 1 | 3
void | reset() | 1 | 2
void | truncate(Session) | 1 | 1
void | add(Session;Row) | 2 | 6
void | remove(Session;Row) | 5 | 4
Cursor | find(Session;SearchRow;SearchRow) | 4 | 3
long | getRowCount(Session) | 1 | 1
long | getRowCountApproximation() | 1 | 1

#### File lecode\index\PageBtree.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Page | org.h2.index.PageBtree

Module / class or interface : org.h2.index.PageBtree

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageBtree | PageBtree(PageBtreeIndex;int;Data) | 1 | 4
int | getRowCount() | 1 | 1
void | setRowCountStored(int) | 1 | 1
int | find(SearchRow;boolean;boolean;boolean) | 5 | 7
int | addRowTry(SearchRow) | 1 | 1
void | find(PageBtreeCursor;SearchRow;boolean) | 1 | 1
void | last(PageBtreeCursor) | 1 | 1
SearchRow | getRow(int) | 4 | 8
void | memoryChange() | 1 | 0
PageBtree | split(int) | 1 | 1
void | setPageId(int) | 1 | 6
PageBtreeLeaf | getFirstLeaf() | 1 | 1
PageBtreeLeaf | getLastLeaf() | 1 | 1
void | setParentPageId(int) | 1 | 4
void | remapChildren() | 1 | 1
SearchRow | remove(SearchRow) | 1 | 1
void | freeRecursive() | 1 | 1
void | readAllRows() | 3 | 3
int | getMemory() | 1 | 1
boolean | canRemove() | 2 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00116 | MAJOR | QC-JAV000001[00116] Avoid declaring class instance within loop, performance impact
00266 | MAJOR | QC-JAV000001[00266] Avoid declaring class instance within loop, performance impact

#### File lecode\index\PageBtreeCursor.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.PageBtreeCursor

Module / class or interface : org.h2.index.PageBtreeCursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageBtreeCursor | PageBtreeCursor(Session;PageBtreeIndex;SearchRow) | 1 | 3
void | setCurrent(PageBtreeLeaf;int) | 1 | 2
Row | get() | 2 | 2
SearchRow | getSearchRow() | 1 | 1
boolean | next() | 5 | 8
boolean | previous() | 4 | 6

#### File lecode\index\PageBtreeIndex.java 10 rule violations (XML file)

Ancestor class | Children classes
--- | ---
PageIndex | org.h2.index.PageBtreeIndex

Module / class or interface : org.h2.index.PageBtreeIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageBtreeIndex | PageBtreeIndex(RegularTable;int;String;IndexColumn[];IndexType;boolean;Session) | 6 | 17
void | checkIndexColumnTypes(IndexColumn[]) | 3 | 1
void | add(Session;Row) | 2 | 4
void | addRow(SearchRow) | 3 | 20
SearchRow | getSearchRow(Row) | 2 | 5
PageBtree | getPage(int) | 4 | 7
boolean | canGetFirstOrLast() | 1 | 1
Cursor | findNext(Session;SearchRow;SearchRow) | 1 | 1
Cursor | find(Session;SearchRow;SearchRow) | 1 | 1
Cursor | find(Session;SearchRow;boolean;SearchRow) | 2 | 5
Cursor | findFirstOrLast(Session;boolean) | 5 | 10
double | getCost(Session;int[]) | 1 | 1
boolean | needRebuild() | 1 | 1
void | remove(Session;Row) | 4 | 2
void | remove(Session) | 2 | 4
void | truncate(Session) | 3 | 4
void | removeAllRows() | 1 | 7
void | checkRename() | 1 | 0
Row | getRow(Session;long) | 1 | 1
PageStore | getPageStore() | 1 | 1
long | getRowCountApproximation() | 1 | 1
long | getRowCount(Session) | 1 | 1
void | close(Session) | 2 | 3
SearchRow | readRow(Data;int;boolean;boolean) | 3 | 5
SearchRow | readRow(long) | 1 | 1
void | writeRow(Data;int;SearchRow;boolean) | 3 | 2
int | getRowSize(Data;SearchRow;boolean) | 3 | 2
boolean | canFindNext() | 1 | 1
void | setRootPageId(Session;int) | 1 | 4
void | invalidateRowCount() | 1 | 2
void | writeRowCount() | 2 | 3
boolean | hasData(SearchRow) | 1 | 1
int | getMemoryPerPage() | 1 | 1
void | memoryChange(int) | 3 | 2
boolean | isMemoryChangeRequired() | 2 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 10

Line start | Criticity class | Rule
--- | --- | ---
00101 | MAJOR | QC-JAV000001[00101] Avoid declaring class instance within loop, performance impact
00109 | MAJOR | QC-JAV000001[00109] Avoid declaring class instance within loop, performance impact
00111 | MAJOR | QC-JAV000001[00111] Avoid declaring class instance within loop, performance impact
00112 | MAJOR | QC-JAV000001[00112] Avoid declaring class instance within loop, performance impact
00118 | MAJOR | QC-JAV000001[00118] Avoid declaring class instance within loop, performance impact
00193 | MAJOR | QC-JAV000001[00193] Avoid declaring class instance within loop, performance impact
00194 | MAJOR | QC-JAV000001[00194] Avoid declaring class instance within loop, performance impact
00207 | MAJOR | QC-JAV000001[00207] Avoid declaring class instance within loop, performance impact
00211 | MAJOR | QC-JAV000001[00211] Avoid declaring class instance within loop, performance impact
00392 | MAJOR | QC-JAV000001[00392] Avoid declaring class instance within loop, performance impact

#### File lecode\index\PageBtreeLeaf.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
PageBtree | org.h2.index.PageBtreeLeaf

Module / class or interface : org.h2.index.PageBtreeLeaf

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageBtreeLeaf | PageBtreeLeaf(PageBtreeIndex;int;Data) | 1 | 2
Page | read(PageBtreeIndex;Data;int) | 1 | 3
PageBtreeLeaf | create(PageBtreeIndex;int;int) | 1 | 7
void | read() | 3 | 16
int | addRowTry(SearchRow) | 1 | 3
int | addRow(SearchRow;boolean) | 10 | 25
void | removeRow(int) | 5 | 12
int | getEntryCount() | 1 | 1
PageBtree | split(int) | 2 | 9
PageBtreeLeaf | getFirstLeaf() | 1 | 1
PageBtreeLeaf | getLastLeaf() | 1 | 1
SearchRow | remove(SearchRow) | 4 | 10
void | freeRecursive() | 1 | 2
int | getRowCount() | 1 | 1
void | setRowCountStored(int) | 1 | 0
void | write() | 1 | 2
void | writeHead() | 1 | 6
void | writeData() | 6 | 9
void | find(PageBtreeCursor;SearchRow;boolean) | 3 | 5
void | last(PageBtreeCursor) | 1 | 1
void | remapChildren() | 1 | 0
void | nextPage(PageBtreeCursor) | 2 | 4
void | previousPage(PageBtreeCursor) | 2 | 4
String | toString() | 1 | 1
void | moveTo(Session;int) | 3 | 16
void | memoryChange() | 4 | 4

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00374 | MAJOR | QC-JAV000001[00374] Avoid declaring class instance within loop, performance impact

#### File lecode\index\PageBtreeNode.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
PageBtree | org.h2.index.PageBtreeNode

Module / class or interface : org.h2.index.PageBtreeNode

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageBtreeNode | PageBtreeNode(PageBtreeIndex;int;Data) | 1 | 2
Page | read(PageBtreeIndex;Data;int) | 1 | 3
PageBtreeNode | create(PageBtreeIndex;int;int) | 2 | 8
void | read() | 3 | 20
int | addChildTry(SearchRow) | 5 | 9
void | addChild(int;int;SearchRow) | 8 | 17
int | addRowTry(SearchRow) | 3 | 16
void | updateRowCount(int) | 4 | 4
PageBtree | split(int) | 4 | 17
void | remapChildren() | 2 | 6
void | init(PageBtree;SearchRow;PageBtree) | 2 | 7
void | find(PageBtreeCursor;SearchRow;boolean) | 3 | 6
void | last(PageBtreeCursor) | 1 | 2
PageBtreeLeaf | getFirstLeaf() | 1 | 2
PageBtreeLeaf | getLastLeaf() | 1 | 2
SearchRow | remove(SearchRow) | 8 | 21
int | getRowCount() | 3 | 3
void | setRowCountStored(int) | 4 | 5
void | check() | 3 | 0
void | write() | 1 | 3
void | writeHead() | 1 | 7
void | writeData() | 4 | 12
void | freeRecursive() | 2 | 6
void | removeChild(int) | 4 | 13
void | nextPage(PageBtreeCursor;int) | 5 | 9
void | previousPage(PageBtreeCursor;int) | 5 | 9
String | toString() | 1 | 1
void | moveTo(Session;int) | 5 | 25
void | moveChild(int;int) | 3 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 6

Line start | Criticity class | Rule
--- | --- | ---
00199 | MAJOR | QC-JAV000001[00199] Avoid declaring class instance within loop, performance impact
00204 | MAJOR | QC-JAV000001[00204] Avoid declaring class instance within loop, performance impact
00210 | MAJOR | QC-JAV000001[00210] Avoid declaring class instance within loop, performance impact
00265 | MAJOR | QC-JAV000001[00265] Avoid declaring class instance within loop, performance impact
00371 | MAJOR | QC-JAV000001[00371] Avoid declaring class instance within loop, performance impact
00561 | MAJOR | QC-JAV000001[00561] Avoid declaring class instance within loop, performance impact

#### File lecode\index\PageData.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Page | org.h2.index.PageData

Module / class or interface : org.h2.index.PageData

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageData | PageData(PageDataIndex;int;Data) | 1 | 4
int | getRowCount() | 1 | 1
void | setRowCountStored(int) | 1 | 1
int | find(long) | 5 | 4
int | addRowTry(Row) | 1 | 1
Cursor | find(Session;long;long;boolean) | 1 | 1
long | getKey(int) | 1 | 1
PageData | split(int) | 1 | 1
void | setPageId(int) | 1 | 5
long | getLastKey() | 1 | 1
PageDataLeaf | getFirstLeaf() | 1 | 1
void | setParentPageId(int) | 2 | 4
void | remapChildren(int) | 1 | 1
boolean | remove(long) | 1 | 1
void | freeRecursive() | 1 | 1
Row | getRowWithKey(long) | 1 | 1
int | getMemory() | 1 | 1
int | getParentPageId() | 1 | 1
boolean | canRemove() | 2 | 2

#### File lecode\index\PageDataCursor.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.PageDataCursor

Module / class or interface : org.h2.index.PageDataCursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageDataCursor | PageDataCursor(Session;PageDataLeaf;int;long;boolean) | 2 | 6
Row | get() | 1 | 1
SearchRow | getSearchRow() | 1 | 1
boolean | next() | 4 | 4
boolean | checkMax() | 3 | 2
void | nextRow() | 3 | 4
boolean | previous() | 1 | 1

#### File lecode\index\PageDataIndex.java 8 rule violations (XML file)

Ancestor class | Children classes
--- | ---
PageIndex | org.h2.index.PageDataIndex

Module / class or interface : org.h2.index.PageDataIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageDataIndex | PageDataIndex(RegularTable;int;IndexColumn[];IndexType;boolean;Session) | 7 | 20
DbException | getDuplicateKeyException() | 2 | 2
void | add(Session;Row) | 7 | 5
DbException | getNewDuplicateKeyException() | 2 | 5
void | addTry(Session;Row) | 6 | 21
PageDataOverflow | getPageOverflow(int) | 2 | 3
PageData | getPage(int;int) | 6 | 8
boolean | canGetFirstOrLast() | 1 | 1
long | getKey(SearchRow;long;long) | 5 | 5
Cursor | find(Session;SearchRow;SearchRow) | 1 | 4
Cursor | find(Session;long;long;boolean) | 1 | 2
Cursor | findFirstOrLast(Session;boolean) | 1 | 1
long | getLastKey() | 1 | 2
double | getCost(Session;int[]) | 1 | 2
boolean | needRebuild() | 1 | 1
void | remove(Session;Row) | 9 | 6
void | remove(Session) | 2 | 4
void | truncate(Session) | 4 | 7
void | removeAllRows() | 1 | 8
void | checkRename() | 1 | 1
Row | getRow(Session;long) | 1 | 1
Row | getRowWithKey(long) | 1 | 2
PageStore | getPageStore() | 1 | 1
long | getRowCountApproximation() | 1 | 1
long | getRowCount(Session) | 2 | 6
String | getCreateSQL() | 1 | 1
int | getColumnIndex(Column) | 1 | 1
void | close(Session) | 4 | 5
Iterator<Row> | getDelta() | 2 | 3
void | incrementRowCount(int;int) | 2 | 5
void | commit(int;Row) | 3 | 1
void | setRootPageId(Session;int) | 1 | 4
void | setMainIndexColumn(int) | 1 | 1
int | getMainIndexColumn() | 1 | 1
String | toString() | 1 | 1
void | invalidateRowCount() | 1 | 2
void | writeRowCount() | 2 | 4
String | getPlanSQL() | 1 | 1
int | getMemoryPerPage() | 1 | 1
void | memoryChange(int) | 3 | 2
boolean | isRowIdIndex() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 8

Line start | Criticity class | Rule
--- | --- | ---
00114 | MAJOR | QC-JAV000001[00114] Avoid declaring class instance within loop, performance impact
00115 | MAJOR | QC-JAV000001[00115] Avoid declaring class instance within loop, performance impact
00134 | MAJOR | QC-JAV000001[00134] Avoid declaring class instance within loop, performance impact
00168 | MAJOR | QC-JAV000001[00168] Avoid declaring class instance within loop, performance impact
00177 | MAJOR | QC-JAV000001[00177] Avoid declaring class instance within loop, performance impact
00178 | MAJOR | QC-JAV000001[00178] Avoid declaring class instance within loop, performance impact
00183 | MAJOR | QC-JAV000001[00183] Avoid declaring class instance within loop, performance impact
00315 | MAJOR | QC-JAV000001[00315] Avoid declaring class instance within loop, performance impact

#### File lecode\index\PageDataLeaf.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
PageData | org.h2.index.PageDataLeaf

Module / class or interface : org.h2.index.PageDataLeaf

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageDataLeaf | PageDataLeaf(PageDataIndex;int;Data) | 1 | 2
PageDataLeaf | create(PageDataIndex;int;int) | 1 | 8
Page | read(PageDataIndex;Data;int) | 1 | 3
void | read() | 5 | 19
int | getRowLength(Row) | 2 | 5
int | findInsertionPoint(long) | 2 | 3
int | addRowTry(Row) | 13 | 44
void | removeRow(int) | 8 | 23
Cursor | find(Session;long;long;boolean) | 1 | 2
Row | getRowAt(int) | 6 | 3
int | getEntryCount() | 1 | 1
PageData | split(int) | 3 | 7
long | getLastKey() | 2 | 2
PageDataLeaf | getNextPage() | 2 | 3
PageDataLeaf | getFirstLeaf() | 1 | 1
void | remapChildren(int) | 2 | 4
boolean | remove(long) | 3 | 8
void | freeRecursive() | 1 | 3
void | freeOverflow() | 3 | 2
Row | getRowWithKey(long) | 1 | 2
int | getRowCount() | 1 | 1
void | setRowCountStored(int) | 1 | 0
void | write() | 1 | 3
void | readAllRows() | 2 | 3
void | writeHead() | 5 | 10
void | writeData() | 7 | 11
String | toString() | 1 | 1
void | moveTo(Session;int) | 5 | 22
void | setOverflow(int;int) | 3 | 7
void | memoryChange(boolean;Row) | 1 | 3
boolean | isStream() | 1 | 1
Row | readRow(Data;int;int) | 2 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 4

Line start | Criticity class | Rule
--- | --- | ---
00255 | MAJOR | QC-JAV000001[00255] Avoid declaring class instance within loop, performance impact
00345 | MAJOR | QC-JAV000001[00345] Avoid declaring class instance within loop, performance impact
00434 | MAJOR | QC-JAV000001[00434] Avoid declaring class instance within loop, performance impact
00506 | MAJOR | QC-JAV000001[00506] Avoid declaring class instance within loop, performance impact

#### File lecode\index\PageDataNode.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
PageData | org.h2.index.PageDataNode

Module / class or interface : org.h2.index.PageDataNode

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageDataNode | PageDataNode(PageDataIndex;int;Data) | 1 | 1
PageDataNode | create(PageDataIndex;int;int) | 1 | 6
Page | read(PageDataIndex;Data;int) | 1 | 3
void | read() | 3 | 18
void | addChild(int;int;long) | 1 | 7
int | addRowTry(Row) | 3 | 13
void | updateRowCount(int) | 4 | 4
Cursor | find(Session;long;long;boolean) | 1 | 3
PageData | split(int) | 2 | 13
void | remapChildren(int) | 2 | 6
void | init(PageData;long;PageData) | 1 | 5
long | getLastKey() | 1 | 1
PageDataLeaf | getNextPage(long) | 3 | 5
PageDataLeaf | getFirstLeaf() | 1 | 2
boolean | remove(long) | 3 | 11
void | freeRecursive() | 2 | 6
Row | getRowWithKey(long) | 1 | 3
int | getRowCount() | 3 | 3
void | setRowCountStored(int) | 3 | 4
void | check() | 3 | 0
void | write() | 1 | 2
void | writeHead() | 3 | 7
void | writeData() | 4 | 10
void | removeChild(int) | 2 | 9
String | toString() | 1 | 1
void | moveTo(Session;int) | 6 | 25
void | moveChild(int;int) | 3 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 6

Line start | Criticity class | Rule
--- | --- | ---
00128 | MAJOR | QC-JAV000001[00128] Avoid declaring class instance within loop, performance impact
00137 | MAJOR | QC-JAV000001[00137] Avoid declaring class instance within loop, performance impact
00186 | MAJOR | QC-JAV000001[00186] Avoid declaring class instance within loop, performance impact
00278 | MAJOR | QC-JAV000001[00278] Avoid declaring class instance within loop, performance impact
00399 | MAJOR | QC-JAV000001[00399] Avoid declaring class instance within loop, performance impact
00399 | MAJOR | QC-JAV000001[00399] Avoid declaring class instance within loop, performance impact

#### File lecode\index\PageDataOverflow.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Page | org.h2.index.PageDataOverflow

Module / class or interface : org.h2.index.PageDataOverflow

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageDataOverflow | PageDataOverflow(PageStore;int;Data) | 1 | 3
Page | read(PageStore;Data;int) | 1 | 3
PageDataOverflow | create(PageStore;int;int;int;int;Data;int;int) | 3 | 15
void | read() | 5 | 10
int | readInto(Data) | 2 | 5
int | getNextOverflow() | 1 | 1
void | writeHead() | 1 | 3
void | write() | 1 | 2
void | writeData() | 3 | 4
String | toString() | 1 | 1
int | getMemory() | 1 | 1
void | setParentPageId(int) | 1 | 2
void | moveTo(Session;int) | 6 | 15
void | setNext(int;int) | 2 | 4
void | free() | 1 | 2
boolean | canRemove() | 1 | 1
boolean | isStream() | 1 | 1

#### File lecode\index\PageDelegateIndex.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
PageIndex | org.h2.index.PageDelegateIndex

Module / class or interface : org.h2.index.PageDelegateIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageDelegateIndex | PageDelegateIndex(RegularTable;int;String;IndexType;PageDataIndex;boolean;Session) | 3 | 7
void | add(Session;Row) | 1 | 0
boolean | canFindNext() | 1 | 1
boolean | canGetFirstOrLast() | 1 | 1
void | close(Session) | 1 | 0
Cursor | find(Session;SearchRow;SearchRow) | 1 | 3
Cursor | findFirstOrLast(Session;boolean) | 3 | 6
Cursor | findNext(Session;SearchRow;SearchRow) | 1 | 1
int | getColumnIndex(Column) | 2 | 2
double | getCost(Session;int[]) | 1 | 1
boolean | needRebuild() | 1 | 1
void | remove(Session;Row) | 1 | 0
void | remove(Session) | 1 | 2
void | truncate(Session) | 1 | 0
void | checkRename() | 1 | 0
long | getRowCount(Session) | 1 | 1
long | getRowCountApproximation() | 1 | 1
void | writeRowCount() | 1 | 0

#### File lecode\index\PageIndex.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
BaseIndex | org.h2.index.PageIndex

Module / class or interface : org.h2.index.PageIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
int | getRootPageId() | 1 | 1
void | writeRowCount() | 1 | 1
void | setSortedInsertMode(boolean) | 1 | 1
boolean | isSortedInsertMode() | 1 | 1

#### File lecode\index\RangeCursor.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.RangeCursor

Module / class or interface : org.h2.index.RangeCursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
RangeCursor | RangeCursor(long;long) | 1 | 3
Row | get() | 1 | 1
SearchRow | getSearchRow() | 1 | 1
boolean | next() | 3 | 5
boolean | previous() | 1 | 1

#### File lecode\index\RangeIndex.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
BaseIndex | org.h2.index.RangeIndex

Module / class or interface : org.h2.index.RangeIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
RangeIndex | RangeIndex(RangeTable;IndexColumn[]) | 1 | 2
void | close(Session) | 1 | 0
void | add(Session;Row) | 1 | 1
void | remove(Session;Row) | 1 | 1
Cursor | find(Session;SearchRow;SearchRow) | 1 | 5
double | getCost(Session;int[]) | 1 | 1
String | getCreateSQL() | 1 | 1
void | remove(Session) | 1 | 1
void | truncate(Session) | 1 | 1
boolean | needRebuild() | 1 | 1
void | checkRename() | 1 | 1
boolean | canGetFirstOrLast() | 1 | 1
Cursor | findFirstOrLast(Session;boolean) | 1 | 2
long | getRowCount(Session) | 1 | 1
long | getRowCountApproximation() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 2

Line start | Criticity class | Rule
--- | --- | ---
00046 | MAJOR | QC-JAVCWE390[00046] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00051 | MAJOR | QC-JAVCWE390[00051] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\index\ScanCursor.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.ScanCursor

Module / class or interface : org.h2.index.ScanCursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ScanCursor | ScanCursor(Session;ScanIndex;boolean) | 2 | 5
Row | get() | 1 | 1
SearchRow | getSearchRow() | 1 | 1
boolean | next() | 2 | 3
boolean | previous() | 1 | 1

#### File lecode\index\ScanIndex.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
BaseIndex | org.h2.index.ScanIndex

Module / class or interface : org.h2.index.ScanIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ScanIndex | ScanIndex(RegularTable;int;IndexColumn[];IndexType) | 3 | 4
void | remove(Session) | 1 | 1
void | truncate(Session) | 3 | 7
String | getCreateSQL() | 1 | 1
void | close(Session) | 1 | 0
Row | getRow(Session;long) | 1 | 1
void | add(Session;Row) | 6 | 12
void | commit(int;Row) | 3 | 1
void | incrementRowCount(int;int) | 2 | 5
void | remove(Session;Row) | 7 | 11
Cursor | find(Session;SearchRow;SearchRow) | 1 | 1
double | getCost(Session;int[]) | 1 | 1
long | getRowCount(Session) | 2 | 6
Row | getNextRow(Row) | 5 | 5
int | getColumnIndex(Column) | 1 | 1
void | checkRename() | 1 | 1
boolean | needRebuild() | 1 | 1
boolean | canGetFirstOrLast() | 1 | 1
Cursor | findFirstOrLast(Session;boolean) | 1 | 1
Iterator<Row> | getDelta() | 2 | 3
long | getRowCountApproximation() | 1 | 1
String | getPlanSQL() | 1 | 1

#### File lecode\index\SingleRowCursor.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.SingleRowCursor

Module / class or interface : org.h2.index.SingleRowCursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SingleRowCursor | SingleRowCursor(Row) | 1 | 1
Row | get() | 1 | 1
SearchRow | getSearchRow() | 1 | 1
boolean | next() | 2 | 4
boolean | previous() | 1 | 1

#### File lecode\index\TreeCursor.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.TreeCursor

Module / class or interface : org.h2.index.TreeCursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TreeCursor | TreeCursor(TreeIndex;TreeNode;SearchRow;SearchRow) | 1 | 5
Row | get() | 1 | 1
SearchRow | getSearchRow() | 1 | 1
boolean | next() | 7 | 3
boolean | previous() | 1 | 2
TreeNode | next(TreeNode) | 3 | 10
TreeNode | previous(TreeNode) | 3 | 10

#### File lecode\index\TreeIndex.java 10 rule violations (XML file)

Ancestor class | Children classes
--- | ---
BaseIndex | org.h2.index.TreeIndex

Module / class or interface : org.h2.index.TreeIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TreeIndex | TreeIndex(RegularTable;int;String;IndexColumn[];IndexType) | 1 | 2
void | close(Session) | 1 | 2
void | add(Session;Row) | 4 | 11
void | balance(TreeNode;boolean) | 5 | 3
TreeNode | child(TreeNode;boolean) | 1 | 1
void | replace(TreeNode;TreeNode) | 4 | 2
void | set(TreeNode;boolean;TreeNode) | 4 | 3
void | remove(Session;Row) | 17 | 28
TreeNode | findFirstNode(SearchRow;boolean) | 6 | 4
Cursor | find(TableFilter;SearchRow;SearchRow) | 1 | 1
Cursor | find(Session;SearchRow;SearchRow) | 1 | 1
Cursor | find(SearchRow;SearchRow) | 2 | 4
double | getCost(Session;int[]) | 1 | 1
void | remove(Session) | 1 | 1
void | truncate(Session) | 1 | 2
void | checkRename() | 1 | 0
boolean | needRebuild() | 1 | 1
boolean | canGetFirstOrLast() | 1 | 1
Cursor | findFirstOrLast(Session;boolean) | 8 | 12
long | getRowCount(Session) | 1 | 1
long | getRowCountApproximation() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE481 | Assigning instead of comparing | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 9

Line start | Criticity class | Rule
--- | --- | ---
00057 | MAJOR | QC-JAV000001[00057] Avoid declaring class instance within loop, performance impact
00086 | MAJOR | QC-JAV000001[00086] Avoid declaring class instance within loop, performance impact
00094 | MAJOR | QC-JAV000001[00094] Avoid declaring class instance within loop, performance impact
00159 | MAJOR | QC-JAVCWE481[00159] Assigning instead of comparing on temp=temp.right (see http://cwe.mitre.org/data/definitions/481.html)
00229 | MAJOR | QC-JAV000001[00229] Avoid declaring class instance within loop, performance impact
00244 | MAJOR | QC-JAV000001[00244] Avoid declaring class instance within loop, performance impact
00344 | MAJOR | QC-JAV000001[00344] Avoid declaring class instance within loop, performance impact
00345 | MAJOR | QC-JAV000001[00345] Avoid declaring class instance within loop, performance impact
00366 | MAJOR | QC-JAV000001[00366] Avoid declaring class instance within loop, performance impact
00370 | MAJOR | QC-JAV000001[00370] Avoid declaring class instance within loop, performance impact

#### File lecode\index\TreeNode.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.TreeNode

Module / class or interface : org.h2.index.TreeNode

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TreeNode | TreeNode(Row) | 1 | 1
boolean | isFromLeft() | 1 | 1

#### File lecode\index\ViewCursor.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.index.ViewCursor

Module / class or interface : org.h2.index.ViewCursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ViewCursor | ViewCursor(Index;ResultInterface;SearchRow;SearchRow) | 1 | 5
Row | get() | 1 | 1
SearchRow | getSearchRow() | 1 | 1
boolean | next() | 5 | 5
boolean | previous() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00053 | MAJOR | QC-JAV000001[00053] Avoid declaring class instance within loop, performance impact
00055 | MAJOR | QC-JAV000001[00055] Avoid declaring class instance within loop, performance impact
00055 | MAJOR | QC-JAV000001[00055] Avoid declaring class instance within loop, performance impact

#### File lecode\index\ViewIndex.java 13 rule violations (XML file)

Ancestor class | Children classes
--- | ---
BaseIndex | org.h2.index.ViewIndex

Module / class or interface : org.h2.index.ViewIndex

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ViewIndex | ViewIndex(TableView;String;ArrayList<Parameter>;boolean) | 1 | 8
ViewIndex | ViewIndex(TableView;ViewIndex;Session;int[]) | 2 | 10
Session | getSession() | 1 | 1
String | getPlanSQL() | 1 | 1
void | close(Session) | 1 | 0
void | add(Session;Row) | 1 | 1
void | remove(Session;Row) | 1 | 1
double | getCost(Session;int[]) | 7 | 16
Cursor | find(Session;SearchRow;SearchRow) | 15 | 24
void | setParameter(ArrayList<Parameter>;int;Value) | 2 | 3
Query | getQuery(Session;int[]) | 12 | 28
void | remove(Session) | 1 | 1
void | truncate(Session) | 1 | 1
void | checkRename() | 1 | 1
boolean | needRebuild() | 1 | 1
boolean | canGetFirstOrLast() | 1 | 1
Cursor | findFirstOrLast(Session;boolean) | 1 | 1
void | setRecursive(boolean) | 1 | 1
long | getRowCount(Session) | 1 | 1
long | getRowCountApproximation() | 1 | 1
boolean | isRecursive() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 12

Line start | Criticity class | Rule
--- | --- | ---
00060 | CRITICAL | QC-JAVCWE476[00060] The argument index is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk
00140 | MAJOR | QC-JAV000001[00140] Avoid declaring class instance within loop, performance impact
00144 | MAJOR | QC-JAV000001[00144] Avoid declaring class instance within loop, performance impact
00148 | MAJOR | QC-JAV000001[00148] Avoid declaring class instance within loop, performance impact
00213 | MAJOR | QC-JAV000001[00213] Avoid declaring class instance within loop, performance impact
00215 | MAJOR | QC-JAV000001[00215] Avoid declaring class instance within loop, performance impact
00231 | MAJOR | QC-JAV000001[00231] Avoid declaring class instance within loop, performance impact
00239 | MAJOR | QC-JAV000001[00239] Avoid declaring class instance within loop, performance impact
00291 | MAJOR | QC-JAV000001[00291] Avoid declaring class instance within loop, performance impact
00296 | MAJOR | QC-JAV000001[00296] Avoid declaring class instance within loop, performance impact
00301 | MAJOR | QC-JAV000001[00301] Avoid declaring class instance within loop, performance impact
00329 | MAJOR | QC-JAV000001[00329] Avoid declaring class instance within loop, performance impact
00329 | MAJOR | QC-JAV000001[00329] Avoid declaring class instance within loop, performance impact

#### File lecode\jdbc\JdbcArray.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
TraceObjectArray | org.h2.jdbc.JdbcArray

Module / class or interface : org.h2.jdbc.JdbcArray

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcArray | JdbcArray(JdbcConnection;Value;int) | 1 | 3
Object | getArray() | 1 | 4
Object | getArray(Map<String,Class<?>>) | 1 | 5
Object | getArray(long;int) | 1 | 4
Object | getArray(long;int;Map<String,Class<?>>) | 1 | 5
int | getBaseType() | 1 | 4
String | getBaseTypeName() | 1 | 4
ResultSet | getResultSet() | 1 | 4
ResultSet | getResultSet(Map<String,Class<?>>) | 1 | 5
ResultSet | getResultSet(long;int) | 1 | 4
ResultSet | getResultSet(long;int;Map<String,Class<?>>) | 1 | 5
void | free() | 1 | 2
ResultSet | getResultSet(Object[];long) | 2 | 7
void | checkClosed() | 2 | 2
Object[] | get() | 1 | 1
Object[] | get(long;int) | 3 | 6
void | checkMap(Map<String,Class<?>>) | 2 | 1
String | toString() | 1 | 1

#### File lecode\jdbc\JdbcBatchUpdateException.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
BatchUpdateException | org.h2.jdbc.JdbcBatchUpdateException

Module / class or interface : org.h2.jdbc.JdbcBatchUpdateException

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcBatchUpdateException | JdbcBatchUpdateException(SQLException;int[]) | 1 | 2
void | printStackTrace() | 1 | 1
void | printStackTrace(PrintWriter) | 3 | 1
void | printStackTrace(PrintStream) | 3 | 1

#### File lecode\jdbc\JdbcBlob.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
TraceObjectBlob | org.h2.jdbc.JdbcBlob

Module / class or interface : org.h2.jdbc.JdbcBlob

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcBlob | JdbcBlob(JdbcConnection;Value;int) | 1 | 3
long | length() | 2 | 4
void | truncate(long) | 1 | 1
byte[] | getBytes(long;int) | 2 | 5
int | setBytes(long;byte[]) | 3 | 4
int | setBytes(long;byte[];int;int) | 1 | 1
InputStream | getBinaryStream() | 1 | 4
OutputStream | setBinaryStream(long) | 4 | 8
long | position(byte[];long) | 3 | 2
long | position(Blob;long) | 3 | 2
void | free() | 1 | 2
InputStream | getBinaryStream(long;long) | 1 | 1
void | checkClosed() | 2 | 2
String | toString() | 1 | 1

#### File lecode\jdbc\JdbcCallableStatement.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
JdbcPreparedStatementCallableStatement | org.h2.jdbc.JdbcCallableStatement

Module / class or interface : org.h2.jdbc.JdbcCallableStatement

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcCallableStatement | JdbcCallableStatement(JdbcConnection;String;int;int;int) | 1 | 2
int | executeUpdate() | 2 | 3
void | registerOutParameter(int;int) | 1 | 1
void | registerOutParameter(int;int;String) | 1 | 1
void | registerOutParameter(int;int;int) | 1 | 1
void | registerOutParameter(String;int;String) | 1 | 1
void | registerOutParameter(String;int;int) | 1 | 1
void | registerOutParameter(String;int) | 1 | 1
boolean | wasNull() | 1 | 1
URL | getURL(int) | 1 | 1
String | getString(int) | 1 | 2
boolean | getBoolean(int) | 1 | 2
byte | getByte(int) | 1 | 2
short | getShort(int) | 1 | 2
int | getInt(int) | 1 | 2
long | getLong(int) | 1 | 2
float | getFloat(int) | 1 | 2
double | getDouble(int) | 1 | 2
BigDecimal | getBigDecimal(int;int) | 1 | 2
byte[] | getBytes(int) | 1 | 2
Date | getDate(int) | 1 | 2
Time | getTime(int) | 1 | 2
Timestamp | getTimestamp(int) | 1 | 2
Object | getObject(int) | 1 | 2
BigDecimal | getBigDecimal(int) | 1 | 2
Object | getObject(int;Map<String,Class<?>>) | 1 | 1
Ref | getRef(int) | 1 | 1
Blob | getBlob(int) | 1 | 2
Clob | getClob(int) | 1 | 2
Array | getArray(int) | 1 | 2
Date | getDate(int;Calendar) | 1 | 2
Time | getTime(int;Calendar) | 1 | 2
Timestamp | getTimestamp(int;Calendar) | 1 | 2
URL | getURL(String) | 1 | 1
Timestamp | getTimestamp(String;Calendar) | 1 | 1
Time | getTime(String;Calendar) | 1 | 1
Date | getDate(String;Calendar) | 1 | 1
Array | getArray(String) | 1 | 1
Clob | getClob(String) | 1 | 1
Blob | getBlob(String) | 1 | 1
Ref | getRef(String) | 1 | 1
Object | getObject(String;Map<String,Class<?>>) | 1 | 1
BigDecimal | getBigDecimal(String) | 1 | 1
Object | getObject(String) | 1 | 1
Timestamp | getTimestamp(String) | 1 | 1
Time | getTime(String) | 1 | 1
Date | getDate(String) | 1 | 1
byte[] | getBytes(String) | 1 | 1
double | getDouble(String) | 1 | 1
float | getFloat(String) | 1 | 1
long | getLong(String) | 1 | 1
int | getInt(String) | 1 | 1
short | getShort(String) | 1 | 1
byte | getByte(String) | 1 | 1
boolean | getBoolean(String) | 1 | 1
String | getString(String) | 1 | 1
RowId | getRowId(int) | 1 | 1
RowId | getRowId(String) | 1 | 1
NClob | getNClob(int) | 1 | 2
NClob | getNClob(String) | 1 | 1
SQLXML | getSQLXML(int) | 1 | 1
SQLXML | getSQLXML(String) | 1 | 1
String | getNString(int) | 1 | 2
String | getNString(String) | 1 | 1
Reader | getNCharacterStream(int) | 1 | 2
Reader | getNCharacterStream(String) | 1 | 1
Reader | getCharacterStream(int) | 1 | 2
Reader | getCharacterStream(String) | 1 | 1
void | setNull(String;int;String) | 1 | 1
void | setNull(String;int) | 1 | 1
void | setTimestamp(String;Timestamp;Calendar) | 1 | 1
void | setTime(String;Time;Calendar) | 1 | 1
void | setDate(String;Date;Calendar) | 1 | 1
void | setCharacterStream(String;Reader;int) | 1 | 1
void | setObject(String;Object) | 1 | 1
void | setObject(String;Object;int) | 1 | 1
void | setObject(String;Object;int;int) | 1 | 1
void | setBinaryStream(String;InputStream;int) | 1 | 1
void | setAsciiStream(String;InputStream;long) | 1 | 1
void | setTimestamp(String;Timestamp) | 1 | 1
void | setTime(String;Time) | 1 | 1
void | setDate(String;Date) | 1 | 1
void | setBytes(String;byte[]) | 1 | 1
void | setString(String;String) | 1 | 1
void | setBigDecimal(String;BigDecimal) | 1 | 1
void | setDouble(String;double) | 1 | 1
void | setFloat(String;float) | 1 | 1
void | setLong(String;long) | 1 | 1
void | setInt(String;int) | 1 | 1
void | setShort(String;short) | 1 | 1
void | setByte(String;byte) | 1 | 1
void | setBoolean(String;boolean) | 1 | 1
void | setURL(String;URL) | 1 | 1
void | setRowId(String;RowId) | 1 | 1
void | setNString(String;String) | 1 | 1
void | setNCharacterStream(String;Reader;long) | 1 | 1
void | setNClob(String;NClob) | 1 | 1
void | setClob(String;Reader;long) | 1 | 1
void | setBlob(String;InputStream;long) | 1 | 1
void | setNClob(String;Reader;long) | 1 | 1
void | setBlob(String;Blob) | 1 | 1
void | setClob(String;Clob) | 1 | 1
void | setAsciiStream(String;InputStream) | 1 | 1
void | setAsciiStream(String;InputStream;int) | 1 | 1
void | setBinaryStream(String;InputStream) | 1 | 1
void | setBinaryStream(String;InputStream;long) | 1 | 1
void | setBlob(String;InputStream) | 1 | 1
void | setCharacterStream(String;Reader) | 1 | 1
void | setCharacterStream(String;Reader;long) | 1 | 1
void | setClob(String;Reader) | 1 | 1
void | setNCharacterStream(String;Reader) | 1 | 1
void | setNClob(String;Reader) | 1 | 1
void | setSQLXML(String;SQLXML) | 1 | 1
ResultSetMetaData | getCheckedMetaData() | 2 | 3
void | checkIndexBounds(int) | 2 | 2
void | registerOutParameter(int) | 3 | 5
void | checkRegistered(int) | 2 | 2
int | getIndexForName(String) | 3 | 4
JdbcResultSet | getOpenResultSet() | 3 | 3

#### File lecode\jdbc\JdbcClob.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
TraceObjectClob | org.h2.jdbc.JdbcClob

Module / class or interface : org.h2.jdbc.JdbcClob

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcClob | JdbcClob(JdbcConnection;Value;int) | 1 | 3
long | length() | 2 | 4
void | truncate(long) | 1 | 1
InputStream | getAsciiStream() | 1 | 5
OutputStream | setAsciiStream(long) | 1 | 1
Reader | getCharacterStream() | 1 | 4
Writer | setCharacterStream(long) | 4 | 8
String | getSubString(long;int) | 4 | 5
int | setString(long;String) | 5 | 4
int | setString(long;String;int;int) | 1 | 1
long | position(String;long) | 1 | 1
long | position(Clob;long) | 1 | 1
void | free() | 1 | 2
Reader | getCharacterStream(long;long) | 1 | 1
void | checkClosed() | 2 | 2
String | toString() | 1 | 1

#### File lecode\jdbc\JdbcConnection.java 12 rule violations (XML file)

Ancestor class | Children classes
--- | ---
TraceObjectConnection | org.h2.jdbc.JdbcConnection

Module / class or interface : org.h2.jdbc.JdbcConnection

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcConnection | JdbcConnection(String;Properties) | 1 | 1
JdbcConnection | JdbcConnection(ConnectionInfo;boolean) | 3 | 10
JdbcConnection | JdbcConnection(JdbcConnection) | 1 | 14
JdbcConnection | JdbcConnection(SessionInterface;String;String) | 1 | 7
void | closeOld() | 2 | 5
Statement | createStatement() | 2 | 4
Statement | createStatement(int;int) | 2 | 5
Statement | createStatement(int;int;int) | 2 | 6
PreparedStatement | prepareStatement(String) | 2 | 5
PreparedStatement | prepareAutoCloseStatement(String) | 2 | 5
DatabaseMetaData | getMetaData() | 2 | 4
SessionInterface | getSession() | 1 | 1
void | close() | 3 | 4
void | closePreparedCommands() | 1 | 8
CommandInterface | closeAndSetNull(CommandInterface) | 2 | 2
void | setAutoCommit(boolean) | 3 | 3
boolean | getAutoCommit() | 1 | 4
void | commit() | 1 | 5
void | rollback() | 1 | 4
boolean | isClosed() | 1 | 3
String | nativeSQL(String) | 1 | 4
void | setReadOnly(boolean) | 2 | 2
boolean | isReadOnly() | 1 | 8
void | setCatalog(String) | 1 | 3
String | getCatalog() | 2 | 4
SQLWarning | getWarnings() | 1 | 4
void | clearWarnings() | 1 | 3
PreparedStatement | prepareStatement(String;int;int) | 2 | 6
void | setTransactionIsolation(int) | 5 | 8
void | setQueryTimeout(int) | 1 | 7
int | getQueryTimeout() | 2 | 3
int | getTransactionIsolation() | 5 | 10
void | setHoldability(int) | 1 | 5
int | getHoldability() | 1 | 4
Map<String,Class<?>> | getTypeMap() | 1 | 4
void | setTypeMap(Map<String,Class<?>>) | 1 | 3
CallableStatement | prepareCall(String) | 2 | 5
CallableStatement | prepareCall(String;int;int) | 2 | 6
CallableStatement | prepareCall(String;int;int;int) | 2 | 7
Savepoint | setSavepoint() | 2 | 8
Savepoint | setSavepoint(String) | 2 | 7
void | rollback(Savepoint) | 1 | 5
void | releaseSavepoint(Savepoint) | 1 | 4
JdbcSavepoint | convertSavepoint(Savepoint) | 2 | 2
PreparedStatement | prepareStatement(String;int;int;int) | 2 | 7
PreparedStatement | prepareStatement(String;int) | 2 | 2
PreparedStatement | prepareStatement(String;int[]) | 2 | 2
PreparedStatement | prepareStatement(String;String[]) | 2 | 2
void | checkJavaVersion() | 1 | 3
CommandInterface | prepareCommand(String;int) | 1 | 1
CommandInterface | prepareCommand(String;CommandInterface) | 1 | 1
int | translateGetEnd(String;int;char) | 6 | 2
String | translateSQL(String) | 1 | 1
String | translateSQL(String;boolean) | 7 | 12
void | checkRunOver(int;int;String) | 2 | 1
boolean | found(String;int;String) | 1 | 1
void | checkTypeConcurrency(int;int) | 6 | 4
void | checkHoldability(int) | 2 | 1
void | checkClosed() | 1 | 1
void | checkClosedForWrite() | 1 | 1
void | checkClosed(boolean) | 4 | 6
void | afterWriting() | 2 | 1
String | getURL() | 1 | 2
String | getUser() | 1 | 2
void | rollbackInternal() | 1 | 2
int | getPowerOffCount() | 1 | 1
void | setPowerOffCount(int) | 2 | 1
void | setExecutingStatement(Statement) | 1 | 1
ResultSet | getGeneratedKeys(JdbcStatement;int) | 1 | 4
Clob | createClob() | 1 | 4
Blob | createBlob() | 1 | 4
NClob | createNClob() | 1 | 4
SQLXML | createSQLXML() | 1 | 1
Array | createArrayOf(String;Object[]) | 1 | 1
Struct | createStruct(String;Object[]) | 1 | 1
boolean | isValid(int) | 2 | 5
void | setClientInfo(String;String) | 1 | 1
void | setClientInfo(Properties) | 1 | 1
Properties | getClientInfo() | 1 | 1
String | getClientInfo(String) | 1 | 1
boolean | isWrapperFor(Class<?>) | 1 | 1
Value | createClob(Reader;long) | 3 | 4
Value | createBlob(InputStream;long) | 3 | 4
void | checkMap(Map<String,Class<?>>) | 2 | 1
String | toString() | 1 | 1
Object | convertToDefaultObject(Value) | 5 | 3
CompareMode | getCompareMode() | 1 | 1
void | setTraceLevel(int) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAVCWE481 | Assigning instead of comparing | 2
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 4
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 4

Line start | Criticity class | Rule
--- | --- | ---
00259 | INFO | QC-JAV999996[00259] CPD de longueur 76 commencant en 1225 (ligne 259) et 1325 (ligne 281): SQLException { try { int id = getNextId ( TraceObject . PREPARED_STATEMENT ) ; if ( isDebugEnabled ( ) ) { debugCodeAssign ( "PreparedStatement" , TraceObject . PREPARED_STATEMENT , id , ( "prepareStatement ( " + ( quote ( sql ) + " ) " ) ) ) ; } checkClosed ( ) ; sql = translateSQL ( sql ) ; return new JdbcPreparedStatement ( this , sql , id , ResultSet . TYPE_FORWARD_ONLY , Constants . DEFAULT_RESULT_SET_CONCURRENCY , false
00865 | INFO | QC-JAV999996[00865] CPD de longueur 53 commencant en 3371 (ligne 865) et 3498 (ligne 895): SQLException { try { int id = getNextId ( TraceObject . CALLABLE_STATEMENT ) ; if ( isDebugEnabled ( ) ) { debugCodeAssign ( "CallableStatement" , TraceObject . CALLABLE_STATEMENT , id , ( "prepareCall ( " + ( quote ( sql ) + ( " , " + ( resultSetType + ( " , " + ( resultSetConcurrency + " ) "
00900 | INFO | QC-JAV999996[00900] CPD de longueur 62 commencant en 3532 (ligne 900) et 4064 (ligne 1017): ( quote ( sql ) + ( " , " + ( resultSetType + ( " , " + ( resultSetConcurrency + ( " , " + ( resultSetHoldability + " ) " ) ) ) ) ) ) ) ) ) ; } checkTypeConcurrency ( resultSetType , resultSetConcurrency ) ; checkHoldability ( resultSetHoldability ) ; checkClosed ( ) ; sql = translateSQL ( sql ) ; return new JdbcCallableStatement
01467 | INFO | QC-JAV999996[01467] CPD de longueur 75 commencant en 6156 (ligne 1467) et 6362 (ligne 1513): ; checkClosedForWrite ( ) ; try { Value v = session . getDataHandler ( ) . getLobStorage ( ) . createClob ( ( new InputStreamReader ( new ByteArrayInputStream ( Utils . EMPTY_BYTES ) ) ) , 0 ) ; return new JdbcClob ( this , v , id ) ; } finally { afterWriting ( ) ; } } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public Blob
00130 | CRITICAL | QC-JAVCWE476[00130] The argument clone is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk
00162 | MAJOR | QC-JAV000001[00162] Avoid declaring class instance within loop, performance impact
00168 | MAJOR | QC-JAV000001[00168] Avoid declaring class instance within loop, performance impact
00174 | MAJOR | QC-JAV000001[00174] Avoid declaring class instance within loop, performance impact
00175 | MAJOR | QC-JAV000001[00175] Avoid declaring class instance within loop, performance impact
00339 | MAJOR | QC-JAVCWE390[00339] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
01162 | MAJOR | QC-JAVCWE481[01162] Assigning instead of comparing on c=sql.charAt(i) (see http://cwe.mitre.org/data/definitions/481.html)
01173 | MAJOR | QC-JAVCWE481[01173] Assigning instead of comparing on c=sql.charAt(i) (see http://cwe.mitre.org/data/definitions/481.html)

#### File lecode\jdbc\JdbcDatabaseMetaData.java 33 rule violations (XML file)

Ancestor class | Children classes
--- | ---
TraceObjectDatabaseMetaData | org.h2.jdbc.JdbcDatabaseMetaData

Module / class or interface : org.h2.jdbc.JdbcDatabaseMetaData

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcDatabaseMetaData | JdbcDatabaseMetaData(JdbcConnection;Trace;int) | 1 | 2
int | getDriverMajorVersion() | 1 | 2
int | getDriverMinorVersion() | 1 | 2
String | getDatabaseProductName() | 1 | 2
String | getDatabaseProductVersion() | 1 | 2
String | getDriverName() | 1 | 2
String | getDriverVersion() | 1 | 2
ResultSet | getTables(String;String;String;String[]) | 5 | 11
ResultSet | getColumns(String;String;String;String) | 2 | 14
ResultSet | getIndexInfo(String;String;String;boolean;boolean) | 4 | 10
ResultSet | getPrimaryKeys(String;String;String) | 2 | 9
boolean | allProceduresAreCallable() | 1 | 2
boolean | allTablesAreSelectable() | 1 | 2
String | getURL() | 1 | 3
String | getUserName() | 1 | 3
boolean | isReadOnly() | 1 | 3
boolean | nullsAreSortedHigh() | 1 | 2
boolean | nullsAreSortedLow() | 1 | 2
boolean | nullsAreSortedAtStart() | 1 | 2
boolean | nullsAreSortedAtEnd() | 1 | 2
Connection | getConnection() | 1 | 2
ResultSet | getProcedures(String;String;String) | 2 | 10
ResultSet | getProcedureColumns(String;String;String;String) | 2 | 13
ResultSet | getSchemas() | 1 | 5
ResultSet | getCatalogs() | 1 | 5
ResultSet | getTableTypes() | 1 | 5
ResultSet | getColumnPrivileges(String;String;String;String) | 2 | 11
ResultSet | getTablePrivileges(String;String;String) | 2 | 10
ResultSet | getBestRowIdentifier(String;String;String;int;boolean) | 2 | 11
ResultSet | getVersionColumns(String;String;String) | 2 | 4
ResultSet | getImportedKeys(String;String;String) | 2 | 9
ResultSet | getExportedKeys(String;String;String) | 2 | 9
ResultSet | getCrossReference(String;String;String;String;String;String) | 2 | 14
ResultSet | getUDTs(String;String;String;int[]) | 2 | 4
ResultSet | getTypeInfo() | 1 | 6
boolean | usesLocalFiles() | 1 | 2
boolean | usesLocalFilePerTable() | 1 | 2
String | getIdentifierQuoteString() | 1 | 2
String | getSQLKeywords() | 1 | 2
String | getNumericFunctions() | 1 | 2
String | getStringFunctions() | 1 | 2
String | getSystemFunctions() | 1 | 2
String | getTimeDateFunctions() | 1 | 2
String | getFunctions(String) | 1 | 9
String | getSearchStringEscape() | 1 | 2
String | getExtraNameCharacters() | 1 | 2
boolean | supportsAlterTableWithAddColumn() | 1 | 2
boolean | supportsAlterTableWithDropColumn() | 1 | 2
boolean | supportsColumnAliasing() | 1 | 2
boolean | nullPlusNonNullIsNull() | 1 | 2
boolean | supportsConvert() | 1 | 2
boolean | supportsConvert(int;int) | 2 | 2
boolean | supportsTableCorrelationNames() | 1 | 2
boolean | supportsDifferentTableCorrelationNames() | 1 | 2
boolean | supportsExpressionsInOrderBy() | 1 | 2
boolean | supportsOrderByUnrelated() | 1 | 2
boolean | supportsGroupBy() | 1 | 2
boolean | supportsGroupByUnrelated() | 1 | 2
boolean | supportsGroupByBeyondSelect() | 1 | 2
boolean | supportsLikeEscapeClause() | 1 | 2
boolean | supportsMultipleResultSets() | 1 | 2
boolean | supportsMultipleTransactions() | 1 | 2
boolean | supportsNonNullableColumns() | 1 | 2
boolean | supportsMinimumSQLGrammar() | 1 | 2
boolean | supportsCoreSQLGrammar() | 1 | 2
boolean | supportsExtendedSQLGrammar() | 1 | 2
boolean | supportsANSI92EntryLevelSQL() | 1 | 2
boolean | supportsANSI92IntermediateSQL() | 1 | 2
boolean | supportsANSI92FullSQL() | 1 | 2
boolean | supportsIntegrityEnhancementFacility() | 1 | 2
boolean | supportsOuterJoins() | 1 | 2
boolean | supportsFullOuterJoins() | 1 | 2
boolean | supportsLimitedOuterJoins() | 1 | 2
String | getSchemaTerm() | 1 | 2
String | getProcedureTerm() | 1 | 2
String | getCatalogTerm() | 1 | 2
boolean | isCatalogAtStart() | 1 | 2
String | getCatalogSeparator() | 1 | 2
boolean | supportsSchemasInDataManipulation() | 1 | 2
boolean | supportsSchemasInProcedureCalls() | 1 | 2
boolean | supportsSchemasInTableDefinitions() | 1 | 2
boolean | supportsSchemasInIndexDefinitions() | 1 | 2
boolean | supportsSchemasInPrivilegeDefinitions() | 1 | 2
boolean | supportsCatalogsInDataManipulation() | 1 | 2
boolean | supportsCatalogsInProcedureCalls() | 1 | 2
boolean | supportsCatalogsInTableDefinitions() | 1 | 2
boolean | supportsCatalogsInIndexDefinitions() | 1 | 2
boolean | supportsCatalogsInPrivilegeDefinitions() | 1 | 2
boolean | supportsPositionedDelete() | 1 | 2
boolean | supportsPositionedUpdate() | 1 | 2
boolean | supportsSelectForUpdate() | 1 | 2
boolean | supportsStoredProcedures() | 1 | 2
boolean | supportsSubqueriesInComparisons() | 1 | 2
boolean | supportsSubqueriesInExists() | 1 | 2
boolean | supportsSubqueriesInIns() | 1 | 2
boolean | supportsSubqueriesInQuantifieds() | 1 | 2
boolean | supportsCorrelatedSubqueries() | 1 | 2
boolean | supportsUnion() | 1 | 2
boolean | supportsUnionAll() | 1 | 2
boolean | supportsOpenCursorsAcrossCommit() | 1 | 2
boolean | supportsOpenCursorsAcrossRollback() | 1 | 2
boolean | supportsOpenStatementsAcrossCommit() | 1 | 2
boolean | supportsOpenStatementsAcrossRollback() | 1 | 2
boolean | supportsTransactions() | 1 | 2
boolean | supportsTransactionIsolationLevel(int) | 1 | 2
boolean | supportsDataDefinitionAndDataManipulationTransactions() | 1 | 2
boolean | supportsDataManipulationTransactionsOnly() | 1 | 2
boolean | dataDefinitionCausesTransactionCommit() | 1 | 2
boolean | dataDefinitionIgnoredInTransactions() | 1 | 2
boolean | supportsResultSetType(int) | 1 | 2
boolean | supportsResultSetConcurrency(int;int) | 2 | 2
boolean | ownUpdatesAreVisible(int) | 1 | 2
boolean | ownDeletesAreVisible(int) | 1 | 2
boolean | ownInsertsAreVisible(int) | 1 | 2
boolean | othersUpdatesAreVisible(int) | 1 | 2
boolean | othersDeletesAreVisible(int) | 1 | 2
boolean | othersInsertsAreVisible(int) | 1 | 2
boolean | updatesAreDetected(int) | 1 | 2
boolean | deletesAreDetected(int) | 1 | 2
boolean | insertsAreDetected(int) | 1 | 2
boolean | supportsBatchUpdates() | 1 | 2
boolean | doesMaxRowSizeIncludeBlobs() | 1 | 2
int | getDefaultTransactionIsolation() | 1 | 2
boolean | supportsMixedCaseIdentifiers() | 1 | 2
boolean | supportsMixedCaseQuotedIdentifiers() | 1 | 2
boolean | storesUpperCaseIdentifiers() | 1 | 2
boolean | storesLowerCaseIdentifiers() | 1 | 2
boolean | storesMixedCaseIdentifiers() | 1 | 2
boolean | storesUpperCaseQuotedIdentifiers() | 1 | 2
boolean | storesLowerCaseQuotedIdentifiers() | 1 | 2
boolean | storesMixedCaseQuotedIdentifiers() | 1 | 2
int | getMaxBinaryLiteralLength() | 1 | 2
int | getMaxCharLiteralLength() | 1 | 2
int | getMaxColumnNameLength() | 1 | 2
int | getMaxColumnsInGroupBy() | 1 | 2
int | getMaxColumnsInIndex() | 1 | 2
int | getMaxColumnsInOrderBy() | 1 | 2
int | getMaxColumnsInSelect() | 1 | 2
int | getMaxColumnsInTable() | 1 | 2
int | getMaxConnections() | 1 | 2
int | getMaxCursorNameLength() | 1 | 2
int | getMaxIndexLength() | 1 | 2
int | getMaxSchemaNameLength() | 1 | 2
int | getMaxProcedureNameLength() | 1 | 2
int | getMaxCatalogNameLength() | 1 | 2
int | getMaxRowSize() | 1 | 2
int | getMaxStatementLength() | 1 | 2
int | getMaxStatements() | 1 | 2
int | getMaxTableNameLength() | 1 | 2
int | getMaxTablesInSelect() | 1 | 2
int | getMaxUserNameLength() | 1 | 2
boolean | supportsSavepoints() | 1 | 2
boolean | supportsNamedParameters() | 1 | 2
boolean | supportsMultipleOpenResults() | 1 | 2
boolean | supportsGetGeneratedKeys() | 1 | 2
ResultSet | getSuperTypes(String;String;String) | 1 | 1
ResultSet | getSuperTables(String;String;String) | 2 | 4
ResultSet | getAttributes(String;String;String;String) | 1 | 1
boolean | supportsResultSetHoldability(int) | 1 | 2
int | getResultSetHoldability() | 1 | 2
int | getDatabaseMajorVersion() | 1 | 2
int | getDatabaseMinorVersion() | 1 | 2
int | getJDBCMajorVersion() | 1 | 4
int | getJDBCMinorVersion() | 1 | 2
int | getSQLStateType() | 1 | 2
boolean | locatorsUpdateCopy() | 1 | 2
boolean | supportsStatementPooling() | 1 | 2
void | checkClosed() | 1 | 1
String | getPattern(String) | 1 | 1
String | getSchemaPattern(String) | 1 | 1
String | getCatalogPattern(String) | 1 | 1
RowIdLifetime | getRowIdLifetime() | 1 | 2
ResultSet | getSchemas(String;String) | 1 | 1
boolean | supportsStoredFunctionsUsingCallSyntax() | 1 | 2
boolean | autoCommitFailureClosesAllResultSets() | 1 | 2
ResultSet | getClientInfoProperties() | 1 | 1
boolean | isWrapperFor(Class<?>) | 1 | 1
ResultSet | getFunctionColumns(String;String;String;String) | 1 | 1
ResultSet | getFunctions(String;String;String) | 1 | 1
String | toString() | 1 | 1

Security risk sequences

Seq | Step | Source / Method / Target | Risk nature
--- | --- | --- | ---
No 1 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getBestRowIdentifier3\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getBestRowIdentifier.tableName |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getBestRowIdentifier.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 2 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getColumnPrivileges3\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getColumnPrivileges.table |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getColumnPrivileges.table\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 3 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference6\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.foreignTable |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.foreignTable\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 4 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference3\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.primaryTable |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.primaryTable\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 5 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getExportedKeys3\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getExportedKeys.tableName |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getExportedKeys.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 6 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getFunctions1\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getFunctions.section |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getFunctions.section\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 7 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getImportedKeys3\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getImportedKeys.tableName |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getImportedKeys.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 8 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getIndexInfo3\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getIndexInfo.tableName |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getIndexInfo.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 9 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getPrimaryKeys3\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getPrimaryKeys.tableName |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getPrimaryKeys.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 10 |  |  |
| 2 | org.h2.jdbc.JdbcDatabaseMetaData.getTables4\---dummymethode\------org.h2.jdbc.JdbcDatabaseMetaData.getTables.types |
| 1 | org.h2.jdbc.JdbcDatabaseMetaData.getTables.types\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
BLOCKER | QC-JAVCWE089 | Potential SQL Injection | 20
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 5
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 8

Line start | Criticity class | Rule
--- | --- | ---
00165 | INFO | QC-JAV999996[00165] CPD de longueur 63 commencant en 498 (ligne 165) et 2715 (ligne 881): . setString ( 1 , getCatalogPattern ( catalogPattern ) ) ; prep . setString ( 2 , "\\\\" ) ; prep . setString ( 3 , getSchemaPattern ( schemaPattern ) ) ; prep . setString ( 4 , "\\\\" ) ; prep . setString ( 5 , getPattern ( tableNamePattern ) ) ; prep . setString ( 6 , "\\\\" ) ; for
00351 | INFO | QC-JAV999996[00351] CPD de longueur 74 commencant en 1161 (ligne 351) et 1356 (ligne 404): . setString ( 1 , getCatalogPattern ( catalogPattern ) ) ; prep . setString ( 2 , "\\\\" ) ; prep . setString ( 3 , getSchemaPattern ( schemaPattern ) ) ; prep . setString ( 4 , "\\\\" ) ; prep . setString ( 5 , tableName ) ; return prep . executeQuery ( ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public ResultSet
00351 | INFO | QC-JAV999996[00351] CPD de longueur 75 commencant en 1161 (ligne 351) et 3345 (ligne 1071): . setString ( 1 , getCatalogPattern ( catalogPattern ) ) ; prep . setString ( 2 , "\\\\" ) ; prep . setString ( 3 , getSchemaPattern ( schemaPattern ) ) ; prep . setString ( 4 , "\\\\" ) ; prep . setString ( 5 , tableName ) ; return prep . executeQuery ( ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public ResultSet getPrimaryKeys
00351 | INFO | QC-JAV999996[00351] (Nb max de CPD atteint :3) CPD de longueur 75 commencant en 1161 (ligne 351) et 3568 (ligne 1143): . setString ( 1 , getCatalogPattern ( catalogPattern ) ) ; prep . setString ( 2 , "\\\\" ) ; prep . setString ( 3 , getSchemaPattern ( schemaPattern ) ) ; prep . setString ( 4 , "\\\\" ) ; prep . setString ( 5 , tableName ) ; return prep . executeQuery ( ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public ResultSet getPrimaryKeys
00403 | INFO | QC-JAV999996[00403] CPD de longueur 62 commencant en 1342 (ligne 403) et 2701 (ligne 880): ) ) ) ) ) ) ) ) ) ) ) ) ; prep . setString ( 1 , getCatalogPattern ( catalogPattern ) ) ; prep . setString ( 2 , "\\\\" ) ; prep . setString ( 3 , getSchemaPattern ( schemaPattern ) ) ; prep . setString ( 4 , "\\\\" ) ; prep . setString ( 5 , tableName
01046 | INFO | QC-JAV999996[01046] CPD de longueur 93 commencant en 3223 (ligne 1046) et 3446 (ligne 1118): ( quote ( catalogPattern ) + ( " , " + ( quote ( schemaPattern ) + ( " , " + ( quote ( tableName ) + " ) ; " ) ) ) ) ) ) ; } checkClosed ( ) ; PreparedStatement prep = conn . prepareAutoCloseStatement ( "SELECT " + ( "PKTABLE_CATALOG PKTABLE_CAT , " + ( "PKTABLE_SCHEMA PKTABLE_SCHEM , " + ( "PKTABLE_NAME PKTABLE_NAME , " + ( "PKCOLUMN_NAME , " + ( "FKTABLE_CATALOG FKTABLE_CAT , " + ( "FKTABLE_SCHEMA FKTABLE_SCHEM , " + ( "FKTABLE_NAME , " + ( "FKCOLUMN_NAME , " + ( "ORDINAL_POSITION KEY_SEQ , " + ( "UPDATE_RULE , " + ( "DELETE_RULE , " + ( "FK_NAME , " + ( "PK_NAME , " + ( "DEFERRABILITY " + ( "FROM INFORMATION_SCHEMA . CROSS_REFERENCES " + ( "WHERE FKTABLE_CATALOG LIKE ? ESCAPE ? "
01071 | INFO | QC-JAV999996[01071] CPD de longueur 75 commencant en 3345 (ligne 1071) et 3568 (ligne 1143): . setString ( 1 , getCatalogPattern ( catalogPattern ) ) ; prep . setString ( 2 , "\\\\" ) ; prep . setString ( 3 , getSchemaPattern ( schemaPattern ) ) ; prep . setString ( 4 , "\\\\" ) ; prep . setString ( 5 , tableName ) ; return prep . executeQuery ( ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public ResultSet getExportedKeys
01125 | INFO | QC-JAV999996[01125] CPD de longueur 52 commencant en 3495 (ligne 1125) et 3760 (ligne 1207): ( "PKTABLE_SCHEMA PKTABLE_SCHEM , " + ( "PKTABLE_NAME PKTABLE_NAME , " + ( "PKCOLUMN_NAME , " + ( "FKTABLE_CATALOG FKTABLE_CAT , " + ( "FKTABLE_SCHEMA FKTABLE_SCHEM , " + ( "FKTABLE_NAME , " + ( "FKCOLUMN_NAME , " + ( "ORDINAL_POSITION KEY_SEQ , " + ( "UPDATE_RULE , " + ( "DELETE_RULE , " + ( "FK_NAME , " + ( "PK_NAME , " + ( "DEFERRABILITY " + ( "FROM INFORMATION_SCHEMA . CROSS_REFERENCES " + ( "WHERE PKTABLE_CATALOG LIKE ? ESCAPE ? " + ( "AND PKTABLE_SCHEMA LIKE ? ESCAPE ? " + ( "AND PKTABLE_NAME = ? " + "ORDER BY FKTABLE_CAT , FKTABLE_SCHEM , FKTABLE_NAME , FK_NAME , KEY_SEQ"
01455 | MAJOR | QC-JAV000001[01455] Avoid declaring class instance within loop, performance impact
01456 | MAJOR | QC-JAV000001[01456] Avoid declaring class instance within loop, performance impact
01457 | MAJOR | QC-JAV000001[01457] Avoid declaring class instance within loop, performance impact
01459 | MAJOR | QC-JAV000001[01459] Avoid declaring class instance within loop, performance impact
01459 | MAJOR | QC-JAV000001[01459] Avoid declaring class instance within loop, performance impact
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getBestRowIdentifier3 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getBestRowIdentifier.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getBestRowIdentifier.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getBestRowIdentifier.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getColumnPrivileges3 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getColumnPrivileges.table//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getColumnPrivileges.table java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getColumnPrivileges.table java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference6 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.foreignTable//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.foreignTable java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.foreignTable java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference3 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.primaryTable//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.primaryTable java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getCrossReference.primaryTable java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getExportedKeys3 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getExportedKeys.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getExportedKeys.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getExportedKeys.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getFunctions1 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getFunctions.section//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getFunctions.section java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getFunctions.section java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getImportedKeys3 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getImportedKeys.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getImportedKeys.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getImportedKeys.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getIndexInfo3 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getIndexInfo.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getIndexInfo.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getIndexInfo.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getPrimaryKeys3 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getPrimaryKeys.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getPrimaryKeys.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getPrimaryKeys.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getTables4 dummymethode org.h2.jdbc.JdbcDatabaseMetaData.getTables.types//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getTables.types java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.jdbc.JdbcDatabaseMetaData.getTables.types java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL

#### File lecode\jdbc\JdbcParameterMetaData.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
TraceObjectParameterMetaData | org.h2.jdbc.JdbcParameterMetaData

Module / class or interface : org.h2.jdbc.JdbcParameterMetaData

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcParameterMetaData | JdbcParameterMetaData(Trace;JdbcPreparedStatement;CommandInterface;int) | 1 | 4
int | getParameterCount() | 1 | 4
int | getParameterMode(int) | 1 | 4
int | getParameterType(int) | 2 | 5
int | getPrecision(int) | 1 | 4
int | getScale(int) | 1 | 4
int | isNullable(int) | 1 | 3
boolean | isSigned(int) | 1 | 4
String | getParameterClassName(int) | 2 | 5
String | getParameterTypeName(int) | 2 | 5
ParameterInterface | getParameter(int) | 2 | 3
void | checkClosed() | 1 | 1
boolean | isWrapperFor(Class<?>) | 1 | 1
String | toString() | 1 | 1

#### File lecode\jdbc\JdbcPreparedStatement.java 23 rule violations (XML file)

Ancestor class | Children classes
--- | ---
JdbcStatementPreparedStatement | org.h2.jdbc.JdbcPreparedStatement

Module / class or interface : org.h2.jdbc.JdbcPreparedStatement

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcPreparedStatement | JdbcPreparedStatement(JdbcConnection;String;int;int;int;boolean) | 1 | 4
void | setCachedColumnLabelMap(HashMap<String,Integer>) | 1 | 1
ResultSet | executeQuery() | 2 | 3
int | executeUpdate() | 1 | 3
int | executeUpdateInternal() | 1 | 2
boolean | execute() | 2 | 3
void | clearParameters() | 2 | 6
ResultSet | executeQuery(String) | 1 | 3
void | addBatch(String) | 1 | 3
int | executeUpdate(String) | 1 | 3
boolean | execute(String) | 1 | 3
void | setNull(int;int) | 2 | 2
void | setInt(int;int) | 2 | 2
void | setString(int;String) | 2 | 3
void | setBigDecimal(int;BigDecimal) | 2 | 3
void | setDate(int;java.sql.Date) | 2 | 3
void | setTime(int;java.sql.Time) | 2 | 3
void | setTimestamp(int;java.sql.Timestamp) | 2 | 3
void | setObject(int;Object) | 4 | 1
void | setObject(int;Object;int) | 4 | 2
void | setObject(int;Object;int;int) | 2 | 2
void | setBoolean(int;boolean) | 2 | 2
void | setByte(int;byte) | 2 | 2
void | setShort(int;short) | 2 | 2
void | setLong(int;long) | 2 | 2
void | setFloat(int;float) | 2 | 2
void | setDouble(int;double) | 2 | 2
void | setRef(int;Ref) | 1 | 1
void | setDate(int;java.sql.Date;Calendar) | 4 | 1
void | setTime(int;java.sql.Time;Calendar) | 4 | 1
void | setTimestamp(int;java.sql.Timestamp;Calendar) | 4 | 1
void | setUnicodeStream(int;InputStream;int) | 1 | 1
void | setNull(int;int;String) | 2 | 2
void | setBlob(int;Blob) | 4 | 4
void | setBlob(int;InputStream) | 2 | 4
void | setClob(int;Clob) | 4 | 4
void | setClob(int;Reader) | 4 | 4
void | setArray(int;Array) | 1 | 1
void | setBytes(int;byte[]) | 2 | 3
void | setBinaryStream(int;InputStream;long) | 2 | 4
void | setBinaryStream(int;InputStream;int) | 1 | 1
void | setBinaryStream(int;InputStream) | 1 | 1
void | setAsciiStream(int;InputStream;int) | 1 | 1
void | setAsciiStream(int;InputStream;long) | 2 | 4
void | setAsciiStream(int;InputStream) | 1 | 1
void | setCharacterStream(int;Reader;int) | 1 | 1
void | setCharacterStream(int;Reader) | 1 | 1
void | setCharacterStream(int;Reader;long) | 2 | 4
void | setURL(int;URL) | 1 | 1
ResultSetMetaData | getMetaData() | 3 | 8
void | clearBatch() | 1 | 4
void | close() | 2 | 3
int[] | executeBatch() | 2 | 7
void | addBatch() | 3 | 7
int | executeUpdate(String;int) | 1 | 3
int | executeUpdate(String;int[]) | 1 | 3
int | executeUpdate(String;String[]) | 1 | 3
boolean | execute(String;int) | 1 | 3
boolean | execute(String;int[]) | 1 | 3
boolean | execute(String;String[]) | 1 | 3
ParameterMetaData | getParameterMetaData() | 2 | 5
void | setParameter(int;Value) | 2 | 6
void | setRowId(int;RowId) | 1 | 1
void | setNString(int;String) | 2 | 3
void | setNCharacterStream(int;Reader;long) | 2 | 4
void | setNCharacterStream(int;Reader) | 1 | 1
void | setNClob(int;NClob) | 4 | 4
void | setNClob(int;Reader) | 2 | 4
void | setClob(int;Reader;long) | 2 | 4
void | setBlob(int;InputStream;long) | 2 | 4
void | setNClob(int;Reader;long) | 2 | 4
void | setSQLXML(int;SQLXML) | 1 | 1
String | toString() | 1 | 1
boolean | checkClosed(boolean) | 3 | 5

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 14
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 9

Line start | Criticity class | Rule
--- | --- | ---
00337 | INFO | QC-JAV999996[00337] CPD de longueur 67 commencant en 1343 (ligne 337) et 5124 (ligne 1310): ( parameterIndex + ( " , " + ( quote ( x ) + " ) ; " ) ) ) ) ; } Value v = ( x == null ) ? ( Value ) ValueNull . INSTANCE : ValueString . get ( x ) ; setParameter ( parameterIndex , v ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void setBigDecimal
00772 | INFO | QC-JAV999996[00772] CPD de longueur 58 commencant en 3106 (ligne 772) et 3214 (ligne 803): ) throws SQLException { try { if ( isDebugEnabled ( ) ) { debugCode ( "setClob ( " + ( parameterIndex + " , x ) ; " ) ) ; } checkClosedForWrite ( ) ; try { Value v ; if ( x == null ) { v = ValueNull . INSTANCE ; } else { v = conn . createClob ( x .
00864 | INFO | QC-JAV999996[00864] CPD de longueur 67 commencant en 3450 (ligne 864) et 5612 (ligne 1455): ( parameterIndex + ( " , x , " + ( length + "L ) ; " ) ) ) ) ; } checkClosedForWrite ( ) ; try { Value v = conn . createBlob ( x , length ) ; setParameter ( parameterIndex , v ) ; } finally { afterWriting ( ) ; } } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void setBinaryStream
00999 | INFO | QC-JAV999996[00999] CPD de longueur 67 commencant en 3806 (ligne 999) et 5217 (ligne 1334): ( parameterIndex + ( " , x , " + ( length + "L ) ; " ) ) ) ) ; } checkClosedForWrite ( ) ; try { Value v = conn . createClob ( x , length ) ; setParameter ( parameterIndex , v ) ; } finally { afterWriting ( ) ; } } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void setURL
00999 | INFO | QC-JAV999996[00999] CPD de longueur 67 commencant en 3806 (ligne 999) et 5519 (ligne 1428): ( parameterIndex + ( " , x , " + ( length + "L ) ; " ) ) ) ) ; } checkClosedForWrite ( ) ; try { Value v = conn . createClob ( x , length ) ; setParameter ( parameterIndex , v ) ; } finally { afterWriting ( ) ; } } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void setURL
00999 | INFO | QC-JAV999996[00999] (Nb max de CPD atteint :3) CPD de longueur 67 commencant en 3806 (ligne 999) et 5705 (ligne 1483): ( parameterIndex + ( " , x , " + ( length + "L ) ; " ) ) ) ) ; } checkClosedForWrite ( ) ; try { Value v = conn . createClob ( x , length ) ; setParameter ( parameterIndex , v ) ; } finally { afterWriting ( ) ; } } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void setURL
01334 | INFO | QC-JAV999996[01334] CPD de longueur 67 commencant en 5217 (ligne 1334) et 5519 (ligne 1428): ( parameterIndex + ( " , x , " + ( length + "L ) ; " ) ) ) ) ; } checkClosedForWrite ( ) ; try { Value v = conn . createClob ( x , length ) ; setParameter ( parameterIndex , v ) ; } finally { afterWriting ( ) ; } } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void setNCharacterStream
01334 | INFO | QC-JAV999996[01334] CPD de longueur 67 commencant en 5217 (ligne 1334) et 5705 (ligne 1483): ( parameterIndex + ( " , x , " + ( length + "L ) ; " ) ) ) ) ; } checkClosedForWrite ( ) ; try { Value v = conn . createClob ( x , length ) ; setParameter ( parameterIndex , v ) ; } finally { afterWriting ( ) ; } } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void setNCharacterStream
01428 | INFO | QC-JAV999996[01428] CPD de longueur 67 commencant en 5519 (ligne 1428) et 5705 (ligne 1483): ( parameterIndex + ( " , x , " + ( length + "L ) ; " ) ) ) ) ; } checkClosedForWrite ( ) ; try { Value v = conn . createClob ( x , length ) ; setParameter ( parameterIndex , v ) ; } finally { afterWriting ( ) ; } } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void setBlob
00220 | MAJOR | QC-JAV000001[00220] Avoid declaring class instance within loop, performance impact
01098 | MAJOR | QC-JAV000001[01098] Avoid declaring class instance within loop, performance impact
01099 | MAJOR | QC-JAV000001[01099] Avoid declaring class instance within loop, performance impact
01101 | MAJOR | QC-JAV000001[01101] Avoid declaring class instance within loop, performance impact
01102 | MAJOR | QC-JAV000001[01102] Avoid declaring class instance within loop, performance impact
01107 | MAJOR | QC-JAV000001[01107] Avoid declaring class instance within loop, performance impact
01108 | MAJOR | QC-JAV000001[01108] Avoid declaring class instance within loop, performance impact
01101 | MAJOR | QC-JAV000001[01101] Avoid declaring class instance within loop, performance impact
01102 | MAJOR | QC-JAV000001[01102] Avoid declaring class instance within loop, performance impact
01145 | MAJOR | QC-JAV000001[01145] Avoid declaring class instance within loop, performance impact
01146 | MAJOR | QC-JAV000001[01146] Avoid declaring class instance within loop, performance impact
01520 | MAJOR | QC-JAV000001[01520] Avoid declaring class instance within loop, performance impact
01521 | MAJOR | QC-JAV000001[01521] Avoid declaring class instance within loop, performance impact
01523 | MAJOR | QC-JAV000001[01523] Avoid declaring class instance within loop, performance impact

#### File lecode\jdbc\JdbcResultSet.java 13 rule violations (XML file)

Ancestor class | Children classes
--- | ---
TraceObjectResultSet | org.h2.jdbc.JdbcResultSet

Module / class or interface : org.h2.jdbc.JdbcResultSet

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcResultSet | JdbcResultSet(JdbcConnection;JdbcStatement;ResultInterface;int;boolean;boolean;boolean) | 1 | 8
JdbcResultSet | JdbcResultSet(JdbcConnection;JdbcPreparedStatement;ResultInterface;int;boolean;boolean;boolean;HashMap<String,Integer>) | 1 | 3
boolean | next() | 1 | 4
ResultSetMetaData | getMetaData() | 2 | 6
boolean | wasNull() | 1 | 4
int | findColumn(String) | 1 | 3
void | close() | 1 | 3
void | closeInternal() | 2 | 0
Statement | getStatement() | 2 | 4
SQLWarning | getWarnings() | 1 | 4
void | clearWarnings() | 1 | 3
String | getString(int) | 1 | 3
String | getString(String) | 1 | 3
int | getInt(int) | 1 | 3
int | getInt(String) | 1 | 3
BigDecimal | getBigDecimal(int) | 1 | 3
Date | getDate(int) | 1 | 3
Time | getTime(int) | 1 | 3
Timestamp | getTimestamp(int) | 1 | 3
BigDecimal | getBigDecimal(String) | 1 | 3
Date | getDate(String) | 1 | 3
Time | getTime(String) | 1 | 3
Timestamp | getTimestamp(String) | 1 | 3
Object | getObject(int) | 1 | 4
Object | getObject(String) | 1 | 4
boolean | getBoolean(int) | 1 | 4
boolean | getBoolean(String) | 1 | 4
byte | getByte(int) | 1 | 3
byte | getByte(String) | 1 | 3
short | getShort(int) | 1 | 3
short | getShort(String) | 1 | 3
long | getLong(int) | 1 | 3
long | getLong(String) | 1 | 3
float | getFloat(int) | 1 | 3
float | getFloat(String) | 1 | 3
double | getDouble(int) | 1 | 3
double | getDouble(String) | 1 | 3
BigDecimal | getBigDecimal(String;int) | 3 | 3
BigDecimal | getBigDecimal(int;int) | 3 | 3
InputStream | getUnicodeStream(int) | 1 | 1
InputStream | getUnicodeStream(String) | 1 | 1
Object | getObject(int;Map<String,Class<?>>) | 1 | 1
Object | getObject(String;Map<String,Class<?>>) | 1 | 1
Ref | getRef(int) | 1 | 1
Ref | getRef(String) | 1 | 1
Date | getDate(int;Calendar) | 2 | 2
Date | getDate(String;Calendar) | 2 | 2
Time | getTime(int;Calendar) | 2 | 2
Time | getTime(String;Calendar) | 2 | 2
Timestamp | getTimestamp(int;Calendar) | 2 | 3
Timestamp | getTimestamp(String;Calendar) | 2 | 3
Blob | getBlob(int) | 1 | 5
Blob | getBlob(String) | 1 | 5
byte[] | getBytes(int) | 1 | 3
byte[] | getBytes(String) | 1 | 3
InputStream | getBinaryStream(int) | 1 | 3
InputStream | getBinaryStream(String) | 1 | 3
Clob | getClob(int) | 1 | 5
Clob | getClob(String) | 1 | 5
Array | getArray(int) | 1 | 5
Array | getArray(String) | 1 | 5
InputStream | getAsciiStream(int) | 1 | 4
InputStream | getAsciiStream(String) | 1 | 4
Reader | getCharacterStream(int) | 1 | 3
Reader | getCharacterStream(String) | 1 | 3
URL | getURL(int) | 1 | 1
URL | getURL(String) | 1 | 1
void | updateNull(int) | 1 | 3
void | updateNull(String) | 1 | 3
void | updateBoolean(int;boolean) | 2 | 2
void | updateBoolean(String;boolean) | 2 | 2
void | updateByte(int;byte) | 2 | 2
void | updateByte(String;byte) | 2 | 2
void | updateBytes(int;byte[]) | 2 | 2
void | updateBytes(String;byte[]) | 2 | 2
void | updateShort(int;short) | 2 | 2
void | updateShort(String;short) | 2 | 2
void | updateInt(int;int) | 2 | 2
void | updateInt(String;int) | 2 | 2
void | updateLong(int;long) | 2 | 2
void | updateLong(String;long) | 2 | 2
void | updateFloat(int;float) | 2 | 2
void | updateFloat(String;float) | 2 | 2
void | updateDouble(int;double) | 2 | 2
void | updateDouble(String;double) | 2 | 2
void | updateBigDecimal(int;BigDecimal) | 2 | 2
void | updateBigDecimal(String;BigDecimal) | 2 | 2
void | updateString(int;String) | 2 | 2
void | updateString(String;String) | 2 | 2
void | updateDate(int;Date) | 2 | 2
void | updateDate(String;Date) | 2 | 2
void | updateTime(int;Time) | 2 | 2
void | updateTime(String;Time) | 2 | 2
void | updateTimestamp(int;Timestamp) | 2 | 2
void | updateTimestamp(String;Timestamp) | 2 | 2
void | updateAsciiStream(int;InputStream;int) | 1 | 1
void | updateAsciiStream(int;InputStream) | 1 | 1
void | updateAsciiStream(int;InputStream;long) | 2 | 4
void | updateAsciiStream(String;InputStream;int) | 1 | 1
void | updateAsciiStream(String;InputStream) | 1 | 1
void | updateAsciiStream(String;InputStream;long) | 2 | 4
void | updateBinaryStream(int;InputStream;int) | 1 | 1
void | updateBinaryStream(int;InputStream) | 1 | 1
void | updateBinaryStream(int;InputStream;long) | 2 | 4
void | updateBinaryStream(String;InputStream) | 1 | 1
void | updateBinaryStream(String;InputStream;int) | 1 | 1
void | updateBinaryStream(String;InputStream;long) | 2 | 4
void | updateCharacterStream(int;Reader;long) | 2 | 4
void | updateCharacterStream(int;Reader;int) | 1 | 1
void | updateCharacterStream(int;Reader) | 1 | 1
void | updateCharacterStream(String;Reader;int) | 1 | 1
void | updateCharacterStream(String;Reader) | 1 | 1
void | updateCharacterStream(String;Reader;long) | 2 | 4
void | updateObject(int;Object;int) | 2 | 2
void | updateObject(String;Object;int) | 2 | 2
void | updateObject(int;Object) | 2 | 2
void | updateObject(String;Object) | 2 | 2
void | updateRef(int;Ref) | 1 | 1
void | updateRef(String;Ref) | 1 | 1
void | updateBlob(int;InputStream) | 1 | 1
void | updateBlob(int;InputStream;long) | 2 | 4
void | updateBlob(int;Blob) | 4 | 4
void | updateBlob(String;Blob) | 4 | 4
void | updateBlob(String;InputStream) | 1 | 1
void | updateBlob(String;InputStream;long) | 2 | 4
void | updateClob(int;Clob) | 4 | 4
void | updateClob(int;Reader) | 1 | 1
void | updateClob(int;Reader;long) | 2 | 4
void | updateClob(String;Clob) | 4 | 4
void | updateClob(String;Reader) | 1 | 1
void | updateClob(String;Reader;long) | 2 | 4
void | updateArray(int;Array) | 1 | 1
void | updateArray(String;Array) | 1 | 1
String | getCursorName() | 1 | 1
int | getRow() | 2 | 5
int | getConcurrency() | 2 | 5
int | getFetchDirection() | 1 | 4
int | getFetchSize() | 1 | 4
void | setFetchSize(int) | 5 | 4
void | setFetchDirection(int) | 1 | 1
int | getType() | 1 | 4
boolean | isBeforeFirst() | 1 | 6
boolean | isAfterLast() | 1 | 6
boolean | isFirst() | 1 | 5
boolean | isLast() | 1 | 5
void | beforeFirst() | 2 | 3
void | afterLast() | 1 | 3
boolean | first() | 2 | 5
boolean | last() | 1 | 4
boolean | absolute(int) | 5 | 5
boolean | relative(int) | 4 | 5
boolean | previous() | 1 | 4
void | moveToInsertRow() | 1 | 4
void | moveToCurrentRow() | 1 | 4
boolean | rowUpdated() | 1 | 3
boolean | rowInserted() | 1 | 3
boolean | rowDeleted() | 1 | 3
void | insertRow() | 2 | 5
void | updateRow() | 3 | 4
void | deleteRow() | 2 | 6
void | refreshRow() | 2 | 6
void | cancelRowUpdates() | 2 | 4
UpdatableRow | getUpdatableRow() | 2 | 3
int | getColumnIndex(String) | 11 | 10
void | mapColumn(HashMap<String,Integer>;String;int) | 2 | 2
void | checkColumnIndex(int) | 2 | 2
void | checkClosed() | 4 | 3
void | checkOnValidRow() | 2 | 1
Value | get(int) | 4 | 8
Value | get(String) | 1 | 2
void | update(String;Value) | 1 | 2
void | update(int;Value) | 4 | 4
boolean | nextRow() | 2 | 3
void | resetResult() | 2 | 2
RowId | getRowId(int) | 1 | 1
RowId | getRowId(String) | 1 | 1
void | updateRowId(int;RowId) | 1 | 1
void | updateRowId(String;RowId) | 1 | 1
int | getHoldability() | 1 | 4
boolean | isClosed() | 1 | 3
void | updateNString(int;String) | 2 | 2
void | updateNString(String;String) | 2 | 2
void | updateNClob(int;NClob) | 1 | 1
void | updateNClob(int;Reader) | 1 | 1
void | updateNClob(int;Reader;long) | 1 | 1
void | updateNClob(String;Reader) | 1 | 1
void | updateNClob(String;Reader;long) | 1 | 1
void | updateNClob(String;NClob) | 1 | 1
NClob | getNClob(int) | 1 | 5
NClob | getNClob(String) | 1 | 5
SQLXML | getSQLXML(int) | 1 | 1
SQLXML | getSQLXML(String) | 1 | 1
void | updateSQLXML(int;SQLXML) | 1 | 1
void | updateSQLXML(String;SQLXML) | 1 | 1
String | getNString(int) | 1 | 3
String | getNString(String) | 1 | 3
Reader | getNCharacterStream(int) | 1 | 3
Reader | getNCharacterStream(String) | 1 | 3
void | updateNCharacterStream(int;Reader) | 1 | 1
void | updateNCharacterStream(int;Reader;long) | 2 | 4
void | updateNCharacterStream(String;Reader) | 1 | 1
void | updateNCharacterStream(String;Reader;long) | 2 | 4
boolean | isWrapperFor(Class<?>) | 1 | 1
String | toString() | 1 | 1
void | patchCurrentRow(Value[]) | 6 | 9
Value | convertToUnknownValue(Object) | 1 | 2
void | checkUpdatable() | 2 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 10

Line start | Criticity class | Rule
--- | --- | ---
01047 | INFO | QC-JAV999996[01047] CPD de longueur 53 commencant en 3404 (ligne 1047) et 11304 (ligne 3207): " ) " ) ) ) ; Value v = get ( columnIndex ) ; return ( v == ValueNull . INSTANCE ) ? null : ( new JdbcClob ( conn , v , id ) ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public Clob
01562 | INFO | QC-JAV999996[01562] CPD de longueur 61 commencant en 5401 (ligne 1562) et 10974 (ligne 3102): ( " , " + ( quote ( x ) + " ) ; " ) ) ) ) ; } update ( columnIndex , ( ( x == null ) ? ( Value ) ValueNull . INSTANCE : ValueString . get ( x ) ) ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void updateString
01580 | INFO | QC-JAV999996[01580] CPD de longueur 67 commencant en 5485 (ligne 1580) et 11058 (ligne 3121): ( quote ( columnLabel ) + ( " , " + ( quote ( x ) + " ) ; " ) ) ) ) ; } update ( columnLabel , ( ( x == null ) ? ( Value ) ValueNull . INSTANCE : ValueString . get ( x ) ) ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void updateDate
01818 | INFO | QC-JAV999996[01818] CPD de longueur 54 commencant en 6390 (ligne 1818) et 7223 (ligne 2072): ( " , x , " + ( length + "L ) ; " ) ) ) ) ; } checkClosed ( ) ; Value v = conn . createBlob ( x , length ) ; update ( columnIndex , v ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void updateBinaryStream
01883 | INFO | QC-JAV999996[01883] CPD de longueur 57 commencant en 6611 (ligne 1883) et 7741 (ligne 2211): ( columnIndex + ( " , x , " + ( length + "L ) ; " ) ) ) ) ; } checkClosed ( ) ; Value v = conn . createClob ( x , length ) ; update ( columnIndex , v ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void updateCharacterStream
01883 | INFO | QC-JAV999996[01883] CPD de longueur 57 commencant en 6611 (ligne 1883) et 11749 (ligne 3366): ( columnIndex + ( " , x , " + ( length + "L ) ; " ) ) ) ) ; } checkClosed ( ) ; Value v = conn . createClob ( x , length ) ; update ( columnIndex , v ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void updateCharacterStream
01950 | INFO | QC-JAV999996[01950] CPD de longueur 60 commencant en 6804 (ligne 1950) et 7951 (ligne 2268): ( quote ( columnLabel ) + ( " , x , " + ( length + "L ) ; " ) ) ) ) ; } checkClosed ( ) ; Value v = conn . createClob ( x , length ) ; update ( columnLabel , v ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void updateObject
01950 | INFO | QC-JAV999996[01950] CPD de longueur 59 commencant en 6804 (ligne 1950) et 11858 (ligne 3400): ( quote ( columnLabel ) + ( " , x , " + ( length + "L ) ; " ) ) ) ) ; } checkClosed ( ) ; Value v = conn . createClob ( x , length ) ; update ( columnLabel , v ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void
02211 | INFO | QC-JAV999996[02211] CPD de longueur 57 commencant en 7741 (ligne 2211) et 11749 (ligne 3366): ( columnIndex + ( " , x , " + ( length + "L ) ; " ) ) ) ) ; } checkClosed ( ) ; Value v = conn . createClob ( x , length ) ; update ( columnIndex , v ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void updateClob
02268 | INFO | QC-JAV999996[02268] CPD de longueur 59 commencant en 7951 (ligne 2268) et 11858 (ligne 3400): ( quote ( columnLabel ) + ( " , x , " + ( length + "L ) ; " ) ) ) ) ; } checkClosed ( ) ; Value v = conn . createClob ( x , length ) ; update ( columnLabel , v ) ; } catch ( Exception e ) { throw logAndConvert ( e ) ; } } public void
02870 | MAJOR | QC-JAV000001[02870] Avoid declaring class instance within loop, performance impact
02874 | MAJOR | QC-JAV000001[02874] Avoid declaring class instance within loop, performance impact
02878 | MAJOR | QC-JAV000001[02878] Avoid declaring class instance within loop, performance impact

#### File lecode\jdbc\JdbcResultSetMetaData.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
TraceObjectResultSetMetaData | org.h2.jdbc.JdbcResultSetMetaData

Module / class or interface : org.h2.jdbc.JdbcResultSetMetaData

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcResultSetMetaData | JdbcResultSetMetaData(JdbcResultSet;JdbcPreparedStatement;ResultInterface;String;Trace;int) | 1 | 6
int | getColumnCount() | 1 | 4
String | getColumnLabel(int) | 1 | 4
String | getColumnName(int) | 1 | 4
int | getColumnType(int) | 1 | 5
String | getColumnTypeName(int) | 1 | 5
String | getSchemaName(int) | 1 | 5
String | getTableName(int) | 1 | 5
String | getCatalogName(int) | 1 | 4
boolean | isAutoIncrement(int) | 1 | 4
boolean | isCaseSensitive(int) | 1 | 4
boolean | isSearchable(int) | 1 | 4
boolean | isCurrency(int) | 1 | 4
int | isNullable(int) | 1 | 4
boolean | isSigned(int) | 1 | 4
boolean | isReadOnly(int) | 1 | 4
boolean | isWritable(int) | 1 | 4
boolean | isDefinitelyWritable(int) | 1 | 4
String | getColumnClassName(int) | 1 | 5
int | getPrecision(int) | 1 | 5
int | getScale(int) | 1 | 4
int | getColumnDisplaySize(int) | 1 | 4
void | checkClosed() | 3 | 2
void | checkColumnIndex(int) | 2 | 2
boolean | isWrapperFor(Class<?>) | 1 | 1
String | toString() | 1 | 1

#### File lecode\jdbc\JdbcSQLException.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
SQLException | org.h2.jdbc.JdbcSQLException

Module / class or interface : org.h2.jdbc.JdbcSQLException

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcSQLException | JdbcSQLException(String;String;String;int;Throwable;String) | 1 | 7
String | getMessage() | 1 | 1
String | getOriginalMessage() | 1 | 1
void | printStackTrace() | 1 | 1
void | printStackTrace(PrintWriter) | 4 | 2
void | printStackTrace(PrintStream) | 4 | 2
Throwable | getOriginalCause() | 1 | 1
String | getSQL() | 1 | 1
void | setSQL(String) | 2 | 3
void | buildMessage() | 2 | 4
String | toString() | 2 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00086 | INFO | QC-JAV999996[00086] CPD de longueur 85 commencant en 187 (ligne 86) et 276 (ligne 107): ) { if ( s != null ) { super . printStackTrace ( s ) ; SQLException next = getNextException ( ) ; for ( int i = 0 ; ( i _ 100 ) __ ( next != null ) ; i ++ ) { s . println ( next . toString ( ) ) ; next = next . getNextException ( ) ; } if ( next != null ) { s . println ( " ( truncated ) " ) ; } } } public void

#### File lecode\jdbc\JdbcSavepoint.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
TraceObjectSavepoint | org.h2.jdbc.JdbcSavepoint

Module / class or interface : org.h2.jdbc.JdbcSavepoint

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcSavepoint | JdbcSavepoint(JdbcConnection;int;String;Trace;int) | 1 | 4
void | release() | 1 | 1
String | getName(String;int) | 2 | 2
void | rollback() | 1 | 2
void | checkValid() | 2 | 1
int | getSavepointId() | 2 | 4
String | getSavepointName() | 2 | 4
String | toString() | 1 | 1

#### File lecode\jdbc\JdbcStatement.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
TraceObjectStatement | org.h2.jdbc.JdbcStatement

Module / class or interface : org.h2.jdbc.JdbcStatement

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcStatement | JdbcStatement(JdbcConnection;int;int;int;boolean) | 1 | 6
ResultSet | executeQuery(String) | 2 | 3
int | executeUpdate(String) | 1 | 3
int | executeUpdateInternal(String) | 1 | 7
boolean | execute(String) | 1 | 3
boolean | executeInternal(String) | 1 | 9
ResultSet | getResultSet() | 3 | 3
int | getUpdateCount() | 1 | 4
void | close() | 2 | 3
Connection | getConnection() | 1 | 2
SQLWarning | getWarnings() | 1 | 4
void | clearWarnings() | 1 | 3
void | setCursorName(String) | 1 | 3
void | setFetchDirection(int) | 1 | 3
int | getFetchDirection() | 1 | 4
int | getMaxRows() | 1 | 4
void | setMaxRows(int) | 2 | 4
void | setFetchSize(int) | 3 | 4
int | getFetchSize() | 1 | 4
int | getResultSetConcurrency() | 1 | 4
int | getResultSetType() | 1 | 4
int | getMaxFieldSize() | 1 | 4
void | setMaxFieldSize(int) | 1 | 3
void | setEscapeProcessing(boolean) | 2 | 3
void | cancel() | 2 | 4
int | getQueryTimeout() | 1 | 4
void | setQueryTimeout(int) | 2 | 4
void | addBatch(String) | 2 | 5
void | clearBatch() | 1 | 4
int[] | executeBatch() | 1 | 3
ResultSet | getGeneratedKeys() | 2 | 4
boolean | getMoreResults() | 1 | 5
boolean | getMoreResults(int) | 4 | 3
int | executeUpdate(String;int) | 2 | 2
int | executeUpdate(String;int[]) | 2 | 2
int | executeUpdate(String;String[]) | 2 | 2
boolean | execute(String;int) | 2 | 2
boolean | execute(String;int[]) | 2 | 2
boolean | execute(String;String[]) | 2 | 2
int | getResultSetHoldability() | 1 | 4
boolean | checkClosed() | 1 | 1
boolean | checkClosedForWrite() | 1 | 1
boolean | checkClosed(boolean) | 3 | 7
void | afterWriting() | 2 | 1
void | closeOldResultSet() | 2 | 2
void | setExecutingStatement(CommandInterface) | 3 | 4
int | getLastExecutedCommandType() | 1 | 1
boolean | isClosed() | 1 | 3
boolean | isWrapperFor(Class<?>) | 1 | 1
boolean | isPoolable() | 1 | 2
void | setPoolable(boolean) | 2 | 1
String | toString() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00617 | MAJOR | QC-JAV000001[00617] Avoid declaring class instance within loop, performance impact
00620 | MAJOR | QC-JAV000001[00620] Avoid declaring class instance within loop, performance impact
00621 | MAJOR | QC-JAV000001[00621] Avoid declaring class instance within loop, performance impact

#### File lecode\jdbcx\JdbcConnectionPool.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.jdbcx.JdbcConnectionPool

Module / class or interface : org.h2.jdbcx.JdbcConnectionPool

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcConnectionPool | JdbcConnectionPool(ConnectionPoolDataSource) | 2 | 1
JdbcConnectionPool | create(ConnectionPoolDataSource) | 1 | 1
JdbcConnectionPool | create(String;String;String) | 1 | 5
void | setMaxConnections(int) | 2 | 3
int | getMaxConnections() | 1 | 1
int | getLoginTimeout() | 1 | 1
void | setLoginTimeout(int) | 2 | 2
void | dispose() | 3 | 6
Connection | getConnection() | 2 | 3
Connection | getConnection(String;String) | 1 | 1
Connection | getConnectionNow() | 4 | 8
void | recycleConnection(PooledConnection) | 5 | 5
void | closeConnection(PooledConnection) | 2 | 1
void | connectionClosed(ConnectionEvent) | 1 | 3
void | connectionErrorOccurred(ConnectionEvent) | 1 | 0
int | getActiveConnections() | 1 | 1
PrintWriter | getLogWriter() | 1 | 1
void | setLogWriter(PrintWriter) | 1 | 1
boolean | isWrapperFor(Class<?>) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 2
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00087 | MAJOR | QC-JAVCWE390[00087] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00203 | MAJOR | QC-JAV000001[00203] Avoid declaring class instance within loop, performance impact
00203 | MAJOR | QC-JAVCWE390[00203] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\jdbcx\JdbcDataSource.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
TraceObjectXADataSource | org.h2.jdbcx.JdbcDataSource

Module / class or interface : org.h2.jdbcx.JdbcDataSource

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcDataSource | JdbcDataSource() | 1 | 3
void | readObject(ObjectInputStream) | 1 | 2
void | initFactory() | 1 | 1
int | getLoginTimeout() | 1 | 2
void | setLoginTimeout(int) | 1 | 2
PrintWriter | getLogWriter() | 1 | 2
void | setLogWriter(PrintWriter) | 1 | 2
Connection | getConnection() | 1 | 2
Connection | getConnection(String;String) | 2 | 2
JdbcConnection | getJdbcConnection(String;char[]) | 5 | 8
String | getURL() | 1 | 2
void | setURL(String) | 1 | 2
void | setPassword(String) | 1 | 2
void | setPasswordChars(char[]) | 2 | 2
char[] | convertToCharArray(String) | 1 | 1
String | convertToString(char[]) | 1 | 1
String | getPassword() | 1 | 2
String | getUser() | 1 | 2
void | setUser(String) | 1 | 2
String | getDescription() | 1 | 2
void | setDescription(String) | 1 | 2
Reference | getReference() | 1 | 9
XAConnection | getXAConnection() | 1 | 3
XAConnection | getXAConnection(String;String) | 2 | 3
PooledConnection | getPooledConnection() | 1 | 2
PooledConnection | getPooledConnection(String;String) | 2 | 2
boolean | isWrapperFor(Class<?>) | 1 | 1
String | toString() | 1 | 1

#### File lecode\jdbcx\JdbcDataSourceFactory.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.jdbcx.JdbcDataSourceFactory

Module / class or interface : org.h2.jdbcx.JdbcDataSourceFactory

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcDataSourceFactory | JdbcDataSourceFactory() | 1 | 1
Object | getObjectInstance(Object;Name;Context;Hashtable<?,?>) | 4 | 3
TraceSystem | getTraceSystem() | 2 | 1
Trace | getTrace() | 1 | 1

#### File lecode\jdbcx\JdbcXAConnection.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
TraceObjectXAConnection | org.h2.jdbcx.JdbcXAConnection

Module / class or interface : org.h2.jdbcx.JdbcXAConnection

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcXAConnection | JdbcXAConnection(JdbcDataSourceFactory;int;JdbcConnection) | 1 | 3
XAResource | getXAResource() | 1 | 2
void | close() | 3 | 4
Connection | getConnection() | 2 | 6
void | addConnectionEventListener(ConnectionEventListener) | 1 | 2
void | removeConnectionEventListener(ConnectionEventListener) | 1 | 2
void | closedHandle() | 2 | 7
int | getTransactionTimeout() | 1 | 2
boolean | setTransactionTimeout(int) | 1 | 2
boolean | isSameRM(XAResource) | 1 | 2
Xid[] | recover(int) | 2 | 14
int | prepare(Xid) | 3 | 10
void | forget(Xid) | 2 | 2
void | rollback(Xid) | 3 | 5
void | end(Xid;int) | 4 | 4
void | start(Xid;int) | 7 | 7
void | commit(Xid;boolean) | 4 | 6
void | addStatementEventListener(StatementEventListener) | 1 | 1
void | removeStatementEventListener(StatementEventListener) | 1 | 1
String | toString() | 1 | 1
XAException | convertException(SQLException) | 1 | 3
String | quoteFlags(int) | 11 | 12
void | checkOpen() | 2 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00140 | MAJOR | QC-JAV000001[00140] Avoid declaring class instance within loop, performance impact
00196 | MAJOR | QC-JAV000001[00196] Avoid declaring class instance within loop, performance impact
00198 | MAJOR | QC-JAV000001[00198] Avoid declaring class instance within loop, performance impact
00459 | MAJOR | QC-JAVCWE390[00459] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\jdbcx\JdbcXid.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
TraceObjectXid | org.h2.jdbcx.JdbcXid

Module / class or interface : org.h2.jdbcx.JdbcXid

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcXid | JdbcXid(JdbcDataSourceFactory;int;String) | 2 | 7
String | toString(Xid) | 1 | 3
int | getFormatId() | 1 | 2
byte[] | getBranchQualifier() | 1 | 2
byte[] | getGlobalTransactionId() | 1 | 2

#### File lecode\jmx\DatabaseInfo.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.jmx.DatabaseInfo

Module / class or interface : org.h2.jmx.DatabaseInfo

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DatabaseInfo | DatabaseInfo(Database) | 2 | 2
ObjectName | getObjectName(String;String) | 1 | 6
void | registerMBean(ConnectionInfo;Database) | 2 | 8
void | unregisterMBean(String) | 2 | 3
boolean | isExclusive() | 1 | 1
boolean | isReadOnly() | 1 | 1
String | getMode() | 1 | 1
boolean | isMultiThreaded() | 1 | 1
boolean | isMvcc() | 1 | 1
int | getLogMode() | 1 | 1
void | setLogMode(int) | 1 | 1
int | getTraceLevel() | 1 | 1
void | setTraceLevel(int) | 1 | 1
long | getFileWriteCountTotal() | 1 | 1
long | getFileWriteCount() | 1 | 1
long | getFileReadCount() | 1 | 1
long | getFileSize() | 1 | 1
int | getCacheSizeMax() | 1 | 1
void | setCacheSizeMax(int) | 2 | 1
int | getCacheSize() | 1 | 1
String | getVersion() | 1 | 1
String | listSettings() | 2 | 3
String | listSessions() | 4 | 8

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00180 | MAJOR | QC-JAV000001[00180] Avoid declaring class instance within loop, performance impact
00188 | MAJOR | QC-JAV000001[00188] Avoid declaring class instance within loop, performance impact
00190 | MAJOR | QC-JAV000001[00190] Avoid declaring class instance within loop, performance impact

#### File lecode\jmx\DatabaseInfoMBean.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.jmx.DatabaseInfoMBean

Module / class or interface : org.h2.jmx.DatabaseInfoMBean

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
boolean | isExclusive() | 1 | 1
boolean | isReadOnly() | 1 | 1
String | getMode() | 1 | 1
boolean | isMultiThreaded() | 1 | 1
boolean | isMvcc() | 1 | 1
int | getLogMode() | 1 | 1
void | setLogMode(int) | 1 | 1
long | getFileWriteCountTotal() | 1 | 1
long | getFileWriteCount() | 1 | 1
long | getFileReadCount() | 1 | 1
long | getFileSize() | 1 | 1
int | getCacheSizeMax() | 1 | 1
void | setCacheSizeMax(int) | 1 | 1
int | getCacheSize() | 1 | 1
String | getVersion() | 1 | 1
int | getTraceLevel() | 1 | 1
void | setTraceLevel(int) | 1 | 1
String | listSettings() | 1 | 1
String | listSessions() | 1 | 1

#### File lecode\jmx\DocumentedMBean.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
StandardMBean | org.h2.jmx.DocumentedMBean

Module / class or interface : org.h2.jmx.DocumentedMBean

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Properties | getResources() | 2 | 3
String | getDescription(MBeanInfo) | 1 | 2
String | getDescription(MBeanOperationInfo) | 1 | 2
String | getDescription(MBeanAttributeInfo) | 1 | 3
int | getImpact(MBeanOperationInfo) | 2 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1

Line start | Criticity class | Rule
--- | --- | ---
00041 | MAJOR | QC-JAVCWE390[00041] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\message\DbException.java 7 rule violations (XML file)

Ancestor class | Children classes
--- | ---
RuntimeException | org.h2.message.DbException

Module / class or interface : org.h2.message.DbException

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DbException | DbException(SQLException) | 1 | 1
String | translate(String;String) | 5 | 5
SQLException | getSQLException() | 1 | 1
int | getErrorCode() | 1 | 1
DbException | addSQL(String) | 3 | 5
DbException | get(int) | 1 | 1
DbException | get(int;String) | 1 | 1
DbException | get(int;Throwable;String) | 1 | 1
DbException | get(int;String) | 1 | 1
DbException | getSyntaxError(String;int) | 1 | 2
DbException | getSyntaxError(String;int;String) | 1 | 2
DbException | getUnsupportedException(String) | 1 | 1
DbException | getInvalidValueException(String;Object) | 1 | 1
RuntimeException | throwInternalError(String) | 1 | 3
RuntimeException | throwInternalError() | 1 | 1
SQLException | toSQLException(Exception) | 2 | 2
DbException | convert(Throwable) | 13 | 3
DbException | convertInvocation(InvocationTargetException;String) | 2 | 4
DbException | convertIOException(IOException;String) | 3 | 3
JdbcSQLException | getJdbcSQLException(int;Throwable;String) | 1 | 3
IOException | convertToIOException(Throwable) | 4 | 5
Object | getSource() | 1 | 1
void | setSource(Object) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 7

Line start | Criticity class | Rule
--- | --- | ---
00050 | MAJOR | QC-JAV000001[00050] Avoid declaring class instance within loop, performance impact
00050 | MAJOR | QC-JAV000001[00050] Avoid declaring class instance within loop, performance impact
00051 | MAJOR | QC-JAV000001[00051] Avoid declaring class instance within loop, performance impact
00051 | MAJOR | QC-JAV000001[00051] Avoid declaring class instance within loop, performance impact
00053 | MAJOR | QC-JAV000001[00053] Avoid declaring class instance within loop, performance impact
00054 | MAJOR | QC-JAV000001[00054] Avoid declaring class instance within loop, performance impact
00080 | MAJOR | QC-JAV000001[00080] Avoid declaring class instance within loop, performance impact

#### File lecode\message\Trace.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.message.Trace

Module / class or interface : org.h2.message.Trace

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Trace | Trace(TraceWriter;String) | 1 | 3
void | setLevel(int) | 1 | 1
boolean | isEnabled(int) | 2 | 2
boolean | isInfoEnabled() | 1 | 1
boolean | isDebugEnabled() | 1 | 1
void | error(Throwable;String) | 2 | 1
void | error(Throwable;String;Object) | 2 | 2
void | info(String) | 2 | 1
void | info(String;Object) | 2 | 2
void | info(Throwable;String) | 2 | 1
String | formatParams(ArrayList<?extendsParameterInterface>) | 5 | 6
void | infoSQL(String;String;int;long) | 6 | 14
void | debug(String;Object) | 2 | 2
void | debug(String) | 2 | 1
void | debug(Throwable;String) | 2 | 1
void | infoCode(String) | 2 | 1
void | debugCode(String) | 2 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00225 | MAJOR | QC-JAV000001[00225] Avoid declaring class instance within loop, performance impact

#### File lecode\message\TraceObject.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.message.TraceObject

Module / class or interface : org.h2.message.TraceObject

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setTrace(Trace;int;int) | 1 | 3
Trace | getTrace() | 1 | 1
int | getTraceId() | 1 | 1
String | getTraceObjectName() | 1 | 1
int | getNextId(int) | 1 | 1
boolean | isDebugEnabled() | 1 | 1
boolean | isInfoEnabled() | 1 | 1
void | debugCodeAssign(String;int;int;String) | 2 | 1
void | debugCodeCall(String) | 2 | 1
void | debugCodeCall(String;long) | 2 | 1
void | debugCodeCall(String;String) | 2 | 1
void | debugCode(String) | 2 | 1
String | quote(String) | 1 | 1
String | quoteTime(java.sql.Time) | 2 | 2
String | quoteTimestamp(java.sql.Timestamp) | 2 | 2
String | quoteDate(java.sql.Date) | 2 | 2
String | quoteBigDecimal(BigDecimal) | 2 | 2
String | quoteBytes(byte[]) | 2 | 2
String | quoteArray(String[]) | 1 | 1
String | quoteIntArray(int[]) | 1 | 1
String | quoteMap(Map<String,Class<?>>) | 3 | 3
SQLException | logAndConvert(Exception) | 5 | 4
SQLException | unsupported(String) | 1 | 2

#### File lecode\message\TraceSystem.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.message.TraceSystem

Module / class or interface : org.h2.message.TraceSystem

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TraceSystem | TraceSystem(String) | 1 | 2
void | updateLevel() | 1 | 1
void | setSysOut(PrintStream) | 1 | 1
void | traceThrowable(Throwable) | 2 | 2
Trace | getTrace(String) | 4 | 6
boolean | isEnabled(int) | 1 | 1
void | setFileName(String) | 1 | 1
void | setMaxFileSize(int) | 1 | 1
void | setLevelSystemOut(int) | 1 | 2
void | setLevelFile(int) | 3 | 4
int | getLevelFile() | 1 | 1
String | format(String;String) | 2 | 2
void | write(int;String;String;Throwable) | 5 | 1
void | writeFile(String;Throwable) | 5 | 3
void | logWritingError(Exception) | 2 | 6
boolean | openWriter() | 2 | 1
void | closeWriter() | 3 | 4
void | close() | 1 | 2
void | setName(String) | 1 | 0

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAVCWE392 | Failure to report error in status code | 1

Line start | Criticity class | Rule
--- | --- | ---
00201 | MAJOR | QC-JAVCWE392[00201] Failure to report error in status code (see http://cwe.mitre.org/data/definitions/392.html)
00323 | MAJOR | QC-JAVCWE390[00323] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\message\TraceWriter.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.message.TraceWriter

Module / class or interface : org.h2.message.TraceWriter

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setName(String) | 1 | 1
void | write(int;String;String;Throwable) | 1 | 1
boolean | isEnabled(int) | 1 | 1

#### File lecode\message\TraceWriterAdapter.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.message.TraceWriterAdapter

Module / class or interface : org.h2.message.TraceWriterAdapter

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setName(String) | 1 | 1
boolean | isEnabled(int) | 4 | 4
void | write(int;String;String;Throwable) | 7 | 0

#### File lecode\mvstore\ChangeCursor.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.ChangeCursor

Module / class or interface : org.h2.mvstore.ChangeCursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ChangeCursor | ChangeCursor(MVMap<K,V>;Page;Page) | 1 | 3
K | next() | 1 | 3
boolean | hasNext() | 2 | 5
void | remove() | 1 | 1
void | fetchNext() | 3 | 2
boolean | fetchNextKey() | 4 | 0
CursorPos | find(Page;K) | 4 | 4
CursorPos | fetchNext(CursorPos) | 4 | 3
CursorPos | min(CursorPos) | 2 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 6

Line start | Criticity class | Rule
--- | --- | ---
00064 | MAJOR | QC-JAV000001[00064] Avoid declaring class instance within loop, performance impact
00065 | MAJOR | QC-JAV000001[00065] Avoid declaring class instance within loop, performance impact
00066 | MAJOR | QC-JAV000001[00066] Avoid declaring class instance within loop, performance impact
00067 | MAJOR | QC-JAV000001[00067] Avoid declaring class instance within loop, performance impact
00195 | MAJOR | QC-JAV000001[00195] Avoid declaring class instance within loop, performance impact
00216 | MAJOR | QC-JAV000001[00216] Avoid declaring class instance within loop, performance impact

#### File lecode\mvstore\Chunk.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.Chunk

Module / class or interface : org.h2.mvstore.Chunk

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Chunk | Chunk(int) | 1 | 1
Chunk | fromHeader(ByteBuffer;long) | 2 | 15
void | writeHeader(ByteBuffer) | 1 | 7
Chunk | fromString(String) | 1 | 11
int | getFillRate() | 1 | 1
int | hashCode() | 1 | 1
boolean | equals(Object) | 1 | 1
String | asString() | 1 | 1

#### File lecode\mvstore\Cursor.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.Cursor

Module / class or interface : org.h2.mvstore.Cursor

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Cursor | Cursor(MVMap<K,?>;Page;K) | 1 | 3
K | next() | 1 | 4
boolean | hasNext() | 2 | 4
void | skip(long) | 3 | 6
void | remove() | 1 | 1
void | min(Page;K) | 4 | 3
void | fetchNext() | 4 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00108 | MAJOR | QC-JAV000001[00108] Avoid declaring class instance within loop, performance impact

#### File lecode\mvstore\CursorPos.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.CursorPos

Module / class or interface : org.h2.mvstore.CursorPos

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CursorPos | CursorPos(Page;int;CursorPos) | 1 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 1

Line start | Criticity class | Rule
--- | --- | ---
00022 | MAJOR | QC-JAVCWE493[00022] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)

#### File lecode\mvstore\DataUtils.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.DataUtils

Module / class or interface : org.h2.mvstore.DataUtils

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
int | getVarIntLen(int) | 8 | 3
int | getVarLongLen(long) | 2 | 3
int | readVarInt(ByteBuffer) | 2 | 3
int | readVarIntRest(ByteBuffer;int) | 4 | 11
long | readVarLong(ByteBuffer) | 4 | 8
void | writeVarInt(OutputStream;int) | 1 | 3
void | writeVarInt(ByteBuffer;int) | 1 | 3
void | writeStringData(ByteBuffer;String;int) | 6 | 3
String | readString(ByteBuffer;int) | 6 | 5
void | writeVarLong(ByteBuffer;long) | 1 | 3
void | writeVarLong(OutputStream;long) | 1 | 3
void | copyWithGap(Object;Object;int;int) | 3 | 2
void | copyExcept(Object;Object;int;int) | 3 | 2
void | readFully(FileChannel;long;ByteBuffer) | 3 | 4
void | writeFully(FileChannel;long;ByteBuffer) | 2 | 4
int | encodeLength(int) | 2 | 8
int | getPageChunkId(long) | 1 | 1
int | getPageMaxLength(long) | 2 | 3
int | getPageOffset(long) | 1 | 1
int | getPageType(long) | 1 | 1
long | getPagePos(int;int;int;int) | 1 | 5
short | getCheckValue(int) | 1 | 1
StringBuilder | appendMap(StringBuilder;HashMap<String,?>) | 2 | 4
void | appendMap(StringBuilder;String;Object) | 5 | 6
HashMap<String,String> | parseMap(String) | 2 | 9
int | getFletcher32(byte[];int) | 3 | 8

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 2

Line start | Criticity class | Rule
--- | --- | ---
00170 | INFO | QC-JAV999996[00170] CPD de longueur 53 commencant en 576 (ligne 170) et 1078 (ligne 257): { while ( ( x _ ( ~ 0x7f ) ) != 0 ) { out . write ( ( byte ) ( 0x80 | ( x _ 0x7f ) ) ) ; x ___= 7 ; } out . write ( ( byte ) x ) ; } public static void writeVarInt
00184 | INFO | QC-JAV999996[00184] CPD de longueur 53 commencant en 636 (ligne 184) et 1016 (ligne 243): { while ( ( x _ ( ~ 0x7f ) ) != 0 ) { buff . put ( ( byte ) ( 0x80 | ( x _ 0x7f ) ) ) ; x ___= 7 ; } buff . put ( ( byte ) x ) ; } public static void writeStringData
00488 | MAJOR | QC-JAV000001[00488] Avoid declaring class instance within loop, performance impact
00489 | MAJOR | QC-JAV000001[00489] Avoid declaring class instance within loop, performance impact

#### File lecode\mvstore\MVMap.java 5 rule violations (XML file)

Ancestor class | Children classes
--- | ---
AbstractMap<K,V>ConcurrentMap<K,V> | org.h2.mvstore.MVMap

Module / class or interface : org.h2.mvstore.MVMap

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
MVMap | MVMap(DataType;DataType) | 1 | 3
void | open(MVStore;HashMap<String,String>) | 1 | 4
V | put(K;V) | 2 | 16
Object | put(Page;long;Object;Object) | 6 | 15
K | firstKey() | 1 | 1
K | lastKey() | 1 | 1
K | getKey(long) | 5 | 8
List<K> | keyList() | 1 | 1
long | getKeyIndex(K) | 6 | 6
K | getFirstLast(boolean) | 3 | 4
K | higherKey(K) | 1 | 1
K | ceilingKey(K) | 1 | 1
K | floorKey(K) | 1 | 1
K | lowerKey(K) | 1 | 1
K | getMinMax(K;boolean;boolean) | 2 | 3
K | getMinMax(Page;K;boolean;boolean) | 13 | 7
V | get(Object) | 1 | 2
Object | binarySearch(Page;Object) | 5 | 5
boolean | containsKey(Object) | 1 | 1
Page | getPage(K) | 1 | 1
Page | binarySearchPage(Page;Object) | 5 | 5
void | clear() | 1 | 3
void | removeMap() | 2 | 4
void | close() | 1 | 4
boolean | isClosed() | 1 | 1
V | remove(Object) | 1 | 6
V | putIfAbsent(K;V) | 2 | 3
boolean | remove(Object;Object) | 2 | 4
boolean | replace(K;V;V) | 2 | 4
V | replace(K;V) | 2 | 4
Object | remove(Page;long;Object) | 10 | 12
void | newRoot(Page) | 3 | 2
boolean | hasUnsavedChanges() | 1 | 1
int | compare(Object;Object) | 1 | 1
DataType | getKeyType() | 1 | 1
DataType | getValueType() | 1 | 1
Page | readPage(long) | 1 | 1
void | setRootPos(long;long) | 1 | 2
Cursor<K> | keyIterator(K) | 1 | 2
Iterator<K> | changeIterator(long) | 1 | 3
Set<Map.Entry<K,V>> | entrySet() | 2 | 3
Set<K> | keySet() | 1 | 4
Page | getRoot() | 1 | 1
String | getName() | 1 | 1
MVStore | getStore() | 1 | 1
int | getId() | 1 | 1
void | rollbackTo(long) | 4 | 4
void | removeAllOldVersions() | 1 | 1
void | removeUnusedOldVersions() | 3 | 7
void | setReadOnly(boolean) | 1 | 1
boolean | isReadOnly() | 1 | 1
void | checkOpen() | 2 | 1
void | checkWrite() | 2 | 2
int | hashCode() | 1 | 1
boolean | equals(Object) | 1 | 1
int | size() | 1 | 2
long | getSize() | 1 | 1
long | getCreateVersion() | 1 | 1
void | removePage(Page) | 1 | 1
MVMap<K,V> | openVersion(long) | 6 | 10
MVMap<K,V> | openReadOnly() | 1 | 9
int | searchRoot(long) | 5 | 4
long | getVersion() | 1 | 1
int | getChildPageCount(Page) | 1 | 1
String | getType() | 1 | 1
String | asString() | 3 | 8

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 4
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00391 | INFO | QC-JAV999996[00391] CPD de longueur 64 commencant en 1738 (ligne 391) et 1866 (ligne 429): ( Page p , Object key ) { int x = p . binarySearch ( key ) ; if ( ! p . isLeaf ( ) ) { if ( x _ 0 ) { x = ( ( - x ) - 1 ) ; } else { x ++ ; } p = p . getChildPage ( x ) ; return binarySearch
00182 | MAJOR | QC-JAV000001[00182] Avoid declaring class instance within loop, performance impact
00275 | MAJOR | QC-JAV000001[00275] Avoid declaring class instance within loop, performance impact
00362 | MAJOR | QC-JAV000001[00362] Avoid declaring class instance within loop, performance impact
00789 | MAJOR | QC-JAV000001[00789] Avoid declaring class instance within loop, performance impact

#### File lecode\mvstore\MVStore.java 25 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.MVStore

Module / class or interface : org.h2.mvstore.MVStore

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
MVStore | MVStore(HashMap<String,Object>) | 5 | 13
MVStore | open(String) | 1 | 5
MVMap<String,String> | getMetaMap() | 1 | 1
MVMap<String,String> | getMetaMap(long) | 2 | 6
Chunk | getChunkForVersion(long) | 5 | 3
void | removeMap(String) | 1 | 2
DataType | getDataType(Class<?>) | 3 | 4
void | markChanged(MVMap<?,?>) | 1 | 1
void | open() | 6 | 13
void | readMeta() | 3 | 9
void | readFileHeader() | 2 | 7
void | writeFileHeader() | 2 | 18
RuntimeException | convert(Exception) | 1 | 1
void | close() | 2 | 0
Chunk | getChunk(long) | 1 | 1
long | incrementVersion() | 1 | 1
long | store() | 15 | 47
void | applyFreedChunks() | 3 | 1
void | shrinkFileIfPossible(int) | 4 | 5
long | getFileLengthUsed() | 3 | 4
long | allocateChunk(long) | 6 | 11
boolean | hasUnsavedChanges() | 4 | 2
Chunk | readChunkHeader(long) | 1 | 6
boolean | compact(int) | 15 | 23
void | copyLive(Chunk;ArrayList<Chunk>) | 3 | 14
MVMap<?,?> | getMap(int) | 4 | 2
Page | readPage(MVMap<?,?>;long) | 3 | 8
void | removePage(long) | 4 | 11
void | log(String) | 1 | 0
void | setPageSize(int) | 1 | 1
int | getPageSize() | 1 | 1
Compressor | getCompressor() | 1 | 1
boolean | getReuseSpace() | 1 | 1
void | setReuseSpace(boolean) | 1 | 1
int | getRetainChunk() | 1 | 1
void | setRetainChunk(int) | 1 | 1
void | setRetainVersion(long) | 1 | 1
long | getRetainVersion() | 1 | 1
boolean | isKnownVersion(long) | 8 | 10
int | getUnsavedPageCount() | 1 | 1
void | registerUnsavedPage() | 1 | 1
int | getStoreVersion() | 1 | 2
void | setStoreVersion(int) | 1 | 1
void | rollbackTo(long) | 10 | 9
void | revertTemp() | 2 | 3
long | getCurrentVersion() | 1 | 1
int | getFileWriteCount() | 1 | 1
int | getFileReadCount() | 1 | 1
String | getFileName() | 1 | 1
Map<String,String> | getFileHeader() | 1 | 1
FileChannel | getFile() | 1 | 1
String | toString() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 24

Line start | Criticity class | Rule
--- | --- | ---
00325 | MAJOR | QC-JAV000001[00325] Avoid declaring class instance within loop, performance impact
00419 | MAJOR | QC-JAV000001[00419] Avoid declaring class instance within loop, performance impact
00423 | MAJOR | QC-JAV000001[00423] Avoid declaring class instance within loop, performance impact
00443 | MAJOR | QC-JAV000001[00443] Avoid declaring class instance within loop, performance impact
00580 | MAJOR | QC-JAV000001[00580] Avoid declaring class instance within loop, performance impact
00591 | MAJOR | QC-JAV000001[00591] Avoid declaring class instance within loop, performance impact
00612 | MAJOR | QC-JAV000001[00612] Avoid declaring class instance within loop, performance impact
00670 | MAJOR | QC-JAV000001[00670] Avoid declaring class instance within loop, performance impact
00671 | MAJOR | QC-JAV000001[00671] Avoid declaring class instance within loop, performance impact
00671 | MAJOR | QC-JAV000001[00671] Avoid declaring class instance within loop, performance impact
00847 | MAJOR | QC-JAV000001[00847] Avoid declaring class instance within loop, performance impact
00864 | CRITICAL | QC-JAVCWE476[00864] The argument chunk is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk
00882 | MAJOR | QC-JAV000001[00882] Avoid declaring class instance within loop, performance impact
00882 | MAJOR | QC-JAV000001[00882] Avoid declaring class instance within loop, performance impact
00888 | MAJOR | QC-JAV000001[00888] Avoid declaring class instance within loop, performance impact
00891 | MAJOR | QC-JAV000001[00891] Avoid declaring class instance within loop, performance impact
00892 | MAJOR | QC-JAV000001[00892] Avoid declaring class instance within loop, performance impact
00900 | MAJOR | QC-JAV000001[00900] Avoid declaring class instance within loop, performance impact
00903 | MAJOR | QC-JAV000001[00903] Avoid declaring class instance within loop, performance impact
00891 | MAJOR | QC-JAV000001[00891] Avoid declaring class instance within loop, performance impact
00892 | MAJOR | QC-JAV000001[00892] Avoid declaring class instance within loop, performance impact
00900 | MAJOR | QC-JAV000001[00900] Avoid declaring class instance within loop, performance impact
00903 | MAJOR | QC-JAV000001[00903] Avoid declaring class instance within loop, performance impact
01092 | MAJOR | QC-JAV000001[01092] Avoid declaring class instance within loop, performance impact
01187 | MAJOR | QC-JAV000001[01187] Avoid declaring class instance within loop, performance impact

#### File lecode\mvstore\MVStoreBuilder.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.MVStoreBuilder

Module / class or interface : org.h2.mvstore.MVStoreBuilder

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
MVStoreBuilder | fileBased(String) | 1 | 1
MVStoreBuilder | inMemory() | 1 | 1
MVStoreBuilder | set(String;Object) | 2 | 3
MVStoreBuilder | fileName(String) | 1 | 1
MVStoreBuilder | readOnly() | 1 | 1
MVStoreBuilder | cacheSizeMB(int) | 1 | 1
MVStoreBuilder | with(DataTypeFactory) | 1 | 1
MVStore | open() | 1 | 3
String | toString() | 1 | 1
MVStoreBuilder | fromString(String) | 1 | 4

#### File lecode\mvstore\MVStoreTool.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.MVStoreTool

Module / class or interface : org.h2.mvstore.MVStoreTool

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | main(String) | 3 | 2
void | dump(String;PrintWriter) | 4 | 21

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00037 | MAJOR | QC-JAV000001[00037] Avoid declaring class instance within loop, performance impact
00090 | MAJOR | QC-JAV000001[00090] Avoid declaring class instance within loop, performance impact
00120 | MAJOR | QC-JAVCWE390[00120] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\mvstore\Page.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.Page

Module / class or interface : org.h2.mvstore.Page

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Page | Page(MVMap<?,?>;long) | 1 | 2
Page | createEmpty(MVMap<?,?>;long) | 1 | 1
Page | create(MVMap<?,?>;long;int;Object[];Object[];long[];Page[];long[];long;int;int) | 1 | 11
Page | read(FileChannel;MVMap<?,?>;long;long;long) | 2 | 13
Object | getKey(int) | 1 | 1
Page | getChildPage(int) | 1 | 2
long | getChildPagePos(int) | 1 | 1
Object | getValue(int) | 1 | 1
int | getKeyCount() | 1 | 1
boolean | isLeaf() | 1 | 1
long | getPos() | 1 | 1
String | toString() | 5 | 5
Page | copyOnWrite(long) | 2 | 6
int | binarySearch(Object) | 6 | 8
Page | split(int) | 1 | 1
Page | splitLeaf(int) | 1 | 20
Page | splitNode(int) | 3 | 33
long | getTotalCount() | 5 | 2
long | getCounts(int) | 1 | 1
void | setChild(int;Page) | 5 | 5
void | setKey(int;Object) | 3 | 6
Object | setValue(int;Object) | 2 | 7
void | removeAllRecursive() | 3 | 1
void | insertLeaf(int;Object;Object) | 4 | 14
void | insertNode(int;Object;Page) | 1 | 21
void | remove(int) | 8 | 25
void | read(ByteBuffer;int;int;int) | 11 | 36
void | write(Chunk;ByteBuffer) | 9 | 29
int | getMaxLengthTempRecursive() | 3 | 2
int | getMaxLength() | 5 | 8
long | writeUnsavedRecursive(Chunk;ByteBuffer) | 3 | 3
long | getVersion() | 1 | 1
int | getChildPageCount() | 1 | 1
boolean | equals(Object) | 4 | 3
int | hashCode() | 1 | 1
int | getMemory() | 3 | 1
int | calculateMemory() | 5 | 6
void | setVersion(long) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 5

Line start | Criticity class | Rule
--- | --- | ---
00500 | MAJOR | QC-JAV000001[00500] Avoid declaring class instance within loop, performance impact
00690 | MAJOR | QC-JAV000001[00690] Avoid declaring class instance within loop, performance impact
00711 | MAJOR | QC-JAV000001[00711] Avoid declaring class instance within loop, performance impact
00725 | CRITICAL | QC-JAVCWE476[00725] The argument chunk is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk
00789 | MAJOR | QC-JAV000001[00789] Avoid declaring class instance within loop, performance impact
00829 | MAJOR | QC-JAV000001[00829] Avoid declaring class instance within loop, performance impact

#### File lecode\mvstore\StreamStore.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.StreamStore

Module / class or interface : org.h2.mvstore.StreamStore

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
StreamStore | StreamStore(Map<Long,byte[]>) | 1 | 1
Map<Long,byte[]> | getMap() | 1 | 1
void | setNextKey(long) | 1 | 1
long | getNextKey() | 1 | 1
void | setMinBlockSize(int) | 1 | 1
int | getMinBlockSize() | 1 | 1
void | setMaxBlockSize(int) | 1 | 1
long | getMaxBlockSize() | 1 | 1
byte[] | put(InputStream) | 4 | 4
boolean | put(ByteArrayOutputStream;InputStream;int) | 5 | 13
ByteArrayOutputStream | putIndirectId(ByteArrayOutputStream) | 1 | 6
long | writeBlock(byte[]) | 1 | 3
long | getAndIncrementNextKey() | 2 | 6
void | remove(byte[]) | 4 | 1
long | length(byte[]) | 1 | 3
boolean | isInPlace(byte[]) | 2 | 4
InputStream | get(byte[]) | 1 | 1
byte[] | getBlock(long) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00386 | MAJOR | QC-JAV000001[00386] Avoid declaring class instance within loop, performance impact

#### File lecode\mvstore\cache\CacheLIRS.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
AbstractMap<K,V>Map<K,V> | org.h2.mvstore.cache.CacheLIRS

Module / class or interface : org.h2.mvstore.cache.CacheLIRS

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CacheLIRS | CacheLIRS(long;int;int;int) | 2 | 9
void | clear() | 2 | 4
Entry<K,V> | find(Object) | 1 | 2
boolean | containsKey(Object) | 1 | 2
V | peek(K) | 1 | 2
V | put(K;V;int) | 1 | 2
V | put(K;V) | 1 | 1
V | remove(Object) | 1 | 2
int | getMemory(K) | 1 | 2
V | get(Object) | 1 | 2
Segment<K,V> | getSegment(int) | 1 | 2
int | getHash(Object) | 1 | 5
long | getUsedMemory() | 2 | 3
void | setMaxMemory(long) | 4 | 3
void | setAverageMemory(int) | 4 | 2
int | getAverageMemory() | 1 | 1
long | getMaxMemory() | 1 | 1
Set<Map.Entry<K,V>> | entrySet() | 2 | 3
Set<K> | keySet() | 2 | 3
int | sizeNonResident() | 2 | 3
int | sizeMapArray() | 2 | 3
int | sizeHot() | 2 | 3
int | size() | 2 | 3
List<K> | keys(boolean;boolean) | 2 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 4

Line start | Criticity class | Rule
--- | --- | ---
00086 | MAJOR | QC-JAV000001[00086] Avoid declaring class instance within loop, performance impact
00086 | MAJOR | QC-JAV000001[00086] Avoid declaring class instance within loop, performance impact
00726 | MAJOR | QC-JAV000001[00726] Avoid declaring class instance within loop, performance impact
00757 | MAJOR | QC-JAV000001[00757] Avoid declaring class instance within loop, performance impact

#### File lecode\mvstore\cache\CacheLongKeyLIRS.java 5 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.cache.CacheLongKeyLIRS

Module / class or interface : org.h2.mvstore.cache.CacheLongKeyLIRS

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CacheLongKeyLIRS | CacheLongKeyLIRS(long;int;int;int) | 2 | 9
void | clear() | 2 | 4
Entry<V> | find(long) | 1 | 2
boolean | containsKey(long) | 1 | 2
V | peek(long) | 1 | 2
V | put(long;V;int) | 1 | 2
V | put(long;V) | 1 | 1
V | remove(long) | 1 | 2
int | getMemory(long) | 1 | 2
V | get(long) | 1 | 2
Segment<V> | getSegment(int) | 1 | 2
int | getHash(long) | 1 | 5
long | getUsedMemory() | 2 | 3
void | setMaxMemory(long) | 4 | 3
void | setAverageMemory(int) | 4 | 2
int | getAverageMemory() | 1 | 1
long | getMaxMemory() | 1 | 1
Set<Map.Entry<Long,V>> | entrySet() | 2 | 3
Set<Long> | keySet() | 2 | 3
int | sizeNonResident() | 2 | 3
int | sizeMapArray() | 2 | 3
int | sizeHot() | 2 | 3
int | size() | 2 | 3
List<Long> | keys(boolean;boolean) | 2 | 3
List<V> | values() | 3 | 3
boolean | isEmpty() | 1 | 1
boolean | containsValue(Object) | 1 | 1
Map<Long,V> | getMap() | 3 | 3
void | putAll(Map<Long,?extendsV>) | 2 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 5

Line start | Criticity class | Rule
--- | --- | ---
00084 | MAJOR | QC-JAV000001[00084] Avoid declaring class instance within loop, performance impact
00399 | MAJOR | QC-JAV000001[00399] Avoid declaring class instance within loop, performance impact
00434 | MAJOR | QC-JAV000001[00434] Avoid declaring class instance within loop, performance impact
00786 | MAJOR | QC-JAV000001[00786] Avoid declaring class instance within loop, performance impact
00817 | MAJOR | QC-JAV000001[00817] Avoid declaring class instance within loop, performance impact

#### File lecode\mvstore\cache\FilePathCache.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
FilePathWrapper | org.h2.mvstore.cache.FilePathCache

Module / class or interface : org.h2.mvstore.cache.FilePathCache

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FileChannel | wrap(FileChannel) | 1 | 1
FileChannel | open(String) | 1 | 1
String | getScheme() | 1 | 1

#### File lecode\mvstore\rtree\MVRTreeMap.java 23 rule violations (XML file)

Ancestor class | Children classes
--- | ---
MVMap<SpatialKey,V> | org.h2.mvstore.rtree.MVRTreeMap

Module / class or interface : org.h2.mvstore.rtree.MVRTreeMap

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
MVRTreeMap | MVRTreeMap(int;DataType) | 1 | 2
V | get(Object) | 1 | 2
Iterator<SpatialKey> | findIntersectingKeys(SpatialKey) | 1 | 2
Iterator<SpatialKey> | findContainedKeys(SpatialKey) | 1 | 2
boolean | contains(Page;int;Object) | 1 | 1
Object | get(Page;Object) | 5 | 1
Page | getPage(SpatialKey) | 1 | 1
Page | getPage(Page;Object) | 5 | 1
Object | remove(Page;long;Object) | 5 | 5
Object | getBounds(Page) | 2 | 5
V | put(SpatialKey;V) | 1 | 1
void | add(SpatialKey;V) | 1 | 1
Object | putOrAdd(SpatialKey;V;boolean) | 4 | 9
Object | set(Page;long;Object;Object) | 5 | 1
void | add(Page;long;Object;Object) | 7 | 19
Page | split(Page;long) | 1 | 1
Page | splitLinear(Page;long) | 6 | 18
Page | splitQuadratic(Page;long) | 7 | 16
Page | newPage(boolean;long) | 1 | 4
void | move(Page;Page;int) | 3 | 6
void | addNodeKeys(ArrayList<SpatialKey>;Page) | 3 | 0
boolean | isQuadraticSplit() | 1 | 1
void | setQuadraticSplit(boolean) | 1 | 1
int | getChildPageCount(Page) | 1 | 1
String | getType() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 23

Line start | Criticity class | Rule
--- | --- | ---
00103 | MAJOR | QC-JAV000001[00103] Avoid declaring class instance within loop, performance impact
00127 | MAJOR | QC-JAV000001[00127] Avoid declaring class instance within loop, performance impact
00160 | MAJOR | QC-JAV000001[00160] Avoid declaring class instance within loop, performance impact
00161 | MAJOR | QC-JAV000001[00161] Avoid declaring class instance within loop, performance impact
00175 | MAJOR | QC-JAV000001[00175] Avoid declaring class instance within loop, performance impact
00254 | MAJOR | QC-JAV000001[00254] Avoid declaring class instance within loop, performance impact
00255 | MAJOR | QC-JAV000001[00255] Avoid declaring class instance within loop, performance impact
00289 | MAJOR | QC-JAV000001[00289] Avoid declaring class instance within loop, performance impact
00341 | MAJOR | QC-JAV000001[00341] Avoid declaring class instance within loop, performance impact
00364 | MAJOR | QC-JAV000001[00364] Avoid declaring class instance within loop, performance impact
00369 | MAJOR | QC-JAV000001[00369] Avoid declaring class instance within loop, performance impact
00369 | MAJOR | QC-JAV000001[00369] Avoid declaring class instance within loop, performance impact
00389 | MAJOR | QC-JAV000001[00389] Avoid declaring class instance within loop, performance impact
00389 | MAJOR | QC-JAV000001[00389] Avoid declaring class instance within loop, performance impact
00444 | MAJOR | QC-JAV000001[00444] Avoid declaring class instance within loop, performance impact
00500 | MAJOR | QC-JAV000001[00500] Avoid declaring class instance within loop, performance impact
00500 | MAJOR | QC-JAV000001[00500] Avoid declaring class instance within loop, performance impact
00517 | MAJOR | QC-JAV000001[00517] Avoid declaring class instance within loop, performance impact
00517 | MAJOR | QC-JAV000001[00517] Avoid declaring class instance within loop, performance impact
00527 | MAJOR | QC-JAV000001[00527] Avoid declaring class instance within loop, performance impact
00527 | MAJOR | QC-JAV000001[00527] Avoid declaring class instance within loop, performance impact
00517 | MAJOR | QC-JAV000001[00517] Avoid declaring class instance within loop, performance impact
00517 | MAJOR | QC-JAV000001[00517] Avoid declaring class instance within loop, performance impact

#### File lecode\mvstore\rtree\SpatialKey.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.rtree.SpatialKey

Module / class or interface : org.h2.mvstore.rtree.SpatialKey

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SpatialKey | SpatialKey(long;float) | 1 | 2
float | min(int) | 1 | 1
void | setMin(int;float) | 1 | 1
float | max(int) | 1 | 1
void | setMax(int;float) | 1 | 1
long | getId() | 1 | 1
String | toString() | 3 | 6
int | hashCode() | 1 | 1
boolean | equals(Object) | 2 | 3

#### File lecode\mvstore\rtree\SpatialType.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.rtree.SpatialType

Module / class or interface : org.h2.mvstore.rtree.SpatialType

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SpatialType | SpatialType(int) | 2 | 2
SpatialType | fromString(String) | 1 | 1
int | compare(Object;Object) | 1 | 3
boolean | equals(Object;Object) | 1 | 3
int | getMaxLength(Object) | 1 | 1
int | getMemory(Object) | 1 | 1
void | write(ByteBuffer;Object) | 5 | 9
Object | read(ByteBuffer) | 4 | 10
String | asString() | 1 | 1
boolean | isOverlap(Object;Object) | 3 | 5
void | increaseBounds(Object;Object) | 2 | 6
float | getAreaIncrease(Object;Object) | 2 | 17
float | getCombinedArea(Object;Object) | 2 | 9
boolean | contains(Object;Object) | 3 | 5
boolean | isInside(Object;Object) | 3 | 5
Object | createBoundingBox(Object) | 2 | 7
int[] | getExtremes(ArrayList<Object>) | 11 | 27
void | increaseMaxInnerBounds(Object;Object) | 2 | 6

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00137 | INFO | QC-JAV999996[00137] CPD de longueur 59 commencant en 668 (ligne 137) et 1692 (ligne 297): ( Object bounds , Object add ) { SpatialKey b = ( SpatialKey ) bounds ; SpatialKey a = ( SpatialKey ) add ; for ( int i = 0 ; i _ dimensions ; i ++ ) { b . setMin ( i , Math . min ( b . min ( i ) , a . min
00262 | MAJOR | QC-JAV000001[00262] Avoid declaring class instance within loop, performance impact
00287 | MAJOR | QC-JAV000001[00287] Avoid declaring class instance within loop, performance impact
00287 | MAJOR | QC-JAV000001[00287] Avoid declaring class instance within loop, performance impact

#### File lecode\mvstore\type\DataType.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.type.DataType

Module / class or interface : org.h2.mvstore.type.DataType

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
int | compare(Object;Object) | 1 | 1
int | getMaxLength(Object) | 1 | 1
int | getMemory(Object) | 1 | 1
void | write(ByteBuffer;Object) | 1 | 1
Object | read(ByteBuffer) | 1 | 1
String | asString() | 1 | 1

#### File lecode\mvstore\type\DataTypeFactory.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.type.DataTypeFactory

Module / class or interface : org.h2.mvstore.type.DataTypeFactory

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setParent(DataTypeFactory) | 1 | 1
DataType | buildDataType(String) | 1 | 1
String | getDataType(Class<?>) | 1 | 1

#### File lecode\mvstore\type\ObjectType.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.type.ObjectType

Module / class or interface : org.h2.mvstore.type.ObjectType

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
int | compare(Object;Object) | 1 | 1
int | getMaxLength(Object) | 1 | 1
int | getMemory(Object) | 1 | 1
void | write(ByteBuffer;Object) | 1 | 1
AutoDetectDataType | newType(int) | 18 | 18
Object | read(ByteBuffer) | 4 | 5
String | asString() | 1 | 1
int | getTypeId(Object) | 14 | 4
AutoDetectDataType | switchType(Object) | 2 | 4
int | compareNotNull(char[];char[]) | 4 | 7
int | compareNotNull(int[];int[]) | 4 | 7
int | compareNotNull(long[];long[]) | 4 | 7

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00934 | INFO | QC-JAV999996[00934] CPD de longueur 58 commencant en 4608 (ligne 934) et 5194 (ligne 1033): toByteArray ( ) ; DataUtils . writeVarInt ( buff , bytes . length ) ; buff . put ( bytes ) ; } } } else { super . write ( buff , obj ) ; } } @ Override public Object read ( ByteBuffer buff , int tag ) { switch ( tag ) { case TAG_BIG_INTEGER_0

#### File lecode\mvstore\type\ObjectTypeFactory.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.type.ObjectTypeFactory

Module / class or interface : org.h2.mvstore.type.ObjectTypeFactory

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setParent(DataTypeFactory) | 1 | 0
DataType | buildDataType(String) | 4 | 3
String | getDataType(Class<?>) | 2 | 2

#### File lecode\mvstore\type\StringType.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.mvstore.type.StringType

Module / class or interface : org.h2.mvstore.type.StringType

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
int | compare(Object;Object) | 1 | 1
int | getMaxLength(Object) | 1 | 1
int | getMemory(Object) | 1 | 1
String | read(ByteBuffer) | 1 | 2
void | write(ByteBuffer;Object) | 1 | 4
String | asString() | 1 | 1

#### File lecode\result\LocalResult.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.LocalResult

Module / class or interface : org.h2.result.LocalResult

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
LocalResult | LocalResult() | 1 | 0
LocalResult | LocalResult(Session;Expression[];int) | 3 | 7
LocalResult | read(Session;ResultSet;int) | 2 | 6
LocalResult | createShallowCopy(Session) | 4 | 21
void | setSortOrder(SortOrder) | 1 | 1
void | setDistinct() | 1 | 2
void | setRandomAccess() | 1 | 1
void | removeDistinct(Value[]) | 4 | 5
boolean | containsDistinct(Value[]) | 4 | 4
void | reset() | 3 | 2
Value[] | currentRow() | 1 | 1
boolean | next() | 3 | 3
int | getRowId() | 1 | 1
void | addRow(Value[]) | 6 | 4
void | addRowsToDisk() | 1 | 2
int | getVisibleColumnCount() | 1 | 1
void | done() | 7 | 5
int | getRowCount() | 1 | 1
void | setLimit(int) | 1 | 1
void | applyLimit() | 6 | 1
boolean | needToClose() | 1 | 1
void | close() | 2 | 3
String | getAlias(int) | 1 | 1
String | getTableName(int) | 1 | 1
String | getSchemaName(int) | 1 | 1
int | getDisplaySize(int) | 1 | 1
String | getColumnName(int) | 1 | 1
int | getColumnType(int) | 1 | 1
long | getColumnPrecision(int) | 1 | 1
int | getNullable(int) | 1 | 1
boolean | isAutoIncrement(int) | 1 | 1
int | getColumnScale(int) | 1 | 1
void | setOffset(int) | 1 | 1
void | applyOffset() | 8 | 1
String | toString() | 1 | 1
boolean | isClosed() | 1 | 1
int | getFetchSize() | 1 | 1
void | setFetchSize(int) | 1 | 0

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 5
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00269 | INFO | QC-JAV999996[00269] CPD de longueur 56 commencant en 1229 (ligne 269) et 1425 (ligne 312): external == null ) { if ( randomAccess ) { Database db = session . getDatabase ( ) ; if ( ! db . isReadOnly ( ) ) { external = ( new ResultTempTable ( session , sort ) ) ; } } else { external = ( new ResultDiskBuffer ( session , sort , values
00088 | MAJOR | QC-JAV000001[00088] Avoid declaring class instance within loop, performance impact
00196 | MAJOR | QC-JAV000001[00196] Avoid declaring class instance within loop, performance impact
00200 | MAJOR | QC-JAV000001[00200] Avoid declaring class instance within loop, performance impact
00308 | MAJOR | QC-JAV000001[00308] Avoid declaring class instance within loop, performance impact
00314 | MAJOR | QC-JAV000001[00314] Avoid declaring class instance within loop, performance impact

#### File lecode\result\ResultColumn.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.ResultColumn

Module / class or interface : org.h2.result.ResultColumn

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ResultColumn | ResultColumn(Transfer) | 1 | 10
void | writeColumn(Transfer;ResultInterface;int) | 1 | 10

#### File lecode\result\ResultDiskBuffer.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.ResultDiskBuffer

Module / class or interface : org.h2.result.ResultDiskBuffer

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ResultDiskBuffer | ResultDiskBuffer(Session;SortOrder;int) | 3 | 15
ResultDiskBuffer | ResultDiskBuffer(ResultDiskBuffer) | 6 | 13
ResultDiskBuffer | createShallowCopy() | 2 | 3
int | addRows(ArrayList<Value[]>) | 9 | 19
void | done() | 1 | 2
void | reset() | 4 | 2
void | readRow(ResultDiskTape) | 3 | 13
Value[] | next() | 1 | 1
Value[] | nextUnsorted() | 3 | 4
Value[] | nextSorted() | 4 | 8
int | compareTapes(ResultDiskTape;ResultDiskTape) | 1 | 3
void | closeChild() | 2 | 2
void | finalize() | 1 | 1
void | close() | 6 | 3
int | removeRow(Value[]) | 1 | 1
boolean | contains(Value[]) | 1 | 1
int | addRow(Value[]) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 2
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 4

Line start | Criticity class | Rule
--- | --- | ---
00089 | CRITICAL | QC-JAVCWE476[00089] The argument parent is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk
00096 | MAJOR | QC-JAV000001[00096] Avoid declaring class instance within loop, performance impact
00137 | MAJOR | QC-JAV000001[00137] Avoid declaring class instance within loop, performance impact
00137 | MAJOR | QC-JAV000001[00137] Avoid declaring class instance within loop, performance impact
00190 | CRITICAL | QC-JAVCWE476[00190] The argument tape is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk
00227 | MAJOR | QC-JAV000001[00227] Avoid declaring class instance within loop, performance impact

#### File lecode\result\ResultExternal.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.ResultExternal

Module / class or interface : org.h2.result.ResultExternal

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | reset() | 1 | 1
Value[] | next() | 1 | 1
int | addRow(Value[]) | 1 | 1
int | addRows(ArrayList<Value[]>) | 1 | 1
void | done() | 1 | 1
void | close() | 1 | 1
int | removeRow(Value[]) | 1 | 1
boolean | contains(Value[]) | 1 | 1
ResultExternal | createShallowCopy() | 1 | 1

#### File lecode\result\ResultInterface.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.ResultInterface

Module / class or interface : org.h2.result.ResultInterface

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | reset() | 1 | 1
Value[] | currentRow() | 1 | 1
boolean | next() | 1 | 1
int | getRowId() | 1 | 1
int | getVisibleColumnCount() | 1 | 1
int | getRowCount() | 1 | 1
boolean | needToClose() | 1 | 1
void | close() | 1 | 1
String | getAlias(int) | 1 | 1
String | getSchemaName(int) | 1 | 1
String | getTableName(int) | 1 | 1
String | getColumnName(int) | 1 | 1
int | getColumnType(int) | 1 | 1
long | getColumnPrecision(int) | 1 | 1
int | getColumnScale(int) | 1 | 1
int | getDisplaySize(int) | 1 | 1
boolean | isAutoIncrement(int) | 1 | 1
int | getNullable(int) | 1 | 1
void | setFetchSize(int) | 1 | 1
int | getFetchSize() | 1 | 1

#### File lecode\result\ResultRemote.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.ResultRemote

Module / class or interface : org.h2.result.ResultRemote

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ResultRemote | ResultRemote(SessionRemote;Transfer;int;int;int) | 2 | 13
String | getAlias(int) | 1 | 1
String | getSchemaName(int) | 1 | 1
String | getTableName(int) | 1 | 1
String | getColumnName(int) | 1 | 1
int | getColumnType(int) | 1 | 1
long | getColumnPrecision(int) | 1 | 1
int | getColumnScale(int) | 1 | 1
int | getDisplaySize(int) | 1 | 1
boolean | isAutoIncrement(int) | 1 | 1
int | getNullable(int) | 1 | 1
void | reset() | 2 | 6
Value[] | currentRow() | 1 | 1
boolean | next() | 3 | 4
int | getRowId() | 1 | 1
int | getVisibleColumnCount() | 1 | 1
int | getRowCount() | 1 | 1
void | sendClose() | 2 | 6
void | close() | 1 | 2
void | remapIfOld() | 3 | 2
void | fetchRows(boolean) | 4 | 4
String | toString() | 1 | 1
int | getFetchSize() | 1 | 1
void | setFetchSize(int) | 1 | 1
boolean | needToClose() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00204 | MAJOR | QC-JAV000001[00204] Avoid declaring class instance within loop, performance impact
00206 | MAJOR | QC-JAV000001[00206] Avoid declaring class instance within loop, performance impact
00206 | MAJOR | QC-JAV000001[00206] Avoid declaring class instance within loop, performance impact

#### File lecode\result\ResultTarget.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.ResultTarget

Module / class or interface : org.h2.result.ResultTarget

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | addRow(Value[]) | 1 | 1
int | getRowCount() | 1 | 1

#### File lecode\result\ResultTempTable.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.ResultTempTable

Module / class or interface : org.h2.result.ResultTempTable

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ResultTempTable | ResultTempTable(Session;SortOrder) | 1 | 26
ResultTempTable | ResultTempTable(ResultTempTable) | 1 | 6
ResultExternal | createShallowCopy() | 3 | 4
int | removeRow(Value[]) | 2 | 5
boolean | contains(Value[]) | 1 | 1
int | addRow(Value[]) | 2 | 4
int | addRows(ArrayList<Value[]>) | 3 | 3
void | closeChild() | 2 | 1
void | close() | 5 | 3
void | dropTable() | 3 | 5
void | done() | 1 | 0
Value[] | next() | 2 | 4
void | reset() | 1 | 1
Row | convertToRow(Value[]) | 1 | 2
Cursor | find(Row) | 2 | 6

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00070 | CRITICAL | QC-JAVCWE476[00070] The argument parent is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk
00199 | MAJOR | QC-JAV000001[00199] Avoid declaring class instance within loop, performance impact
00201 | MAJOR | QC-JAV000001[00201] Avoid declaring class instance within loop, performance impact

#### File lecode\result\Row.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.Row

Module / class or interface : org.h2.result.Row

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Row | Row(Value[];int) | 1 | 2
Row | getCopy() | 1 | 7
void | setKeyAndVersion(SearchRow) | 1 | 2
int | getVersion() | 1 | 1
void | setVersion(int) | 1 | 1
long | getKey() | 1 | 1
void | setKey(long) | 1 | 1
Value | getValue(int) | 1 | 1
int | getByteCount(Data) | 2 | 3
void | setValue(int;Value) | 3 | 2
boolean | isEmpty() | 1 | 1
int | getColumnCount() | 1 | 1
int | getMemory() | 4 | 6
String | toString() | 5 | 6
void | setDeleted(boolean) | 1 | 1
void | setSessionId(int) | 1 | 1
int | getSessionId() | 1 | 1
void | commit() | 1 | 1
boolean | isDeleted() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1
MINOR | QC-JAVCWE582 | Array declared public, final and static | 1

Line start | Criticity class | Rule
--- | --- | ---
00021 | MINOR | QC-JAVCWE582[00021] Array declared public, final and static (see http://cwe.mitre.org/data/definitions/582.html)
00115 | MAJOR | QC-JAV000001[00115] Avoid declaring class instance within loop, performance impact

#### File lecode\result\RowList.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.RowList

Module / class or interface : org.h2.result.RowList

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
RowList | RowList(Session) | 3 | 3
void | writeRow(Data;Row) | 4 | 13
void | writeAllRows() | 4 | 17
void | initBuffer(Data) | 1 | 2
void | flushBuffer(Data) | 1 | 5
void | add(Row) | 2 | 4
void | reset() | 3 | 4
boolean | hasNext() | 1 | 1
Row | readRow(Data) | 6 | 19
Row | next() | 4 | 5
int | size() | 1 | 1
void | invalidateCache() | 1 | 1
void | close() | 2 | 4

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00061 | MAJOR | QC-JAV000001[00061] Avoid declaring class instance within loop, performance impact
00104 | MAJOR | QC-JAV000001[00104] Avoid declaring class instance within loop, performance impact
00180 | MAJOR | QC-JAV000001[00180] Avoid declaring class instance within loop, performance impact

#### File lecode\result\SearchRow.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.SearchRow

Module / class or interface : org.h2.result.SearchRow

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
int | getColumnCount() | 1 | 1
Value | getValue(int) | 1 | 1
void | setValue(int;Value) | 1 | 1
void | setKeyAndVersion(SearchRow) | 1 | 1
int | getVersion() | 1 | 1
void | setKey(long) | 1 | 1
long | getKey() | 1 | 1
int | getMemory() | 1 | 1

#### File lecode\result\SimpleRow.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.SimpleRow

Module / class or interface : org.h2.result.SimpleRow

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SimpleRow | SimpleRow(Value[]) | 1 | 1
int | getColumnCount() | 1 | 1
long | getKey() | 1 | 1
void | setKey(long) | 1 | 1
void | setKeyAndVersion(SearchRow) | 1 | 2
int | getVersion() | 1 | 1
void | setValue(int;Value) | 1 | 1
Value | getValue(int) | 1 | 1
String | toString() | 3 | 7
int | getMemory() | 3 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00075 | MAJOR | QC-JAV000001[00075] Avoid declaring class instance within loop, performance impact

#### File lecode\result\SimpleRowValue.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.SimpleRowValue

Module / class or interface : org.h2.result.SimpleRowValue

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SimpleRowValue | SimpleRowValue(int) | 1 | 1
void | setKeyAndVersion(SearchRow) | 1 | 2
int | getVersion() | 1 | 1
int | getColumnCount() | 1 | 1
long | getKey() | 1 | 1
void | setKey(long) | 1 | 1
Value | getValue(int) | 1 | 1
void | setValue(int;Value) | 1 | 2
String | toString() | 1 | 1
int | getMemory() | 1 | 1

#### File lecode\result\SortOrder.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.SortOrder

Module / class or interface : org.h2.result.SortOrder

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SortOrder | SortOrder(Database;int[];int[]) | 1 | 3
String | getSQL(Expression[];int) | 8 | 5
int | compareNull(boolean;int) | 5 | 4
int | compare(Value[];Value[]) | 4 | 9
void | sort(ArrayList<Value[]>) | 1 | 1
int[] | getIndexes() | 1 | 1
int[] | getSortTypes() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00131 | MAJOR | QC-JAV000001[00131] Avoid declaring class instance within loop, performance impact
00132 | MAJOR | QC-JAV000001[00132] Avoid declaring class instance within loop, performance impact

#### File lecode\result\UpdatableRow.java 11 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.result.UpdatableRow

Module / class or interface : org.h2.result.UpdatableRow

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
UpdatableRow | UpdatableRow(JdbcConnection;ResultInterface) | 14 | 27
boolean | isIndexUsable(ArrayList<String>) | 4 | 2
boolean | isUpdatable() | 1 | 1
int | findColumnIndex(String) | 3 | 4
int | getColumnIndex(String) | 2 | 3
void | appendColumnList(StatementBuilder;boolean) | 3 | 6
void | appendKeyCondition(StatementBuilder) | 2 | 4
void | setKey(PreparedStatement;int;Value[]) | 3 | 6
void | appendTableName(StatementBuilder) | 2 | 2
Value[] | readRow(Value[]) | 3 | 15
void | deleteRow(Value[]) | 2 | 7
void | updateRow(Value[];Value[]) | 4 | 14
void | insertRow(Value[]) | 7 | 17

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 11

Line start | Criticity class | Rule
--- | --- | ---
00051 | MAJOR | QC-JAV000001[00051] Avoid declaring class instance within loop, performance impact
00052 | MAJOR | QC-JAV000001[00052] Avoid declaring class instance within loop, performance impact
00089 | MAJOR | QC-JAV000001[00089] Avoid declaring class instance within loop, performance impact
00110 | MAJOR | QC-JAV000001[00110] Avoid declaring class instance within loop, performance impact
00143 | MAJOR | QC-JAV000001[00143] Avoid declaring class instance within loop, performance impact
00163 | MAJOR | QC-JAV000001[00163] Avoid declaring class instance within loop, performance impact
00182 | MAJOR | QC-JAV000001[00182] Avoid declaring class instance within loop, performance impact
00184 | MAJOR | QC-JAV000001[00184] Avoid declaring class instance within loop, performance impact
00277 | MAJOR | QC-JAV000001[00277] Avoid declaring class instance within loop, performance impact
00306 | MAJOR | QC-JAV000001[00306] Avoid declaring class instance within loop, performance impact
00316 | MAJOR | QC-JAV000001[00316] Avoid declaring class instance within loop, performance impact

#### File lecode\schema\Constant.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaObjectBase | org.h2.schema.Constant

Module / class or interface : org.h2.schema.Constant

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Constant | Constant(Schema;int;String) | 1 | 1
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getDropSQL() | 1 | 1
String | getCreateSQL() | 1 | 1
int | getType() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 2
void | checkRename() | 1 | 0
void | setValue(Value) | 1 | 2
ValueExpression | getValue() | 1 | 1

#### File lecode\schema\Schema.java 14 rule violations (XML file)

Ancestor class | Children classes
--- | ---
DbObjectBase | org.h2.schema.Schema

Module / class or interface : org.h2.schema.Schema

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Schema | Schema(Database;int;String;User;boolean) | 1 | 10
boolean | canDrop() | 1 | 1
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getDropSQL() | 1 | 1
String | getCreateSQL() | 2 | 2
int | getType() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 17
void | checkRename() | 1 | 0
User | getOwner() | 1 | 1
HashMap<String,SchemaObject> | getMap(int) | 8 | 17
void | add(SchemaObject) | 3 | 6
void | rename(SchemaObject;String) | 4 | 8
Table | findTableOrView(Session;String) | 2 | 3
Index | findIndex(Session;String) | 2 | 3
TriggerObject | findTrigger(String) | 1 | 1
Sequence | findSequence(String) | 1 | 1
Constraint | findConstraint(Session;String) | 2 | 3
Constant | findConstant(String) | 1 | 1
FunctionAlias | findFunction(String) | 1 | 1
void | freeUniqueName(String) | 2 | 0
String | getUniqueName(DbObject;HashMap<String,?extendsSchemaObject>;String) | 3 | 4
String | getUniqueConstraintName(Session;Table) | 3 | 4
String | getUniqueIndexName(Session;Table;String) | 3 | 4
Table | getTableOrView(Session;String) | 4 | 2
Index | getIndex(String) | 2 | 3
Constraint | getConstraint(String) | 2 | 3
Constant | getConstant(String) | 2 | 3
Sequence | getSequence(String) | 2 | 3
ArrayList<SchemaObject> | getAll() | 1 | 9
ArrayList<SchemaObject> | getAll(int) | 1 | 2
ArrayList<Table> | getAllTablesAndViews() | 1 | 1
void | remove(SchemaObject) | 2 | 5
Table | createTable(CreateTableData) | 3 | 2
TableLink | createTableLink(int;String;String;String;String;String;String;String;boolean;boolean) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 14

Line start | Criticity class | Rule
--- | --- | ---
00110 | MAJOR | QC-JAV000001[00110] Avoid declaring class instance within loop, performance impact
00110 | MAJOR | QC-JAV000001[00110] Avoid declaring class instance within loop, performance impact
00114 | MAJOR | QC-JAV000001[00114] Avoid declaring class instance within loop, performance impact
00114 | MAJOR | QC-JAV000001[00114] Avoid declaring class instance within loop, performance impact
00118 | MAJOR | QC-JAV000001[00118] Avoid declaring class instance within loop, performance impact
00118 | MAJOR | QC-JAV000001[00118] Avoid declaring class instance within loop, performance impact
00122 | MAJOR | QC-JAV000001[00122] Avoid declaring class instance within loop, performance impact
00122 | MAJOR | QC-JAV000001[00122] Avoid declaring class instance within loop, performance impact
00126 | MAJOR | QC-JAV000001[00126] Avoid declaring class instance within loop, performance impact
00126 | MAJOR | QC-JAV000001[00126] Avoid declaring class instance within loop, performance impact
00130 | MAJOR | QC-JAV000001[00130] Avoid declaring class instance within loop, performance impact
00130 | MAJOR | QC-JAV000001[00130] Avoid declaring class instance within loop, performance impact
00134 | MAJOR | QC-JAV000001[00134] Avoid declaring class instance within loop, performance impact
00134 | MAJOR | QC-JAV000001[00134] Avoid declaring class instance within loop, performance impact

#### File lecode\schema\SchemaObject.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DbObject | org.h2.schema.SchemaObject

Module / class or interface : org.h2.schema.SchemaObject

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Schema | getSchema() | 1 | 1
boolean | isHidden() | 1 | 1

#### File lecode\schema\SchemaObjectBase.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
DbObjectBaseSchemaObject | org.h2.schema.SchemaObjectBase

Module / class or interface : org.h2.schema.SchemaObjectBase

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | initSchemaObjectBase(Schema;int;String;String) | 1 | 2
Schema | getSchema() | 1 | 1
String | getSQL() | 1 | 1
boolean | isHidden() | 1 | 1

#### File lecode\schema\Sequence.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
SchemaObjectBase | org.h2.schema.Sequence

Module / class or interface : org.h2.schema.Sequence

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Sequence | Sequence(Schema;int;String;boolean) | 1 | 2
void | setStartValue(long) | 1 | 2
boolean | getBelongsToTable() | 1 | 1
long | getIncrement() | 1 | 1
void | setIncrement(long) | 2 | 2
String | getDropSQL() | 2 | 2
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getCreateSQL() | 4 | 6
long | getNext(Session) | 2 | 5
void | flushWithoutMargin() | 2 | 2
void | flush(Session) | 3 | 5
void | close() | 1 | 1
int | getType() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 2
void | checkRename() | 1 | 0
long | getCurrentValue() | 1 | 1
void | setBelongsToTable(boolean) | 1 | 1
void | setCacheSize(long) | 1 | 1
long | getCacheSize() | 1 | 1

#### File lecode\schema\TriggerObject.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
SchemaObjectBase | org.h2.schema.TriggerObject

Module / class or interface : org.h2.schema.TriggerObject

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TriggerObject | TriggerObject(Schema;int;String;Table) | 1 | 3
void | setBefore(boolean) | 1 | 1
void | setInsteadOf(boolean) | 1 | 1
void | load() | 2 | 8
void | setTriggerClassName(String;boolean) | 2 | 2
void | fire(Session;int;boolean) | 4 | 9
Object[] | convertToObjectList(Row) | 3 | 7
boolean | fireRow(Session;Row;Row;boolean;boolean) | 15 | 23
void | setTypeMask(int) | 1 | 1
void | setRowBased(boolean) | 1 | 1
void | setQueueSize(int) | 1 | 1
int | getQueueSize() | 1 | 1
void | setNoWait(boolean) | 1 | 1
boolean | isNoWait() | 1 | 1
void | setOnRollback(boolean) | 1 | 1
String | getDropSQL() | 1 | 1
String | getCreateSQLForCopy(Table;String) | 8 | 12
String | getTypeNameList() | 6 | 12
String | getCreateSQL() | 1 | 1
int | getType() | 1 | 1
void | removeChildrenAndResources(Session) | 2 | 6
void | checkRename() | 1 | 0
Table | getTable() | 1 | 1
boolean | isBefore() | 1 | 1
String | getTriggerClassName() | 1 | 1
void | close() | 2 | 1
boolean | isSelectTrigger() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00204 | MAJOR | QC-JAV000001[00204] Avoid declaring class instance within loop, performance impact
00206 | MAJOR | QC-JAV000001[00206] Avoid declaring class instance within loop, performance impact

#### File lecode\security\AES.java 50 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.security.AES

Module / class or interface : org.h2.security.AES

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
int | rot8(int) | 1 | 1
int | xtime(int) | 1 | 1
int | mul(int[];int[];int;int) | 1 | 1
int | getDec(int) | 1 | 1
void | setKey(byte[]) | 4 | 27
void | encrypt(byte[];int;int) | 4 | 3
void | decrypt(byte[];int;int) | 4 | 3
void | encryptBlock(byte[];byte[];int) | 1 | 61
void | decryptBlock(byte[];byte[];int) | 1 | 61
int | getKeyLength() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 50

Line start | Criticity class | Rule
--- | --- | ---
00058 | INFO | QC-JAV999996[00058] CPD de longueur 62 commencant en 491 (ligne 58) et 515 (ligne 60): | ( y __ 7 ) ) _ 255 ) ; x ^= y ; y = ( ( ( y __ 1 ) | ( y __ 7 ) ) _ 255 ) ; x ^= y ; y = ( ( ( y __ 1 ) | ( y __ 7 ) ) _ 255 ) ; x ^= y
00102 | INFO | QC-JAV999996[00102] CPD de longueur 51 commencant en 1243 (ligne 102) et 1407 (ligne 114): decKey [ ( d ++ ) ] = encKey [ ( e ++ ) ] ; decKey [ ( d ++ ) ] = encKey [ ( e ++ ) ] ; decKey [ ( d ++ ) ] = encKey [ ( e ++ ) ] ; decKey [ (
00120 | INFO | QC-JAV999996[00120] CPD de longueur 62 commencant en 1470 (ligne 120) et 1546 (ligne 131): byte [ ] bytes , int off , int len ) { if ( SysProperties . CHECK ) { if ( ( len % ALIGN ) != 0 ) { DbException . throwInternalError ( "unaligned len " + len ) ; } } for ( int i = off ; i _ ( off + len ) ; i += 16 ) { encryptBlock
00144 | INFO | QC-JAV999996[00144] CPD de longueur 296 commencant en 1643 (ligne 144) et 4793 (ligne 200): int x0 = ( ( in [ off ] __ 24 ) | ( ( ( in [ ( off + 1 ) ] _ 255 ) __ 16 ) | ( ( ( in [ ( off + 2 ) ] _ 255 ) __ 8 ) | ( in [ ( off + 3 ) ] _ 255 ) ) ) ) ^ k [ 0 ] ; int x1 = ( ( in [ ( off + 4 ) ] __ 24 ) | ( ( ( in [ ( off + 5 ) ] _ 255 ) __ 16 ) | ( ( ( in [ ( off + 6 ) ] _ 255 ) __ 8 ) | ( in [ ( off + 7 ) ] _ 255 ) ) ) ) ^ k [ 1 ] ; int x2 = ( ( in [ ( off + 8 ) ] __ 24 ) | ( ( ( in [ ( off + 9 ) ] _ 255 ) __ 16 ) | ( ( ( in [ ( off + 10 ) ] _ 255 ) __ 8 ) | ( in [ ( off + 11 ) ] _ 255 ) ) ) ) ^ k [ 2 ] ; int x3 = ( ( in [ ( off + 12 ) ] __ 24 ) | ( ( ( in [ ( off + 13 ) ] _ 255 ) __ 16 ) | ( ( ( in [ ( off + 14 ) ] _ 255 ) __ 8 ) | ( in [ ( off + 15 ) ] _ 255 ) ) ) ) ^ k [ 3 ] ; int y0 = FT0
00148 | INFO | QC-JAV999996[00148] CPD de longueur 52 commencant en 1940 (ligne 148) et 2440 (ligne 156): ( ( x0 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x1 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x2 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x3 _ 255 ) ] ^ k [ 4
00148 | INFO | QC-JAV999996[00148] CPD de longueur 52 commencant en 1940 (ligne 148) et 2944 (ligne 164): ( ( x0 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x1 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x2 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x3 _ 255 ) ] ^ k [ 4
00148 | INFO | QC-JAV999996[00148] (Nb max de CPD atteint :3) CPD de longueur 52 commencant en 1940 (ligne 148) et 3448 (ligne 172): ( ( x0 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x1 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x2 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x3 _ 255 ) ] ^ k [ 4
00149 | INFO | QC-JAV999996[00149] CPD de longueur 52 commencant en 2002 (ligne 149) et 2503 (ligne 157): ( ( x1 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x2 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x3 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x0 _ 255 ) ] ^ k [ 5
00149 | INFO | QC-JAV999996[00149] CPD de longueur 52 commencant en 2002 (ligne 149) et 3007 (ligne 165): ( ( x1 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x2 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x3 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x0 _ 255 ) ] ^ k [ 5
00149 | INFO | QC-JAV999996[00149] (Nb max de CPD atteint :3) CPD de longueur 52 commencant en 2002 (ligne 149) et 3511 (ligne 173): ( ( x1 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x2 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x3 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x0 _ 255 ) ] ^ k [ 5
00150 | INFO | QC-JAV999996[00150] CPD de longueur 52 commencant en 2064 (ligne 150) et 2566 (ligne 158): ( ( x2 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x3 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x0 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x1 _ 255 ) ] ^ k [ 6
00150 | INFO | QC-JAV999996[00150] CPD de longueur 52 commencant en 2064 (ligne 150) et 3070 (ligne 166): ( ( x2 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x3 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x0 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x1 _ 255 ) ] ^ k [ 6
00150 | INFO | QC-JAV999996[00150] (Nb max de CPD atteint :3) CPD de longueur 52 commencant en 2064 (ligne 150) et 3574 (ligne 174): ( ( x2 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x3 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x0 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x1 _ 255 ) ] ^ k [ 6
00151 | INFO | QC-JAV999996[00151] CPD de longueur 52 commencant en 2126 (ligne 151) et 2629 (ligne 159): ( ( x3 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x0 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x1 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x2 _ 255 ) ] ^ k [ 7
00151 | INFO | QC-JAV999996[00151] CPD de longueur 52 commencant en 2126 (ligne 151) et 3133 (ligne 167): ( ( x3 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x0 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x1 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x2 _ 255 ) ] ^ k [ 7
00151 | INFO | QC-JAV999996[00151] (Nb max de CPD atteint :3) CPD de longueur 52 commencant en 2126 (ligne 151) et 3637 (ligne 175): ( ( x3 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x0 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x1 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x2 _ 255 ) ] ^ k [ 7
00152 | INFO | QC-JAV999996[00152] CPD de longueur 52 commencant en 2188 (ligne 152) et 2692 (ligne 160): ( ( y0 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y1 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y2 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y3 _ 255 ) ] ^ k [ 8
00152 | INFO | QC-JAV999996[00152] CPD de longueur 52 commencant en 2188 (ligne 152) et 3196 (ligne 168): ( ( y0 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y1 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y2 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y3 _ 255 ) ] ^ k [ 8
00152 | INFO | QC-JAV999996[00152] (Nb max de CPD atteint :3) CPD de longueur 52 commencant en 2188 (ligne 152) et 3700 (ligne 176): ( ( y0 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y1 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y2 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y3 _ 255 ) ] ^ k [ 8
00152 | INFO | QC-JAV999996[00152] CPD de longueur 62 commencant en 2241 (ligne 152) et 2745 (ligne 160): ) ) ) ) ; x1 = ( FT0 [ ( ( y1 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y2 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y3 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y0 _ 255 ) ] ^ k [ 9
00152 | INFO | QC-JAV999996[00152] CPD de longueur 62 commencant en 2241 (ligne 152) et 3249 (ligne 168): ) ) ) ) ; x1 = ( FT0 [ ( ( y1 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y2 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y3 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y0 _ 255 ) ] ^ k [ 9
00152 | INFO | QC-JAV999996[00152] (Nb max de CPD atteint :3) CPD de longueur 62 commencant en 2241 (ligne 152) et 3753 (ligne 176): ) ) ) ) ; x1 = ( FT0 [ ( ( y1 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y2 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y3 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y0 _ 255 ) ] ^ k [ 9
00153 | INFO | QC-JAV999996[00153] CPD de longueur 62 commencant en 2304 (ligne 153) et 2808 (ligne 161): ) ) ) ) ; x2 = ( FT0 [ ( ( y2 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y3 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y0 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y1 _ 255 ) ] ^ k [ 10
00153 | INFO | QC-JAV999996[00153] CPD de longueur 62 commencant en 2304 (ligne 153) et 3312 (ligne 169): ) ) ) ) ; x2 = ( FT0 [ ( ( y2 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y3 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y0 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y1 _ 255 ) ] ^ k [ 10
00153 | INFO | QC-JAV999996[00153] (Nb max de CPD atteint :3) CPD de longueur 62 commencant en 2304 (ligne 153) et 3816 (ligne 177): ) ) ) ) ; x2 = ( FT0 [ ( ( y2 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y3 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y0 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y1 _ 255 ) ] ^ k [ 10
00154 | INFO | QC-JAV999996[00154] CPD de longueur 62 commencant en 2367 (ligne 154) et 2871 (ligne 162): ) ) ) ) ; x3 = ( FT0 [ ( ( y3 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y0 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y1 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y2 _ 255 ) ] ^ k [ 11
00154 | INFO | QC-JAV999996[00154] CPD de longueur 62 commencant en 2367 (ligne 154) et 3375 (ligne 170): ) ) ) ) ; x3 = ( FT0 [ ( ( y3 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y0 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y1 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y2 _ 255 ) ] ^ k [ 11
00154 | INFO | QC-JAV999996[00154] (Nb max de CPD atteint :3) CPD de longueur 62 commencant en 2367 (ligne 154) et 3879 (ligne 178): ) ) ) ) ; x3 = ( FT0 [ ( ( y3 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y0 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y1 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y2 _ 255 ) ] ^ k [ 11
00155 | INFO | QC-JAV999996[00155] CPD de longueur 62 commencant en 2430 (ligne 155) et 2934 (ligne 163): ) ) ) ) ; y0 = ( FT0 [ ( ( x0 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x1 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x2 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x3 _ 255 ) ] ^ k [ 12
00155 | INFO | QC-JAV999996[00155] CPD de longueur 62 commencant en 2430 (ligne 155) et 3438 (ligne 171): ) ) ) ) ; y0 = ( FT0 [ ( ( x0 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x1 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x2 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x3 _ 255 ) ] ^ k [ 12
00155 | INFO | QC-JAV999996[00155] (Nb max de CPD atteint :3) CPD de longueur 62 commencant en 2430 (ligne 155) et 3942 (ligne 179): ) ) ) ) ; y0 = ( FT0 [ ( ( x0 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x1 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x2 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x3 _ 255 ) ] ^ k [ 12
00156 | INFO | QC-JAV999996[00156] CPD de longueur 62 commencant en 2493 (ligne 156) et 2997 (ligne 164): ) ) ) ) ; y1 = ( FT0 [ ( ( x1 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x2 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x3 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x0 _ 255 ) ] ^ k [ 13
00156 | INFO | QC-JAV999996[00156] CPD de longueur 62 commencant en 2493 (ligne 156) et 3501 (ligne 172): ) ) ) ) ; y1 = ( FT0 [ ( ( x1 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x2 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x3 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x0 _ 255 ) ] ^ k [ 13
00156 | INFO | QC-JAV999996[00156] (Nb max de CPD atteint :3) CPD de longueur 62 commencant en 2493 (ligne 156) et 4005 (ligne 180): ) ) ) ) ; y1 = ( FT0 [ ( ( x1 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x2 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x3 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x0 _ 255 ) ] ^ k [ 13
00157 | INFO | QC-JAV999996[00157] CPD de longueur 62 commencant en 2556 (ligne 157) et 3060 (ligne 165): ) ) ) ) ; y2 = ( FT0 [ ( ( x2 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x3 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x0 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x1 _ 255 ) ] ^ k [ 14
00157 | INFO | QC-JAV999996[00157] CPD de longueur 62 commencant en 2556 (ligne 157) et 3564 (ligne 173): ) ) ) ) ; y2 = ( FT0 [ ( ( x2 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x3 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x0 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x1 _ 255 ) ] ^ k [ 14
00157 | INFO | QC-JAV999996[00157] (Nb max de CPD atteint :3) CPD de longueur 62 commencant en 2556 (ligne 157) et 4068 (ligne 181): ) ) ) ) ; y2 = ( FT0 [ ( ( x2 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x3 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x0 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x1 _ 255 ) ] ^ k [ 14
00158 | INFO | QC-JAV999996[00158] CPD de longueur 62 commencant en 2619 (ligne 158) et 3123 (ligne 166): ) ) ) ) ; y3 = ( FT0 [ ( ( x3 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x0 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x1 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x2 _ 255 ) ] ^ k [ 15
00158 | INFO | QC-JAV999996[00158] CPD de longueur 62 commencant en 2619 (ligne 158) et 3627 (ligne 174): ) ) ) ) ; y3 = ( FT0 [ ( ( x3 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x0 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x1 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x2 _ 255 ) ] ^ k [ 15
00158 | INFO | QC-JAV999996[00158] (Nb max de CPD atteint :3) CPD de longueur 62 commencant en 2619 (ligne 158) et 4131 (ligne 182): ) ) ) ) ; y3 = ( FT0 [ ( ( x3 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x0 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x1 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x2 _ 255 ) ] ^ k [ 15
00159 | INFO | QC-JAV999996[00159] CPD de longueur 62 commencant en 2682 (ligne 159) et 3186 (ligne 167): ) ) ) ) ; x0 = ( FT0 [ ( ( y0 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y1 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y2 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y3 _ 255 ) ] ^ k [ 16
00159 | INFO | QC-JAV999996[00159] CPD de longueur 62 commencant en 2682 (ligne 159) et 3690 (ligne 175): ) ) ) ) ; x0 = ( FT0 [ ( ( y0 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y1 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y2 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y3 _ 255 ) ] ^ k [ 16
00160 | INFO | QC-JAV999996[00160] CPD de longueur 62 commencant en 2745 (ligne 160) et 3249 (ligne 168): ) ) ) ) ; x1 = ( FT0 [ ( ( y1 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y2 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y3 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y0 _ 255 ) ] ^ k [ 17
00160 | INFO | QC-JAV999996[00160] CPD de longueur 62 commencant en 2745 (ligne 160) et 3753 (ligne 176): ) ) ) ) ; x1 = ( FT0 [ ( ( y1 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y2 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y3 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y0 _ 255 ) ] ^ k [ 17
00161 | INFO | QC-JAV999996[00161] CPD de longueur 62 commencant en 2808 (ligne 161) et 3312 (ligne 169): ) ) ) ) ; x2 = ( FT0 [ ( ( y2 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y3 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y0 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y1 _ 255 ) ] ^ k [ 18
00161 | INFO | QC-JAV999996[00161] CPD de longueur 62 commencant en 2808 (ligne 161) et 3816 (ligne 177): ) ) ) ) ; x2 = ( FT0 [ ( ( y2 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y3 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y0 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y1 _ 255 ) ] ^ k [ 18
00162 | INFO | QC-JAV999996[00162] CPD de longueur 62 commencant en 2871 (ligne 162) et 3375 (ligne 170): ) ) ) ) ; x3 = ( FT0 [ ( ( y3 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y0 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y1 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y2 _ 255 ) ] ^ k [ 19
00162 | INFO | QC-JAV999996[00162] CPD de longueur 62 commencant en 2871 (ligne 162) et 3879 (ligne 178): ) ) ) ) ; x3 = ( FT0 [ ( ( y3 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( y0 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( y1 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( y2 _ 255 ) ] ^ k [ 19
00163 | INFO | QC-JAV999996[00163] CPD de longueur 62 commencant en 2934 (ligne 163) et 3438 (ligne 171): ) ) ) ) ; y0 = ( FT0 [ ( ( x0 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x1 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x2 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x3 _ 255 ) ] ^ k [ 20
00163 | INFO | QC-JAV999996[00163] (Nb total de CPD atteint pour la ligne :50) CPD de longueur 62 commencant en 2934 (ligne 163) et 3942 (ligne 179): ) ) ) ) ; y0 = ( FT0 [ ( ( x0 __ 24 ) _ 255 ) ] ^ ( FT1 [ ( ( x1 __ 16 ) _ 255 ) ] ^ ( FT2 [ ( ( x2 __ 8 ) _ 255 ) ] ^ ( FT3 [ ( x3 _ 255 ) ] ^ k [ 20

#### File lecode\security\BlockCipher.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.security.BlockCipher

Module / class or interface : org.h2.security.BlockCipher

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setKey(byte[]) | 1 | 1
void | encrypt(byte[];int;int) | 1 | 1
void | decrypt(byte[];int;int) | 1 | 1
int | getKeyLength() | 1 | 1

#### File lecode\security\CipherFactory.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.security.CipherFactory

Module / class or interface : org.h2.security.CipherFactory

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CipherFactory | CipherFactory() | 1 | 0
BlockCipher | getBlockCipher(String) | 6 | 3
Socket | createSocket(InetAddress;int) | 2 | 10
ServerSocket | createServerSocket(int;InetAddress) | 4 | 11
byte[] | getKeyStoreBytes(KeyStore;String) | 1 | 4
KeyStore | getKeyStore(String) | 1 | 10
void | setKeystore() | 5 | 7
String[] | addAnonymous(String[]) | 1 | 4

#### File lecode\security\Fog.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.security.Fog

Module / class or interface : org.h2.security.Fog

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | encrypt(byte[];int;int) | 2 | 3
void | decrypt(byte[];int;int) | 2 | 3
void | encryptBlock(byte[];byte[];int) | 1 | 31
void | decryptBlock(byte[];byte[];int) | 1 | 31
int | getKeyLength() | 1 | 1
void | setKey(byte[]) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 2

Line start | Criticity class | Rule
--- | --- | ---
00032 | INFO | QC-JAV999996[00032] CPD de longueur 287 commencant en 125 (ligne 32) et 792 (ligne 58): byte [ ] in , byte [ ] out , int off ) { int x0 = ( in [ off ] __ 24 ) | ( ( ( in [ ( off + 1 ) ] _ 255 ) __ 16 ) | ( ( ( in [ ( off + 2 ) ] _ 255 ) __ 8 ) | ( in [ ( off + 3 ) ] _ 255 ) ) ) ; int x1 = ( in [ ( off + 4 ) ] __ 24 ) | ( ( ( in [ ( off + 5 ) ] _ 255 ) __ 16 ) | ( ( ( in [ ( off + 6 ) ] _ 255 ) __ 8 ) | ( in [ ( off + 7 ) ] _ 255 ) ) ) ; int x2 = ( in [ ( off + 8 ) ] __ 24 ) | ( ( ( in [ ( off + 9 ) ] _ 255 ) __ 16 ) | ( ( ( in [ ( off + 10 ) ] _ 255 ) __ 8 ) | ( in [ ( off + 11 ) ] _ 255 ) ) ) ; int x3 = ( in [ ( off + 12 ) ] __ 24 ) | ( ( ( in [ ( off + 13 ) ] _ 255 ) __ 16 ) | ( ( ( in [ ( off + 14 ) ] _ 255 ) __ 8 ) | ( in [ ( off + 15 ) ] _ 255 ) ) ) ; int k = key ; int s = x1
00048 | INFO | QC-JAV999996[00048] CPD de longueur 268 commencant en 521 (ligne 48) et 1196 (ligne 74): off ] = ( byte ) ( x0 __ 24 ) ; out [ ( off + 1 ) ] = ( byte ) ( x0 __ 16 ) ; out [ ( off + 2 ) ] = ( byte ) ( x0 __ 8 ) ; out [ ( off + 3 ) ] = ( byte ) x0 ; out [ ( off + 4 ) ] = ( byte ) ( x1 __ 24 ) ; out [ ( off + 5 ) ] = ( byte ) ( x1 __ 16 ) ; out [ ( off + 6 ) ] = ( byte ) ( x1 __ 8 ) ; out [ ( off + 7 ) ] = ( byte ) x1 ; out [ ( off + 8 ) ] = ( byte ) ( x2 __ 24 ) ; out [ ( off + 9 ) ] = ( byte ) ( x2 __ 16 ) ; out [ ( off + 10 ) ] = ( byte ) ( x2 __ 8 ) ; out [ ( off + 11 ) ] = ( byte ) x2 ; out [ ( off + 12 ) ] = ( byte ) ( x3 __ 24 ) ; out [ ( off + 13 ) ] = ( byte ) ( x3 __ 16 ) ; out [ ( off + 14 ) ] = ( byte ) ( x3 __ 8 ) ; out [ ( off + 15 ) ] = ( byte ) x3 ; } private

#### File lecode\security\SHA256.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.security.SHA256

Module / class or interface : org.h2.security.SHA256

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
byte[] | getHashWithSalt(byte[];byte[]) | 1 | 4
byte[] | getKeyPasswordHash(String;char[]) | 3 | 12
byte[] | getHash(byte[];boolean) | 8 | 35
int | rot(int;int) | 1 | 1
int | readInt(byte[];int) | 1 | 1
void | writeInt(byte[];int;int) | 1 | 4

#### File lecode\security\SecureFileStore.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
FileStore | org.h2.security.SecureFileStore

Module / class or interface : org.h2.security.SecureFileStore

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SecureFileStore | SecureFileStore(DataHandler;String;String;String;byte[];int) | 1 | 6
byte[] | generateSalt() | 1 | 1
void | initKey(byte[]) | 2 | 7
void | writeDirect(byte[];int;int) | 1 | 2
void | write(byte[];int;int) | 2 | 6
void | readFullyDirect(byte[];int;int) | 1 | 2
void | readFully(byte[];int;int) | 3 | 4
void | seek(long) | 1 | 2
void | xorInitVector(byte[];int;int;long) | 3 | 5

#### File lecode\security\XTEA.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.security.XTEA

Module / class or interface : org.h2.security.XTEA

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setKey(byte[]) | 3 | 42
void | encrypt(byte[];int;int) | 4 | 3
void | decrypt(byte[];int;int) | 4 | 3
void | encryptBlock(byte[];byte[];int) | 1 | 42
void | decryptBlock(byte[];byte[];int) | 1 | 42
int | getKeyLength() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 3

Line start | Criticity class | Rule
--- | --- | ---
00041 | INFO | QC-JAV999996[00041] CPD de longueur 63 commencant en 521 (ligne 41) et 597 (ligne 52): ( byte [ ] bytes , int off , int len ) { if ( SysProperties . CHECK ) { if ( ( len % ALIGN ) != 0 ) { DbException . throwInternalError ( "unaligned len " + len ) ; } } for ( int i = off ; i _ ( off + len ) ; i += 8 ) { encryptBlock
00063 | INFO | QC-JAV999996[00063] CPD de longueur 145 commencant en 674 (ligne 63) et 1723 (ligne 86): byte [ ] in , byte [ ] out , int off ) { int y = ( in [ off ] __ 24 ) | ( ( ( in [ ( off + 1 ) ] _ 255 ) __ 16 ) | ( ( ( in [ ( off + 2 ) ] _ 255 ) __ 8 ) | ( in [ ( off + 3 ) ] _ 255 ) ) ) ; int z = ( in [ ( off + 4 ) ] __ 24 ) | ( ( ( in [ ( off + 5 ) ] _ 255 ) __ 16 ) | ( ( ( in [ ( off + 6 ) ] _ 255 ) __ 8 ) | ( in [ ( off + 7 ) ] _ 255 ) ) ) ; y
00082 | INFO | QC-JAV999996[00082] CPD de longueur 132 commencant en 1588 (ligne 82) et 2637 (ligne 105): off ] = ( byte ) ( y __ 24 ) ; out [ ( off + 1 ) ] = ( byte ) ( y __ 16 ) ; out [ ( off + 2 ) ] = ( byte ) ( y __ 8 ) ; out [ ( off + 3 ) ] = ( byte ) y ; out [ ( off + 4 ) ] = ( byte ) ( z __ 24 ) ; out [ ( off + 5 ) ] = ( byte ) ( z __ 16 ) ; out [ ( off + 6 ) ] = ( byte ) ( z __ 8 ) ; out [ ( off + 7 ) ] = ( byte ) z ; } private

#### File lecode\server\Service.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.Service

Module / class or interface : org.h2.server.Service

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | init(String) | 1 | 1
String | getURL() | 1 | 1
void | start() | 1 | 1
void | listen() | 1 | 1
void | stop() | 1 | 1
boolean | isRunning(boolean) | 1 | 1
boolean | getAllowOthers() | 1 | 1
String | getName() | 1 | 1
String | getType() | 1 | 1
int | getPort() | 1 | 1
boolean | isDaemon() | 1 | 1

#### File lecode\server\ShutdownHandler.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.ShutdownHandler

Module / class or interface : org.h2.server.ShutdownHandler

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | shutdown() | 1 | 1

#### File lecode\server\TcpServer.java 17 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.TcpServer

Module / class or interface : org.h2.server.TcpServer

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
String | getManagementDbName(int) | 1 | 1
void | initManagementDb() | 1 | 13
void | shutdown() | 2 | 1
void | setShutdownHandler(ShutdownHandler) | 1 | 1
void | addConnection(int;String;String) | 1 | 5
void | removeConnection(int) | 1 | 3
void | stopManagementDb() | 2 | 1
void | init(String) | 8 | 5
String | getURL() | 1 | 1
int | getPort() | 1 | 1
boolean | allow(Socket) | 2 | 4
void | start() | 3 | 4
void | listen() | 2 | 4
boolean | isRunning(boolean) | 3 | 5
void | stop() | 6 | 3
void | stopServer(int;String;int) | 8 | 8
void | remove(TcpServerThread) | 1 | 1
String | getBaseDir() | 1 | 1
void | trace(String) | 2 | 1
void | traceError(Throwable) | 2 | 1
boolean | getAllowOthers() | 1 | 1
String | getType() | 1 | 1
String | getName() | 1 | 1
boolean | getIfExists() | 1 | 1
void | shutdown(String;String;boolean;boolean) | 3 | 7
void | cancelStatement(String;int) | 3 | 0
String | checkKeyAndGetDatabaseName(String) | 3 | 3
boolean | isDaemon() | 1 | 1

Security risk sequences

Seq | Step | Source / Method / Target | Risk nature
--- | --- | --- | ---
No 1 |  |  |
| 2 | org.h2.server.TcpServer.addConnection2\---dummymethode\------org.h2.server.TcpServer.addConnection.url |
| 1 | org.h2.server.TcpServer.addConnection.url\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 2 |  |  |
| 2 | org.h2.server.TcpServer.addConnection3\---dummymethode\------org.h2.server.TcpServer.addConnection.user |
| 1 | org.h2.server.TcpServer.addConnection.user\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 3 |  |  |
| 2 | org.h2.server.TcpServer.shutdown2\---dummymethode\------org.h2.server.TcpServer.shutdown.password |
| 1 | org.h2.server.TcpServer.shutdown.password\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
BLOCKER | QC-JAVCWE089 | Potential SQL Injection | 6
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 2
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 9

Line start | Criticity class | Rule
--- | --- | ---
00166 | MAJOR | QC-JAV000001[00166] Avoid declaring class instance within loop, performance impact
00239 | MAJOR | QC-JAV000001[00239] Avoid declaring class instance within loop, performance impact
00240 | MAJOR | QC-JAV000001[00240] Avoid declaring class instance within loop, performance impact
00242 | MAJOR | QC-JAV000001[00242] Avoid declaring class instance within loop, performance impact
00285 | MAJOR | QC-JAVCWE390[00285] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00304 | MAJOR | QC-JAV000001[00304] Avoid declaring class instance within loop, performance impact
00341 | MAJOR | QC-JAVCWE390[00341] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00431 | MAJOR | QC-JAV000001[00431] Avoid declaring class instance within loop, performance impact
00432 | MAJOR | QC-JAV000001[00432] Avoid declaring class instance within loop, performance impact
00441 | MAJOR | QC-JAV000001[00441] Avoid declaring class instance within loop, performance impact
00451 | MAJOR | QC-JAV000001[00451] Avoid declaring class instance within loop, performance impact
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.addConnection2 dummymethode org.h2.server.TcpServer.addConnection.url//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.addConnection.url java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.addConnection.url java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.addConnection3 dummymethode org.h2.server.TcpServer.addConnection.user//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.addConnection.user java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.addConnection.user java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.shutdown2 dummymethode org.h2.server.TcpServer.shutdown.password//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.shutdown.password java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.TcpServer.shutdown.password java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL

#### File lecode\server\TcpServerThread.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.TcpServerThread

Module / class or interface : org.h2.server.TcpServerThread

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TcpServerThread | TcpServerThread(Socket;TcpServer;int) | 1 | 4
void | trace(String) | 1 | 1
void | run() | 11 | 25
void | closeSession() | 3 | 1
void | close() | 1 | 6
void | sendError(Throwable) | 4 | 8
void | setParameters(Command) | 2 | 6
void | process() | 17 | 52
int | getState(int) | 2 | 2
void | sendRow(ResultInterface) | 4 | 3
void | writeValue(Value) | 3 | 1
void | setThread(Thread) | 1 | 1
Thread | getThread() | 1 | 1
void | cancelStatement(String;int) | 2 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00150 | MAJOR | QC-JAV000001[00150] Avoid declaring class instance within loop, performance impact
00240 | MAJOR | QC-JAV000001[00240] Avoid declaring class instance within loop, performance impact
00240 | MAJOR | QC-JAV000001[00240] Avoid declaring class instance within loop, performance impact

#### File lecode\server\pg\PgServer.java 12 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.pg.PgServer

Module / class or interface : org.h2.server.pg.PgServer

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | init(String) | 8 | 5
boolean | getTrace() | 1 | 1
void | trace(String) | 2 | 1
void | remove(PgServerThread) | 1 | 1
void | traceError(Exception) | 2 | 1
String | getURL() | 1 | 1
int | getPort() | 1 | 1
boolean | allow(Socket) | 2 | 4
void | start() | 3 | 2
void | listen() | 2 | 1
void | stop() | 4 | 2
boolean | isRunning(boolean) | 3 | 5
String | getBaseDir() | 1 | 1
boolean | getAllowOthers() | 1 | 1
String | getType() | 1 | 1
String | getName() | 1 | 1
boolean | getIfExists() | 1 | 1
String | getIndexColumn(Connection;int;Integer;Boolean) | 4 | 10
String | getCurrentSchema(Connection) | 1 | 3
int | getOid(Connection;String) | 3 | 6
String | getEncodingName(int) | 4 | 4
String | getVersion() | 1 | 1
Timestamp | getStartTime() | 1 | 1
String | getUserById(Connection;int) | 2 | 5
boolean | hasDatabasePrivilege(int;String) | 1 | 1
boolean | hasTablePrivilege(String;String) | 1 | 1
int | getCurrentTid(String;String) | 1 | 1
int | convertType(int) | 17 | 17
HashSet<Integer> | getTypeSet() | 1 | 1
void | checkType(int) | 2 | 1
boolean | isDaemon() | 1 | 1

Security risk sequences

Seq | Step | Source / Method / Target | Risk nature
--- | --- | --- | ---
No 1 |  |  |
| 2 | org.h2.server.pg.PgServer.getOid2\---dummymethode\------org.h2.server.pg.PgServer.getOid.tableName |
| 1 | org.h2.server.pg.PgServer.getOid.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 2 |  |  |
| 2 | 1\---tableName.substring\------org.h2.server.pg.PgServer.getOid.tableName |
| 1 | org.h2.server.pg.PgServer.getOid.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 3 |  |  |
| 2 | tableName.length\---tableName.substring\------org.h2.server.pg.PgServer.getOid.tableName |
| 1 | org.h2.server.pg.PgServer.getOid.tableName\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
BLOCKER | QC-JAVCWE089 | Potential SQL Injection | 6
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 6

Line start | Criticity class | Rule
--- | --- | ---
00089 | MAJOR | QC-JAV000001[00089] Avoid declaring class instance within loop, performance impact
00182 | MAJOR | QC-JAV000001[00182] Avoid declaring class instance within loop, performance impact
00187 | MAJOR | QC-JAV000001[00187] Avoid declaring class instance within loop, performance impact
00190 | MAJOR | QC-JAV000001[00190] Avoid declaring class instance within loop, performance impact
00221 | MAJOR | QC-JAV000001[00221] Avoid declaring class instance within loop, performance impact
00225 | MAJOR | QC-JAV000001[00225] Avoid declaring class instance within loop, performance impact
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServer.getOid2 dummymethode org.h2.server.pg.PgServer.getOid.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServer.getOid.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServer.getOid.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) 1 tableName.substring org.h2.server.pg.PgServer.getOid.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServer.getOid.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServer.getOid.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) tableName.length tableName.substring org.h2.server.pg.PgServer.getOid.tableName//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServer.getOid.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServer.getOid.tableName java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL

#### File lecode\server\pg\PgServerThread.java 19 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.pg.PgServerThread

Module / class or interface : org.h2.server.pg.PgServerThread

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PgServerThread | PgServerThread(Socket;PgServer) | 1 | 2
void | run() | 1 | 7
String | readString() | 2 | 4
int | readInt() | 1 | 1
int | readShort() | 1 | 1
byte | readByte() | 1 | 1
void | readFully(byte[]) | 1 | 1
void | process() | 18 | 34
String | getSQL(String) | 5 | 5
void | sendCommandComplete(JdbcStatement;int) | 7 | 18
void | sendDataRow(ResultSet) | 5 | 8
String | getEncoding() | 2 | 2
void | setParameter(PreparedStatement;int;byte[];int[]) | 3 | 5
void | sendErrorResponse(Exception) | 1 | 13
void | sendParameterDescription(Prepared) | 2 | 9
void | sendNoData() | 1 | 2
void | sendRowDescription(ResultSetMetaData) | 5 | 8
int | getTypeSize(int;int) | 2 | 2
void | sendErrorResponse(String) | 1 | 9
void | sendParseComplete() | 1 | 2
void | sendBindComplete() | 1 | 2
void | sendCloseComplete() | 1 | 2
void | initDb() | 5 | 10
void | installPgCatalog(Statement) | 1 | 6
void | close() | 2 | 7
void | sendAuthenticationCleartextPassword() | 1 | 3
void | sendAuthenticationOk() | 1 | 14
void | sendReadyForQuery() | 3 | 5
void | sendBackendKeyData() | 1 | 4
void | writeString(String) | 1 | 2
void | writeStringPart(String) | 1 | 1
void | writeInt(int) | 1 | 1
void | writeShort(int) | 1 | 1
void | write(byte[]) | 1 | 1
void | write(int) | 1 | 1
void | startMessage(int) | 1 | 3
void | sendMessage() | 1 | 8
void | sendParameterStatus(String;String) | 1 | 4
void | setThread(Thread) | 1 | 1
Thread | getThread() | 1 | 1
void | setProcessId(int) | 1 | 1

Security risk sequences

Seq | Step | Source / Method / Target | Risk nature
--- | --- | --- | ---
No 1 |  |  |
| 2 | null \---dummymethode\------org.h2.server.pg.PgServerThread.setParameter.s |
| 1 | org.h2.server.pg.PgServerThread.setParameter.s\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 2 |  |  |
| 6 | org.h2.server.pg.PgServerThread.readInt\---dummymethode\------org.h2.server.pg.PgServerThread.process.paramLen |
| 5 | org.h2.server.pg.PgServerThread.process.paramLen\---Utils.newBytes\------org.h2.server.pg.PgServerThread.process.d2 |
| 4 | org.h2.server.pg.PgServerThread.process.d2\---org.h2.server.pg.PgServerThread.setParameter\------org.h2.server.pg.PgServerThread.setParameter3 |
| 3 | org.h2.server.pg.PgServerThread.setParameter3\---dummymethode\------org.h2.server.pg.PgServerThread.setParameter.d2 |
| 2 | org.h2.server.pg.PgServerThread.setParameter.d2\---org.h2.server.pg.PgServerThread.setParameter.String\------org.h2.server.pg.PgServerThread.setParameter.s |
| 1 | org.h2.server.pg.PgServerThread.setParameter.s\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 3 |  |  |
| 3 | org.h2.server.pg.PgServerThread.process.i\---org.h2.server.pg.PgServerThread.setParameter\------org.h2.server.pg.PgServerThread.setParameter2 |
| 2 | org.h2.server.pg.PgServerThread.setParameter2\---dummymethode\------org.h2.server.pg.PgServerThread.setParameter.i |
| 1 | org.h2.server.pg.PgServerThread.setParameter.i\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString1 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
BLOCKER | QC-JAVCWE089 | Potential SQL Injection | 6
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 12

Line start | Criticity class | Rule
--- | --- | ---
00084 | MAJOR | QC-JAVCWE390[00084] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00153 | MAJOR | QC-JAV000001[00153] Avoid declaring class instance within loop, performance impact
00157 | MAJOR | QC-JAV000001[00157] Avoid declaring class instance within loop, performance impact
00253 | MAJOR | QC-JAV000001[00253] Avoid declaring class instance within loop, performance impact
00360 | MAJOR | QC-JAV000001[00360] Avoid declaring class instance within loop, performance impact
00362 | MAJOR | QC-JAV000001[00362] Avoid declaring class instance within loop, performance impact
00367 | MAJOR | QC-JAV000001[00367] Avoid declaring class instance within loop, performance impact
00370 | MAJOR | QC-JAV000001[00370] Avoid declaring class instance within loop, performance impact
00371 | MAJOR | QC-JAV000001[00371] Avoid declaring class instance within loop, performance impact
00378 | MAJOR | QC-JAV000001[00378] Avoid declaring class instance within loop, performance impact
00385 | MAJOR | QC-JAV000001[00385] Avoid declaring class instance within loop, performance impact
00551 | MAJOR | QC-JAV000001[00551] Avoid declaring class instance within loop, performance impact
00668 | MAJOR | QC-JAV000001[00668] Avoid declaring class instance within loop, performance impact
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) null dummymethode org.h2.server.pg.PgServerThread.setParameter.s//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServerThread.setParameter.s java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServerThread.setParameter.s java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServerThread.readInt dummymethode org.h2.server.pg.PgServerThread.process.paramLen org.h2.server.pg.PgServerThread.process.paramLen Utils.newBytes org.h2.server.pg.PgServerThread.process.d2 org.h2.server.pg.PgServerThread.process.d2 org.h2.server.pg.PgServerThread.setParameter org.h2.server.pg.PgServerThread.setParameter3 org.h2.server.pg.PgServerThread.setParameter3 dummymethode org.h2.server.pg.PgServerThread.setParameter.d2 org.h2.server.pg.PgServerThread.setParameter.d2 org.h2.server.pg.PgServerThread.setParameter.String org.h2.server.pg.PgServerThread.setParameter.s//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServerThread.setParameter.s java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServerThread.setParameter.s java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServerThread.process.i org.h2.server.pg.PgServerThread.setParameter org.h2.server.pg.PgServerThread.setParameter2 org.h2.server.pg.PgServerThread.setParameter2 dummymethode org.h2.server.pg.PgServerThread.setParameter.i//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServerThread.setParameter.i java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString1 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.server.pg.PgServerThread.setParameter.i java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString1 Security risk level : CRITICAL

#### File lecode\server\web\ConnectionInfo.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.web.ConnectionInfo

Module / class or interface : org.h2.server.web.ConnectionInfo

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ConnectionInfo | ConnectionInfo() | 1 | 0
ConnectionInfo | ConnectionInfo(String) | 1 | 5
String | get(String[];int) | 1 | 1
String | getString() | 1 | 1
int | compareTo(ConnectionInfo) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 3

Line start | Criticity class | Rule
--- | --- | ---
00021 | MAJOR | QC-JAVCWE493[00021] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00026 | MAJOR | QC-JAVCWE493[00026] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00031 | MAJOR | QC-JAVCWE493[00031] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)

#### File lecode\server\web\DbColumn.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.web.DbColumn

Module / class or interface : org.h2.server.web.DbColumn

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DbColumn | DbColumn(DbContents;ResultSet) | 4 | 10

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1

Line start | Criticity class | Rule
--- | --- | ---
00035 | CRITICAL | QC-JAVCWE476[00035] The argument contents is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk

#### File lecode\server\web\DbContents.java 7 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.web.DbContents

Module / class or interface : org.h2.server.web.DbContents

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
int | findColumn(ResultSet;String;int) | 1 | 2
void | readContents(DatabaseMetaData) | 7 | 22
String[] | getSchemaNames(DatabaseMetaData) | 8 | 10
String | getDefaultSchemaName(DatabaseMetaData) | 7 | 4
String | quoteIdentifier(String) | 3 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 6

Line start | Criticity class | Rule
--- | --- | ---
00132 | MAJOR | QC-JAV000001[00132] Avoid declaring class instance within loop, performance impact
00134 | MAJOR | QC-JAV000001[00134] Avoid declaring class instance within loop, performance impact
00139 | MAJOR | QC-JAV000001[00139] Avoid declaring class instance within loop, performance impact
00168 | MAJOR | QC-JAV000001[00168] Avoid declaring class instance within loop, performance impact
00170 | MAJOR | QC-JAV000001[00170] Avoid declaring class instance within loop, performance impact
00181 | MAJOR | QC-JAV000001[00181] Avoid declaring class instance within loop, performance impact
00223 | MAJOR | QC-JAVCWE390[00223] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\server\web\DbContextRule.java 17 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.web.DbContextRule

Module / class or interface : org.h2.server.web.DbContextRule

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DbContextRule | DbContextRule(DbContents;int) | 1 | 2
void | setLinks(HashMap<String,RuleHead>) | 1 | 0
void | accept(BnfVisitor) | 1 | 0
boolean | autoComplete(Sentence) | 8 | 10
String | autoCompleteTableAlias(Sentence;boolean) | 12 | 16

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 16
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00117 | INFO | QC-JAV999996[00117] CPD de longueur 54 commencant en 725 (ligne 117) et 1383 (ligne 202): ; i _ up . length ( ) ; i ++ ) { char ch = up . charAt ( i ) ; if ( ( ch != '_' ) __ ( ! Character . isLetterOrDigit ( ch ) ) ) { break ; } } if ( i == 0 ) { break
00054 | MAJOR | QC-JAV000001[00054] Avoid declaring class instance within loop, performance impact
00082 | MAJOR | QC-JAV000001[00082] Avoid declaring class instance within loop, performance impact
00083 | MAJOR | QC-JAV000001[00083] Avoid declaring class instance within loop, performance impact
00139 | MAJOR | QC-JAV000001[00139] Avoid declaring class instance within loop, performance impact
00140 | MAJOR | QC-JAV000001[00140] Avoid declaring class instance within loop, performance impact
00146 | MAJOR | QC-JAV000001[00146] Avoid declaring class instance within loop, performance impact
00158 | MAJOR | QC-JAV000001[00158] Avoid declaring class instance within loop, performance impact
00165 | MAJOR | QC-JAV000001[00165] Avoid declaring class instance within loop, performance impact
00166 | MAJOR | QC-JAV000001[00166] Avoid declaring class instance within loop, performance impact
00168 | MAJOR | QC-JAV000001[00168] Avoid declaring class instance within loop, performance impact
00165 | MAJOR | QC-JAV000001[00165] Avoid declaring class instance within loop, performance impact
00166 | MAJOR | QC-JAV000001[00166] Avoid declaring class instance within loop, performance impact
00168 | MAJOR | QC-JAV000001[00168] Avoid declaring class instance within loop, performance impact
00166 | MAJOR | QC-JAV000001[00166] Avoid declaring class instance within loop, performance impact
00168 | MAJOR | QC-JAV000001[00168] Avoid declaring class instance within loop, performance impact
00233 | MAJOR | QC-JAV000001[00233] Avoid declaring class instance within loop, performance impact

#### File lecode\server\web\DbSchema.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.web.DbSchema

Module / class or interface : org.h2.server.web.DbSchema

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DbSchema | DbSchema(DbContents;String;boolean) | 7 | 8
void | readTables(DatabaseMetaData;String[]) | 4 | 7

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00088 | MAJOR | QC-JAV000001[00088] Avoid declaring class instance within loop, performance impact

#### File lecode\server\web\DbStarter.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.web.DbStarter

Module / class or interface : org.h2.server.web.DbStarter

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | contextInitialized(ServletContextEvent) | 2 | 9
String | getParameter(ServletContext;String;String) | 1 | 2
Connection | getConnection() | 1 | 1
void | contextDestroyed(ServletContextEvent) | 2 | 8

#### File lecode\server\web\DbTableOrView.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.web.DbTableOrView

Module / class or interface : org.h2.server.web.DbTableOrView

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DbTableOrView | DbTableOrView(DbSchema;ResultSet) | 1 | 5
void | readColumns(DatabaseMetaData) | 1 | 7

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00063 | MAJOR | QC-JAV000001[00063] Avoid declaring class instance within loop, performance impact

#### File lecode\server\web\PageParser.java 15 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.web.PageParser

Module / class or interface : org.h2.server.web.PageParser

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageParser | PageParser(String;Map<String,Object>;int) | 1 | 5
String | parse(String;Map<String,Object>) | 1 | 2
void | setError(int) | 1 | 4
String | parseBlockUntil(String) | 2 | 5
String | replaceTags() | 2 | 3
void | parseAll() | 4 | 7
Object | get(String) | 3 | 6
void | replaceTags(String) | 2 | 1
String | readParam(String) | 1 | 9
void | skipSpaces() | 1 | 1
void | read(String) | 2 | 1
boolean | readIf(String) | 2 | 5
String | escapeHtmlData(String) | 1 | 1
String | escapeHtml(String) | 1 | 1
String | escapeHtml(String;boolean) | 6 | 8
String | escapeJavaScript(String) | 4 | 7

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 15

Line start | Criticity class | Rule
--- | --- | ---
00091 | MAJOR | QC-JAV000001[00091] Avoid declaring class instance within loop, performance impact
00092 | MAJOR | QC-JAV000001[00092] Avoid declaring class instance within loop, performance impact
00095 | MAJOR | QC-JAV000001[00095] Avoid declaring class instance within loop, performance impact
00095 | MAJOR | QC-JAV000001[00095] Avoid declaring class instance within loop, performance impact
00103 | MAJOR | QC-JAV000001[00103] Avoid declaring class instance within loop, performance impact
00106 | MAJOR | QC-JAV000001[00106] Avoid declaring class instance within loop, performance impact
00110 | MAJOR | QC-JAV000001[00110] Avoid declaring class instance within loop, performance impact
00116 | MAJOR | QC-JAV000001[00116] Avoid declaring class instance within loop, performance impact
00118 | MAJOR | QC-JAV000001[00118] Avoid declaring class instance within loop, performance impact
00118 | MAJOR | QC-JAV000001[00118] Avoid declaring class instance within loop, performance impact
00120 | MAJOR | QC-JAV000001[00120] Avoid declaring class instance within loop, performance impact
00143 | MAJOR | QC-JAV000001[00143] Avoid declaring class instance within loop, performance impact
00145 | MAJOR | QC-JAV000001[00145] Avoid declaring class instance within loop, performance impact
00145 | MAJOR | QC-JAV000001[00145] Avoid declaring class instance within loop, performance impact
00106 | MAJOR | QC-JAV000001[00106] Avoid declaring class instance within loop, performance impact

#### File lecode\server\web\WebApp.java 43 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.web.WebApp

Module / class or interface : org.h2.server.web.WebApp

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
WebApp | WebApp(WebServer) | 1 | 1
void | setSession(WebSession;Properties) | 1 | 2
String | processRequest(String;String) | 14 | 12
String | getComboBox(String[];String) | 3 | 4
String | getComboBox(String[][];String) | 3 | 4
String | process(String) | 5 | 3
String | autoCompleteList() | 5 | 11
String | admin() | 1 | 5
String | adminSave() | 1 | 13
String | tools() | 7 | 10
String | adminStartTranslate() | 1 | 4
String | adminShutdown() | 1 | 2
String | index() | 7 | 19
String | getHistory() | 1 | 4
int | addColumns(boolean;DbTableOrView;StringBuilder;int;boolean;StringBuilder) | 4 | 10
String | escapeIdentifier(String) | 1 | 1
int | addIndexes(boolean;DatabaseMetaData;String;String;StringBuilder;int) | 5 | 13
int | addTablesAndViews(DbSchema;boolean;StringBuilder;int) | 11 | 23
String | tables() | 3 | 20
String | getStackTrace(int;Throwable;boolean) | 3 | 12
String | linkToSource(String) | 1 | 5
String | formatAsError(String) | 1 | 1
String | test() | 3 | 21
String | getLoginError(Exception;boolean) | 2 | 2
String | login() | 1 | 17
String | logout() | 2 | 9
String | query() | 3 | 10
void | query(Connection;String;int;int;StringBuilder) | 2 | 3
String | editResult() | 6 | 11
ResultSet | getMetaResultSet(Connection;String) | 13 | 7
void | addDatabaseMetaData(SimpleResultSet;DatabaseMetaData) | 3 | 2
String[] | split(String) | 3 | 6
int | getMaxrows() | 1 | 3
String | getResult(Connection;int;String;boolean;boolean) | 21 | 16
boolean | isBuiltIn(String;String) | 1 | 1
String | executeLoop(Connection;int;String) | 11 | 21
String | getHistoryString() | 2 | 9
String | getParameterResultSet(ParameterMetaData) | 3 | 8
String | getResultSet(String;ResultSet;boolean;boolean;boolean;long;boolean) | 20 | 52
String | settingSave() | 1 | 9
String | escapeData(ResultSet;int) | 10 | 5
boolean | isBinary(int) | 7 | 2
void | unescapeData(String;ResultSet;int) | 16 | 22
String | settingRemove() | 2 | 6
String | getMimeType() | 1 | 1
boolean | getCache() | 1 | 1
WebSession | getSession() | 1 | 1
void | trace(String) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 40
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00823 | INFO | QC-JAV999996[00823] CPD de longueur 55 commencant en 5954 (ligne 823) et 6331 (ligne 889): ) { String driver = attributes . getProperty ( "driver" , "" ) ; String url = attributes . getProperty ( "url" , "" ) ; String user = attributes . getProperty ( "user" , "" ) ; String password = attributes . getProperty ( "password" , "" ) ; session . put ( "driver"
00261 | MAJOR | QC-JAV000001[00261] Avoid declaring class instance within loop, performance impact
00296 | MAJOR | QC-JAV000001[00296] Avoid declaring class instance within loop, performance impact
00297 | MAJOR | QC-JAV000001[00297] Avoid declaring class instance within loop, performance impact
00298 | MAJOR | QC-JAV000001[00298] Avoid declaring class instance within loop, performance impact
00468 | CRITICAL | QC-JAVCWE476[00468] The argument table is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk
00473 | MAJOR | QC-JAV000001[00473] Avoid declaring class instance within loop, performance impact
00478 | MAJOR | QC-JAV000001[00478] Avoid declaring class instance within loop, performance impact
00479 | MAJOR | QC-JAV000001[00479] Avoid declaring class instance within loop, performance impact
00529 | MAJOR | QC-JAV000001[00529] Avoid declaring class instance within loop, performance impact
00530 | MAJOR | QC-JAV000001[00530] Avoid declaring class instance within loop, performance impact
00533 | MAJOR | QC-JAV000001[00533] Avoid declaring class instance within loop, performance impact
00598 | MAJOR | QC-JAV000001[00598] Avoid declaring class instance within loop, performance impact
00607 | MAJOR | QC-JAV000001[00607] Avoid declaring class instance within loop, performance impact
00622 | MAJOR | QC-JAV000001[00622] Avoid declaring class instance within loop, performance impact
00631 | MAJOR | QC-JAV000001[00631] Avoid declaring class instance within loop, performance impact
00634 | MAJOR | QC-JAV000001[00634] Avoid declaring class instance within loop, performance impact
00638 | MAJOR | QC-JAV000001[00638] Avoid declaring class instance within loop, performance impact
00640 | MAJOR | QC-JAV000001[00640] Avoid declaring class instance within loop, performance impact
00696 | MAJOR | QC-JAV000001[00696] Avoid declaring class instance within loop, performance impact
00697 | MAJOR | QC-JAV000001[00697] Avoid declaring class instance within loop, performance impact
00698 | MAJOR | QC-JAV000001[00698] Avoid declaring class instance within loop, performance impact
00718 | MAJOR | QC-JAV000001[00718] Avoid declaring class instance within loop, performance impact
00719 | MAJOR | QC-JAV000001[00719] Avoid declaring class instance within loop, performance impact
00793 | MAJOR | QC-JAV000001[00793] Avoid declaring class instance within loop, performance impact
00797 | MAJOR | QC-JAV000001[00797] Avoid declaring class instance within loop, performance impact
00799 | MAJOR | QC-JAV000001[00799] Avoid declaring class instance within loop, performance impact
00800 | MAJOR | QC-JAV000001[00800] Avoid declaring class instance within loop, performance impact
00801 | MAJOR | QC-JAV000001[00801] Avoid declaring class instance within loop, performance impact
00940 | MAJOR | QC-JAV000001[00940] Avoid declaring class instance within loop, performance impact
00976 | MAJOR | QC-JAV000001[00976] Avoid declaring class instance within loop, performance impact
01018 | MAJOR | QC-JAV000001[01018] Avoid declaring class instance within loop, performance impact
01168 | MAJOR | QC-JAV000001[01168] Avoid declaring class instance within loop, performance impact
01170 | MAJOR | QC-JAV000001[01170] Avoid declaring class instance within loop, performance impact
01172 | MAJOR | QC-JAV000001[01172] Avoid declaring class instance within loop, performance impact
01374 | MAJOR | QC-JAV000001[01374] Avoid declaring class instance within loop, performance impact
01375 | MAJOR | QC-JAV000001[01375] Avoid declaring class instance within loop, performance impact
01384 | MAJOR | QC-JAV000001[01384] Avoid declaring class instance within loop, performance impact
01396 | MAJOR | QC-JAV000001[01396] Avoid declaring class instance within loop, performance impact
01408 | MAJOR | QC-JAV000001[01408] Avoid declaring class instance within loop, performance impact
01396 | MAJOR | QC-JAV000001[01396] Avoid declaring class instance within loop, performance impact
01438 | MAJOR | QC-JAV000001[01438] Avoid declaring class instance within loop, performance impact
01612 | MAJOR | QC-JAVCWE390[01612] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\server\web\WebServer.java 18 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.web.WebServer

Module / class or interface : org.h2.server.web.WebServer

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
byte[] | getFile(String) | 6 | 8
boolean | isSimpleName(String) | 3 | 1
void | remove(WebThread) | 1 | 1
String | generateSessionId() | 1 | 2
WebSession | getSession(String) | 4 | 5
WebSession | createNewSession(String) | 2 | 13
String | getStartDateTime() | 2 | 4
void | init(String) | 11 | 11
String | getURL() | 1 | 2
void | updateURL() | 1 | 1
void | start() | 1 | 3
void | listen() | 1 | 2
boolean | isRunning(boolean) | 3 | 5
boolean | isStopped() | 1 | 1
void | stop() | 5 | 2
void | trace(String) | 2 | 1
void | traceError(Throwable) | 2 | 1
boolean | supportsLanguage(String) | 1 | 1
void | readTranslations(WebSession;String) | 2 | 7
ArrayList<HashMap<String,Object>> | getSessions() | 2 | 3
String | getType() | 1 | 1
String | getName() | 1 | 1
void | setAllowOthers(boolean) | 1 | 1
boolean | getAllowOthers() | 1 | 1
void | setSSL(boolean) | 1 | 1
void | setPort(int) | 1 | 1
boolean | getSSL() | 1 | 1
int | getPort() | 1 | 1
ConnectionInfo | getSetting(String) | 1 | 1
void | updateSetting(ConnectionInfo) | 1 | 2
void | removeSetting(String) | 1 | 1
Properties | loadProperties() | 2 | 3
String[] | getSettingNames() | 2 | 6
ArrayList<ConnectionInfo> | getSettings() | 5 | 5
void | saveProperties(Properties) | 4 | 5
Connection | getConnection(String;String;String;String) | 3 | 8
void | shutdown() | 2 | 1
void | setShutdownHandler(ShutdownHandler) | 1 | 1
String | addSession(Connection) | 1 | 6
String | startTranslate(Map<Object,Object>) | 2 | 5
boolean | isDaemon() | 1 | 1
void | setAllowChunked(boolean) | 1 | 1
boolean | getAllowChunked() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 2
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 16

Line start | Criticity class | Rule
--- | --- | ---
00217 | MAJOR | QC-JAV000001[00217] Avoid declaring class instance within loop, performance impact
00278 | MAJOR | QC-JAV000001[00278] Avoid declaring class instance within loop, performance impact
00288 | MAJOR | QC-JAV000001[00288] Avoid declaring class instance within loop, performance impact
00326 | MAJOR | QC-JAVCWE390[00326] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00341 | MAJOR | QC-JAV000001[00341] Avoid declaring class instance within loop, performance impact
00342 | MAJOR | QC-JAV000001[00342] Avoid declaring class instance within loop, performance impact
00395 | MAJOR | QC-JAV000001[00395] Avoid declaring class instance within loop, performance impact
00449 | MAJOR | QC-JAV000001[00449] Avoid declaring class instance within loop, performance impact
00449 | MAJOR | QC-JAV000001[00449] Avoid declaring class instance within loop, performance impact
00566 | MAJOR | QC-JAV000001[00566] Avoid declaring class instance within loop, performance impact
00572 | MAJOR | QC-JAV000001[00572] Avoid declaring class instance within loop, performance impact
00576 | MAJOR | QC-JAV000001[00576] Avoid declaring class instance within loop, performance impact
00605 | MAJOR | QC-JAV000001[00605] Avoid declaring class instance within loop, performance impact
00707 | MAJOR | QC-JAVCWE390[00707] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00715 | MAJOR | QC-JAV000001[00715] Avoid declaring class instance within loop, performance impact
00717 | MAJOR | QC-JAV000001[00717] Avoid declaring class instance within loop, performance impact
00721 | MAJOR | QC-JAV000001[00721] Avoid declaring class instance within loop, performance impact
00726 | MAJOR | QC-JAV000001[00726] Avoid declaring class instance within loop, performance impact

#### File lecode\server\web\WebServlet.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
HttpServlet | org.h2.server.web.WebServlet

Module / class or interface : org.h2.server.web.WebServlet

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | init() | 3 | 11
void | destroy() | 1 | 1
boolean | allow(HttpServletRequest) | 2 | 6
String | getAllowedFile(HttpServletRequest;String) | 3 | 3
void | doGet(HttpServletRequest;HttpServletResponse) | 12 | 35
void | doPost(HttpServletRequest;HttpServletResponse) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 6

Line start | Criticity class | Rule
--- | --- | ---
00037 | MAJOR | QC-JAV000001[00037] Avoid declaring class instance within loop, performance impact
00038 | MAJOR | QC-JAV000001[00038] Avoid declaring class instance within loop, performance impact
00098 | MAJOR | QC-JAV000001[00098] Avoid declaring class instance within loop, performance impact
00099 | MAJOR | QC-JAV000001[00099] Avoid declaring class instance within loop, performance impact
00104 | MAJOR | QC-JAV000001[00104] Avoid declaring class instance within loop, performance impact
00105 | MAJOR | QC-JAV000001[00105] Avoid declaring class instance within loop, performance impact

#### File lecode\server\web\WebSession.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.server.web.WebSession

Module / class or interface : org.h2.server.web.WebSession

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
WebSession | WebSession(WebServer) | 1 | 1
void | put(String;Object) | 1 | 1
Object | get(String) | 2 | 2
void | remove(String) | 1 | 1
Bnf | getBnf() | 1 | 1
void | loadBnf() | 1 | 16
String | getCommand(int) | 1 | 1
void | addCommand(String) | 5 | 7
ArrayList<String> | getCommands() | 1 | 1
HashMap<String,Object> | getInfo() | 1 | 9
void | setConnection(Connection) | 3 | 4
DatabaseMetaData | getMetaData() | 1 | 1
Connection | getConnection() | 1 | 1
DbContents | getContents() | 1 | 1
void | setShutdownServerOnDisconnect() | 1 | 1
boolean | getShutdownServerOnDisconnect() | 1 | 1
void | close() | 3 | 0

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 2

Line start | Criticity class | Rule
--- | --- | ---
00240 | MAJOR | QC-JAVCWE390[00240] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00247 | MAJOR | QC-JAVCWE390[00247] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\server\web\WebThread.java 20 rule violations (XML file)

Ancestor class | Children classes
--- | ---
WebAppRunnable | org.h2.server.web.WebThread

Module / class or interface : org.h2.server.web.WebThread

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
WebThread | WebThread(Socket;WebServer) | 1 | 3
void | start() | 1 | 1
void | join(int) | 1 | 1
void | stopNow() | 1 | 2
String | getAllowedFile(String) | 3 | 3
void | run() | 1 | 7
boolean | process() | 9 | 19
String | readHeaderLine() | 5 | 3
void | parseAttributes(String) | 3 | 3
boolean | parseHeader() | 10 | 13
void | uploadMultipart(InputStream;int) | 5 | 22
String | getHeaderLineValue(String) | 1 | 1
String | adminShutdown() | 1 | 2
boolean | allow() | 2 | 4
void | trace(String) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 2
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 18

Line start | Criticity class | Rule
--- | --- | ---
00073 | MAJOR | QC-JAVCWE390[00073] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00104 | MAJOR | QC-JAVCWE390[00104] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00166 | MAJOR | QC-JAV000001[00166] Avoid declaring class instance within loop, performance impact
00233 | MAJOR | QC-JAV000001[00233] Avoid declaring class instance within loop, performance impact
00236 | MAJOR | QC-JAV000001[00236] Avoid declaring class instance within loop, performance impact
00243 | MAJOR | QC-JAV000001[00243] Avoid declaring class instance within loop, performance impact
00259 | MAJOR | QC-JAV000001[00259] Avoid declaring class instance within loop, performance impact
00264 | MAJOR | QC-JAV000001[00264] Avoid declaring class instance within loop, performance impact
00268 | MAJOR | QC-JAV000001[00268] Avoid declaring class instance within loop, performance impact
00273 | MAJOR | QC-JAV000001[00273] Avoid declaring class instance within loop, performance impact
00289 | MAJOR | QC-JAV000001[00289] Avoid declaring class instance within loop, performance impact
00291 | MAJOR | QC-JAV000001[00291] Avoid declaring class instance within loop, performance impact
00292 | MAJOR | QC-JAV000001[00292] Avoid declaring class instance within loop, performance impact
00294 | MAJOR | QC-JAV000001[00294] Avoid declaring class instance within loop, performance impact
00299 | MAJOR | QC-JAV000001[00299] Avoid declaring class instance within loop, performance impact
00300 | MAJOR | QC-JAV000001[00300] Avoid declaring class instance within loop, performance impact
00294 | MAJOR | QC-JAV000001[00294] Avoid declaring class instance within loop, performance impact
00299 | MAJOR | QC-JAV000001[00299] Avoid declaring class instance within loop, performance impact
00300 | MAJOR | QC-JAV000001[00300] Avoid declaring class instance within loop, performance impact
00341 | MAJOR | QC-JAV000001[00341] Avoid declaring class instance within loop, performance impact

#### File lecode\store\Data.java 9 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.Data

Module / class or interface : org.h2.store.Data

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Data | Data(DataHandler;byte[]) | 1 | 2
void | setInt(int;int) | 1 | 5
void | writeInt(int) | 1 | 6
int | readInt() | 1 | 4
int | getStringLen(String) | 1 | 2
int | getStringWithoutLengthLen(String;int) | 5 | 5
String | readString() | 1 | 2
String | readString(int) | 6 | 8
void | writeString(String) | 1 | 3
void | writeStringWithoutLength(String;int) | 6 | 6
void | writeStringWithoutLength(char[];int) | 6 | 6
Data | create(DataHandler;int) | 1 | 1
Data | create(DataHandler;byte[]) | 1 | 1
int | length() | 1 | 1
byte[] | getBytes() | 1 | 1
void | reset() | 1 | 1
void | write(byte[];int;int) | 1 | 2
void | read(byte[];int;int) | 1 | 2
void | writeByte(byte) | 1 | 1
byte | readByte() | 1 | 1
long | readLong() | 1 | 1
void | writeLong(long) | 1 | 2
void | writeValue(Value) | 27 | 29
Value | readValue() | 41 | 25
int | getValueLen(Value) | 1 | 1
int | getValueLen(Value;DataHandler) | 24 | 8
void | setPos(int) | 1 | 1
void | writeShortInt(int) | 1 | 3
short | readShortInt() | 1 | 2
void | truncate(int) | 2 | 4
int | getVarIntLen(int) | 8 | 3
void | writeVarInt(int) | 1 | 3
int | readVarInt() | 2 | 4
int | readVarIntRest(int) | 4 | 15
int | getVarLongLen(long) | 2 | 3
void | writeVarLong(long) | 1 | 3
long | readVarLong() | 4 | 7
void | checkCapacity(int) | 2 | 1
void | expand(int) | 1 | 3
void | fillAligned() | 2 | 3
void | copyString(Reader;OutputStream) | 2 | 6
DataHandler | getHandler() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 5
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 4

Line start | Criticity class | Rule
--- | --- | ---
00117 | INFO | QC-JAV999996[00117] CPD de longueur 75 commencant en 579 (ligne 117) et 659 (ligne 131): x ) { byte [ ] buff = data ; buff [ pos ] = ( byte ) ( x __ 24 ) ; buff [ ( pos + 1 ) ] = ( byte ) ( x __ 16 ) ; buff [ ( pos + 2 ) ] = ( byte ) ( x __ 8 ) ; buff [ ( pos + 3 ) ] = ( byte ) x ; }
00253 | INFO | QC-JAV999996[00253] CPD de longueur 139 commencant en 1209 (ligne 253) et 1395 (ligne 272): if ( c _ 0x80 ) { buff [ ( p ++ ) ] = ( byte ) c ; } else if ( c _= 0x800 ) { buff [ ( p ++ ) ] = ( byte ) ( 0xe0 | ( c __ 12 ) ) ; buff [ ( p ++ ) ] = ( byte ) ( ( ( c __ 6 ) _ 0x3f ) ) ; buff [ ( p ++ ) ] = ( byte ) ( c _ 0x3f ) ; } else { buff [ ( p ++ ) ] = ( byte ) ( 0xc0 | ( c __ 6 ) ) ; buff [ ( p ++ ) ] = ( byte ) ( c _ 0x3f ) ; } } pos = p ; } private
00598 | INFO | QC-JAV999996[00598] CPD de longueur 66 commencant en 3020 (ligne 598) et 5830 (ligne 1003): ; if ( v instanceof ValueLob ) { ValueLob lob = ( ValueLob ) v ; lob . convertToFileIfRequired ( handler ) ; byte [ ] small = lob . getSmall ( ) ; if ( small == null ) { int t = - 1 ; if ( ! lob . isLinked ( ) ) { t = ( - 2 ) ; } writeVarInt
00659 | INFO | QC-JAV999996[00659] CPD de longueur 54 commencant en 3458 (ligne 659) et 6271 (ligne 1063): ; for ( int i = 0 ; i _ columnCount ; i ++ ) { int t = DataType . convertSQLTypeToValueType ( meta . getColumnType ( i + 1 ) ) ; Value val = DataType . readValue ( null , rs , ( i + 1 ) , t ) ; writeValue
00662 | MAJOR | QC-JAV000001[00662] Avoid declaring class instance within loop, performance impact
00662 | MAJOR | QC-JAV000001[00662] Avoid declaring class instance within loop, performance impact
00834 | MAJOR | QC-JAV000001[00834] Avoid declaring class instance within loop, performance impact
01066 | MAJOR | QC-JAV000001[01066] Avoid declaring class instance within loop, performance impact
01066 | MAJOR | QC-JAV000001[01066] Avoid declaring class instance within loop, performance impact

#### File lecode\store\DataHandler.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.DataHandler

Module / class or interface : org.h2.store.DataHandler

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
String | getDatabasePath() | 1 | 1
FileStore | openFile(String;String;boolean) | 1 | 1
void | checkPowerOff() | 1 | 1
void | checkWritingAllowed() | 1 | 1
int | getMaxLengthInplaceLob() | 1 | 1
String | getLobCompressionAlgorithm(int) | 1 | 1
TempFileDeleter | getTempFileDeleter() | 1 | 1
Object | getLobSyncObject() | 1 | 1
SmallLRUCache<String,String[]> | getLobFileListCache() | 1 | 1
LobStorage | getLobStorage() | 1 | 1
Connection | getLobConnection() | 1 | 1
int | readLob(long;byte[];long;byte[];int;int) | 1 | 1

#### File lecode\store\DataReader.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Reader | org.h2.store.DataReader

Module / class or interface : org.h2.store.DataReader

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DataReader | DataReader(InputStream) | 1 | 1
byte | readByte() | 2 | 3
int | readVarInt() | 5 | 12
long | readVarLong() | 4 | 7
void | readFully(byte[];int;int) | 2 | 2
String | readString() | 1 | 2
String | readString(int) | 2 | 5
char | readChar() | 5 | 4
void | close() | 1 | 0
int | read(char[];int;int) | 2 | 5

#### File lecode\store\FileLister.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.FileLister

Module / class or interface : org.h2.store.FileLister

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FileLister | FileLister() | 1 | 0
void | tryUnlockDatabase(List<String>;String) | 3 | 0
String | getDir(String) | 2 | 2
ArrayList<String> | getDatabaseFiles(String;String;boolean) | 7 | 4

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00039 | MAJOR | QC-JAV000001[00039] Avoid declaring class instance within loop, performance impact
00043 | MAJOR | QC-JAV000001[00043] Avoid declaring class instance within loop, performance impact
00100 | MAJOR | QC-JAV000001[00100] Avoid declaring class instance within loop, performance impact

#### File lecode\store\FileLock.java 22 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.FileLock

Module / class or interface : org.h2.store.FileLock

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FileLock | FileLock(TraceSystem;String;int) | 1 | 3
void | lock(int) | 6 | 10
void | unlock() | 5 | 6
void | setProperty(String;String) | 3 | 2
Properties | save() | 2 | 4
void | checkServer() | 4 | 22
Properties | load() | 2 | 4
void | waitUntilOld() | 5 | 5
void | setUniqueId() | 1 | 4
void | lockSerialized() | 3 | 6
void | lockFile() | 6 | 19
void | lockSocket() | 9 | 27
void | sleep(int) | 1 | 2
DbException | getExceptionFatal(String;Throwable) | 1 | 1
DbException | getExceptionAlreadyInUse(String) | 2 | 2
int | getFileLockMethod(String) | 11 | 2
String | getUniqueId() | 1 | 1
void | run() | 1 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 5
MAJOR | QC-JAVCWE392 | Failure to report error in status code | 2
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 15

Line start | Criticity class | Rule
--- | --- | ---
00241 | MAJOR | QC-JAVCWE392[00241] Failure to report error in status code (see http://cwe.mitre.org/data/definitions/392.html)
00258 | MAJOR | QC-JAV000001[00258] Avoid declaring class instance within loop, performance impact
00263 | MAJOR | QC-JAV000001[00263] Avoid declaring class instance within loop, performance impact
00279 | MAJOR | QC-JAV000001[00279] Avoid declaring class instance within loop, performance impact
00288 | MAJOR | QC-JAV000001[00288] Avoid declaring class instance within loop, performance impact
00314 | MAJOR | QC-JAV000001[00314] Avoid declaring class instance within loop, performance impact
00314 | MAJOR | QC-JAVCWE390[00314] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00391 | MAJOR | QC-JAV000001[00391] Avoid declaring class instance within loop, performance impact
00394 | MAJOR | QC-JAV000001[00394] Avoid declaring class instance within loop, performance impact
00396 | MAJOR | QC-JAV000001[00396] Avoid declaring class instance within loop, performance impact
00398 | MAJOR | QC-JAV000001[00398] Avoid declaring class instance within loop, performance impact
00420 | MAJOR | QC-JAVCWE392[00420] Failure to report error in status code (see http://cwe.mitre.org/data/definitions/392.html)
00450 | MAJOR | QC-JAVCWE390[00450] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00493 | MAJOR | QC-JAV000001[00493] Avoid declaring class instance within loop, performance impact
00495 | MAJOR | QC-JAV000001[00495] Avoid declaring class instance within loop, performance impact
00497 | MAJOR | QC-JAV000001[00497] Avoid declaring class instance within loop, performance impact
00499 | MAJOR | QC-JAV000001[00499] Avoid declaring class instance within loop, performance impact
00493 | MAJOR | QC-JAVCWE390[00493] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00495 | MAJOR | QC-JAVCWE390[00495] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00497 | MAJOR | QC-JAVCWE390[00497] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00506 | MAJOR | QC-JAV000001[00506] Avoid declaring class instance within loop, performance impact
00508 | MAJOR | QC-JAV000001[00508] Avoid declaring class instance within loop, performance impact

#### File lecode\store\FileStore.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.FileStore

Module / class or interface : org.h2.store.FileStore

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FileStore | FileStore(DataHandler;String;String) | 6 | 8
FileStore | open(DataHandler;String;String) | 1 | 1
FileStore | open(DataHandler;String;String;String;byte[]) | 1 | 1
FileStore | open(DataHandler;String;String;String;byte[];int) | 3 | 4
byte[] | generateSalt() | 1 | 1
void | initKey(byte[]) | 1 | 0
void | setCheckedWriting(boolean) | 1 | 1
void | checkWritingAllowed() | 2 | 1
void | checkPowerOff() | 2 | 1
void | init() | 5 | 17
void | close() | 2 | 0
void | closeSilently() | 1 | 1
void | closeAndDeleteSilently() | 2 | 3
void | readFullyDirect(byte[];int;int) | 1 | 1
void | readFully(byte[];int;int) | 2 | 5
void | seek(long) | 3 | 2
void | writeDirect(byte[];int;int) | 1 | 1
void | write(byte[];int;int) | 2 | 8
void | setLength(long) | 4 | 6
long | length() | 3 | 3
long | getFilePointer() | 2 | 1
void | sync() | 1 | 3
void | autoDelete() | 2 | 1
void | stopAutoDelete() | 1 | 2
void | closeFile() | 1 | 2
void | closeFileSilently() | 1 | 1
void | openFile() | 2 | 2
void | trace(String;String;Object) | 2 | 1
boolean | tryLock() | 1 | 3
void | releaseLock() | 2 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 3

Line start | Criticity class | Rule
--- | --- | ---
00233 | MAJOR | QC-JAVCWE390[00233] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00450 | MAJOR | QC-JAVCWE390[00450] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00494 | MAJOR | QC-JAVCWE390[00494] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\store\FileStoreInputStream.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
InputStream | org.h2.store.FileStoreInputStream

Module / class or interface : org.h2.store.FileStoreInputStream

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FileStoreInputStream | FileStoreInputStream(FileStore;DataHandler;boolean;boolean) | 5 | 6
int | available() | 1 | 1
int | read(byte[]) | 1 | 1
int | read(byte[];int;int) | 3 | 7
int | readBlock(byte[];int;int) | 2 | 6
void | fillBuffer() | 7 | 29
void | close() | 2 | 0
void | finalize() | 1 | 1
int | read() | 2 | 5

#### File lecode\store\FileStoreOutputStream.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
OutputStream | org.h2.store.FileStoreOutputStream

Module / class or interface : org.h2.store.FileStoreOutputStream

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FileStoreOutputStream | FileStoreOutputStream(FileStore;DataHandler;String) | 3 | 6
void | write(int) | 1 | 2
void | write(byte[]) | 1 | 1
void | write(byte[];int;int) | 4 | 3
void | close() | 2 | 0

#### File lecode\store\InDoubtTransaction.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.InDoubtTransaction

Module / class or interface : org.h2.store.InDoubtTransaction

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
InDoubtTransaction | InDoubtTransaction(PageStore;int;int;String) | 1 | 5
void | setState(int) | 3 | 6
String | getState() | 4 | 4
String | getTransaction() | 1 | 1

#### File lecode\store\LobStorage.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.LobStorage

Module / class or interface : org.h2.store.LobStorage

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
LobStorage | LobStorage(DataHandler) | 1 | 1
void | init() | 5 | 15
long | getNextLobId() | 1 | 13
void | removeAllForTable(int) | 3 | 2
Value | createSmallLob(int;byte[]) | 4 | 3
byte[] | readBlock(long;int) | 3 | 9
long[] | skipBuffer(long;long) | 1 | 12
PreparedStatement | prepare(String) | 4 | 3
void | reuse(String;PreparedStatement) | 3 | 1
void | removeLob(long) | 3 | 21
InputStream | getInputStream(long;byte[];long) | 4 | 3
ValueLobDb | addLob(InputStream;long;int) | 2 | 6
ValueLobDb | registerLob(int;long;int;long) | 1 | 0
ValueLobDb | copyLob(int;long;int;long) | 1 | 0
long | getHashCacheBlock(int) | 3 | 4
void | setHashCacheBlock(int;long) | 2 | 4
void | initHashCache() | 2 | 1
void | storeBlock(long;int;long;byte[];String) | 4 | 14
Value | createBlob(InputStream;long) | 3 | 3
Value | createClob(Reader;long) | 3 | 7
void | setTable(long;int) | 1 | 7

#### File lecode\store\Page.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
CacheObject | org.h2.store.Page

Module / class or interface : org.h2.store.Page

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | moveTo(Session;int) | 1 | 1
void | write() | 1 | 1
long[] | insert(long[];int;int;long) | 5 | 6
long[] | remove(long[];int;int) | 3 | 6
int[] | insert(int[];int;int;int) | 5 | 6
int[] | remove(int[];int;int) | 4 | 6
void | add(int[];int;int;int) | 2 | 3
boolean | canMove() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 2

Line start | Criticity class | Rule
--- | --- | ---
00138 | INFO | QC-JAV999996[00138] CPD de longueur 69 commencant en 386 (ligne 138) et 917 (ligne 232): System . arraycopy ( old , 0 , result , 0 , Math . min ( ( oldSize - 1 ) , pos ) ) ; } if ( pos _ oldSize ) { System . arraycopy ( old , ( pos + 1 ) , result , pos , ( oldSize - ( pos - 1 ) ) ) ; } return result ; } protected static long
00162 | INFO | QC-JAV999996[00162] CPD de longueur 73 commencant en 529 (ligne 162) et 789 (ligne 208): . arraycopy ( old , 0 , result , 0 , pos ) ; } } if ( ( old != null ) __ ( ( oldSize - pos ) _ 0 ) ) { System . arraycopy ( old , pos , result , ( pos + 1 ) , ( oldSize - pos ) ) ; } result [ pos ] = x ; return result ; } protected static long

#### File lecode\store\PageFreeList.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Page | org.h2.store.PageFreeList

Module / class or interface : org.h2.store.PageFreeList

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageFreeList | PageFreeList(PageStore;int) | 1 | 5
PageFreeList | read(PageStore;Data;int) | 1 | 4
PageFreeList | create(PageStore;int) | 1 | 1
int | allocate(BitField;int) | 5 | 3
int | getFirstFree(int) | 3 | 5
int | getLastUsed() | 1 | 2
int | allocate(int) | 2 | 5
void | free(int) | 1 | 4
void | read() | 2 | 8
void | write() | 2 | 7
int | getPagesAddressed(int) | 1 | 1
int | getMemory() | 1 | 1
boolean | isUsed(int) | 1 | 1
void | moveTo(Session;int) | 1 | 1
String | toString() | 1 | 1
boolean | canRemove() | 1 | 1
boolean | canMove() | 1 | 1

#### File lecode\store\PageInputStream.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
InputStream | org.h2.store.PageInputStream

Module / class or interface : org.h2.store.PageInputStream

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageInputStream | PageInputStream(PageStore;int;int;int) | 1 | 6
int | read() | 1 | 2
int | read(byte[]) | 1 | 1
int | read(byte[];int;int) | 3 | 7
int | readBlock(byte[];int;int) | 2 | 7
void | fillBuffer() | 7 | 11
BitField | allocateAllPages() | 4 | 7
int | getDataPage() | 1 | 1
void | close() | 1 | 0

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00138 | MAJOR | QC-JAV000001[00138] Avoid declaring class instance within loop, performance impact

#### File lecode\store\PageLog.java 10 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.PageLog

Module / class or interface : org.h2.store.PageLog

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageLog | PageLog(PageStore) | 1 | 5
void | openForWriting(int;boolean) | 1 | 7
void | free() | 3 | 9
void | openForReading(int;int;int) | 1 | 3
boolean | recover(int) | 6 | 15
void | setPrepareCommit(int;int;String) | 3 | 5
Row | readRow(DataReader;Data) | 2 | 13
boolean | getUndo(int) | 1 | 1
void | addUndo(int;Data) | 9 | 10
void | freeLogPages(IntArray) | 3 | 9
void | write(Data) | 1 | 2
void | commit(int) | 4 | 7
void | prepareCommit(Session;String) | 5 | 14
void | logAddOrRemoveRow(Session;int;Row;boolean) | 7 | 17
void | logTruncate(Session;int) | 2 | 8
void | flush() | 2 | 1
void | checkpoint() | 1 | 10
int | getLogSectionId() | 1 | 1
int | getLogFirstSectionId() | 1 | 1
long | getLogPos() | 1 | 1
void | removeUntil(int) | 3 | 5
int | removeUntil(int;int) | 4 | 11
void | close() | 2 | 4
boolean | isSessionCommitted(int;int;int) | 2 | 3
void | setLastCommitForSession(int;int;int) | 1 | 4
SessionState | getOrAddSessionState(int) | 2 | 6
long | getSize() | 1 | 1
ArrayList<InDoubtTransaction> | getInDoubtTransactions() | 3 | 3
void | setInDoubtTransactionState(int;int;boolean) | 1 | 10
void | recoverEnd() | 1 | 1
void | flushOut() | 1 | 1
Data | getBuffer() | 2 | 2
int | getMinPageId() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 10

Line start | Criticity class | Rule
--- | --- | ---
00209 | MAJOR | QC-JAV000001[00209] Avoid declaring class instance within loop, performance impact
00289 | MAJOR | QC-JAV000001[00289] Avoid declaring class instance within loop, performance impact
00310 | MAJOR | QC-JAV000001[00310] Avoid declaring class instance within loop, performance impact
00358 | MAJOR | QC-JAV000001[00358] Avoid declaring class instance within loop, performance impact
00617 | MAJOR | QC-JAV000001[00617] Avoid declaring class instance within loop, performance impact
00726 | MAJOR | QC-JAV000001[00726] Avoid declaring class instance within loop, performance impact
00727 | MAJOR | QC-JAV000001[00727] Avoid declaring class instance within loop, performance impact
00727 | MAJOR | QC-JAV000001[00727] Avoid declaring class instance within loop, performance impact
00738 | MAJOR | QC-JAV000001[00738] Avoid declaring class instance within loop, performance impact
00819 | MAJOR | QC-JAV000001[00819] Avoid declaring class instance within loop, performance impact

#### File lecode\store\PageOutputStream.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.PageOutputStream

Module / class or interface : org.h2.store.PageOutputStream

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageOutputStream | PageOutputStream(PageStore;int;BitField;int;boolean) | 1 | 7
void | reserve(int) | 4 | 8
void | initNextData() | 4 | 15
void | write(byte[];int;int) | 3 | 6
void | storePage() | 2 | 2
void | flush() | 2 | 2
void | close() | 1 | 1
int | getCurrentDataPageId() | 1 | 1
void | fillPage() | 2 | 5
long | getSize() | 1 | 1
void | free(PageStreamTrunk) | 1 | 1
void | freeReserved() | 3 | 4
int | getMinPageId() | 1 | 1

#### File lecode\store\PageStore.java 23 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.PageStore

Module / class or interface : org.h2.store.PageStore

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageStore | PageStore(Database;String;String;int) | 1 | 7
void | statisticsStart() | 1 | 1
HashMap<String,Integer> | statisticsEnd() | 1 | 3
void | statisticsIncrement(String) | 2 | 2
int | copyDirect(int;OutputStream) | 2 | 7
void | open() | 3 | 3
void | openNew() | 1 | 15
void | lockFile() | 3 | 0
void | openExisting() | 6 | 20
void | openForWriting() | 2 | 9
void | removeOldTempIndexes() | 3 | 5
void | writeIndexRowCounts() | 2 | 1
void | writeBack() | 2 | 5
void | checkpoint() | 7 | 15
void | compact(int) | 16 | 64
int | getFirstFree(int) | 3 | 5
void | swap(int;int;int) | 9 | 8
boolean | compact(int;int) | 9 | 6
Page | getPage(int) | 12 | 18
int | getFirstUncommittedSection() | 3 | 5
void | readStaticHeader() | 3 | 12
void | readVariableHeader() | 4 | 9
void | setPageSize(int) | 5 | 11
void | writeStaticHeader() | 1 | 7
void | setLogFirstPage(int;int;int) | 2 | 5
void | writeVariableHeader() | 2 | 15
void | close() | 3 | 3
void | flushLog() | 2 | 1
void | sync() | 2 | 2
Trace | getTrace() | 1 | 1
void | writeBack(CacheObject) | 2 | 4
void | logUndo(Page;Data) | 4 | 4
void | update(Page) | 5 | 6
int | getFreeListId(int) | 1 | 1
PageFreeList | getFreeListForPage(int) | 1 | 1
PageFreeList | getFreeList(int) | 5 | 10
void | freePage(int) | 1 | 4
void | allocatePage(int) | 1 | 2
boolean | isUsed(int) | 1 | 1
void | allocatePages(IntArray;int;BitField;int) | 2 | 6
int | allocatePage() | 3 | 3
int | allocatePage(BitField;int) | 4 | 7
void | increaseFileSize() | 3 | 6
void | increaseFileSize(int) | 2 | 8
void | free(int) | 1 | 1
void | free(int;boolean) | 6 | 3
void | freeUnused(int) | 2 | 4
Data | createData() | 1 | 1
Data | readPage(int) | 1 | 3
void | readPage(int;Data) | 4 | 4
int | getPageSize() | 1 | 1
int | getPageCount() | 1 | 1
void | writePage(int;Data) | 4 | 8
void | removeRecord(int) | 1 | 1
Database | getDatabase() | 1 | 1
boolean | recover() | 10 | 23
void | logAddOrRemoveRow(Session;int;Row;boolean) | 3 | 0
void | commit(Session) | 5 | 11
void | prepareCommit(Session;String) | 1 | 1
boolean | isNew() | 1 | 1
void | allocateIfIndexRoot(int;int;Row) | 3 | 2
void | redoDelete(int;long) | 1 | 4
void | redo(int;Row;boolean) | 7 | 5
void | redoTruncate(int) | 1 | 3
void | openMetaIndex() | 1 | 21
void | readMetaData() | 3 | 6
void | removeMeta(Row) | 4 | 5
void | addMeta(Row;Session;boolean) | 13 | 37
void | addIndex(PageIndex) | 1 | 1
void | addMeta(PageIndex;Session) | 6 | 17
void | removeMeta(Index;Session) | 4 | 0
void | removeMetaIndex(Index;Session) | 2 | 4
void | setMaxLogSize(long) | 1 | 1
void | setInDoubtTransactionState(int;int;boolean) | 1 | 4
ArrayList<InDoubtTransaction> | getInDoubtTransactions() | 1 | 1
boolean | isRecoveryRunning() | 1 | 1
void | checkOpen() | 2 | 1
long | getWriteCountTotal() | 1 | 1
long | getWriteCount() | 1 | 1
long | getReadCount() | 1 | 1
void | logTruncate(Session;int) | 2 | 2
int | getRootPageId(int) | 1 | 1
Cache | getCache() | 1 | 1
void | checksumSet(byte[];int) | 2 | 11
boolean | checksumTest(byte[];int;int) | 2 | 9
void | incrementChangeCount() | 1 | 1
int | getChangeCount() | 1 | 1
void | setLogMode(int) | 1 | 1
int | getLogMode() | 1 | 1
void | setLockFile(boolean) | 1 | 1
BitField | getObjectIds() | 2 | 5
Session | getSystemSession() | 1 | 1
void | setBackup(boolean) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 16
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 7

Line start | Criticity class | Rule
--- | --- | ---
00749 | INFO | QC-JAV999996[00749] CPD de longueur 125 commencant en 3780 (ligne 749) et 3923 (ligne 765): { int indexId = data . readVarInt ( ) ; PageIndex idx = metaObjects . get ( indexId ) ; if ( idx == null ) { throw DbException . get ( ErrorCode . FILE_CORRUPTED_1 , ( "index not found " + indexId ) ) ; } if ( ! ( idx instanceof PageDataIndex ) ) { throw DbException . get ( ErrorCode . FILE_CORRUPTED_1 , ( "not a data index " + ( indexId + ( " " + idx ) ) ) ) ; } PageDataIndex index = ( PageDataIndex ) idx ; if ( statistics != null ) { statisticsIncrement ( index . getTable ( ) . getName ( ) + ( " . " + ( index . getName ( ) + " read" ) ) ) ; } p = PageDataLeaf
00749 | INFO | QC-JAV999996[00749] CPD de longueur 51 commencant en 3780 (ligne 749) et 4101 (ligne 788): { int indexId = data . readVarInt ( ) ; PageIndex idx = metaObjects . get ( indexId ) ; if ( idx == null ) { throw DbException . get ( ErrorCode . FILE_CORRUPTED_1 , ( "index not found " + indexId ) ) ; } if ( ! ( idx instanceof PageDataIndex
00749 | INFO | QC-JAV999996[00749] (Nb max de CPD atteint :3) CPD de longueur 51 commencant en 3780 (ligne 749) et 4244 (ligne 804): { int indexId = data . readVarInt ( ) ; PageIndex idx = metaObjects . get ( indexId ) ; if ( idx == null ) { throw DbException . get ( ErrorCode . FILE_CORRUPTED_1 , ( "index not found " + indexId ) ) ; } if ( ! ( idx instanceof PageDataIndex
00765 | INFO | QC-JAV999996[00765] CPD de longueur 51 commencant en 3923 (ligne 765) et 4101 (ligne 788): { int indexId = data . readVarInt ( ) ; PageIndex idx = metaObjects . get ( indexId ) ; if ( idx == null ) { throw DbException . get ( ErrorCode . FILE_CORRUPTED_1 , ( "index not found " + indexId ) ) ; } if ( ! ( idx instanceof PageDataIndex
00765 | INFO | QC-JAV999996[00765] CPD de longueur 51 commencant en 3923 (ligne 765) et 4244 (ligne 804): { int indexId = data . readVarInt ( ) ; PageIndex idx = metaObjects . get ( indexId ) ; if ( idx == null ) { throw DbException . get ( ErrorCode . FILE_CORRUPTED_1 , ( "index not found " + indexId ) ) ; } if ( ! ( idx instanceof PageDataIndex
00788 | INFO | QC-JAV999996[00788] CPD de longueur 125 commencant en 4101 (ligne 788) et 4244 (ligne 804): { int indexId = data . readVarInt ( ) ; PageIndex idx = metaObjects . get ( indexId ) ; if ( idx == null ) { throw DbException . get ( ErrorCode . FILE_CORRUPTED_1 , ( "index not found " + indexId ) ) ; } if ( ! ( idx instanceof PageBtreeIndex ) ) { throw DbException . get ( ErrorCode . FILE_CORRUPTED_1 , ( "not a btree index " + ( indexId + ( " " + idx ) ) ) ) ; } PageBtreeIndex index = ( PageBtreeIndex ) idx ; if ( statistics != null ) { statisticsIncrement ( index . getTable ( ) . getName ( ) + ( " . " + ( index . getName ( ) + " read" ) ) ) ; } p = PageBtreeLeaf
01906 | INFO | QC-JAV999996[01906] CPD de longueur 105 commencant en 9712 (ligne 1906) et 9906 (ligne 1925): 255 ) , s2 = 255 + s1 ; s2 += ( s1 += ( d [ 6 ] _ 255 ) ) ; s2 += ( s1 += ( d [ ( ( ps __ 1 ) - 1 ) ] _ 255 ) ) ; s2 += ( s1 += ( d [ ( ps __ 1 ) ] _ 255 ) ) ; s2 += ( s1 += ( d [ ( ps - 2 ) ] _ 255 ) ) ; s2 += ( s1 += ( d [ ( ps - 1 ) ] _ 255 ) ) ; d
00551 | MAJOR | QC-JAV000001[00551] Avoid declaring class instance within loop, performance impact
00552 | MAJOR | QC-JAV000001[00552] Avoid declaring class instance within loop, performance impact
00556 | MAJOR | QC-JAV000001[00556] Avoid declaring class instance within loop, performance impact
00573 | MAJOR | QC-JAV000001[00573] Avoid declaring class instance within loop, performance impact
00578 | MAJOR | QC-JAV000001[00578] Avoid declaring class instance within loop, performance impact
00578 | MAJOR | QC-JAV000001[00578] Avoid declaring class instance within loop, performance impact
00875 | MAJOR | QC-JAV000001[00875] Avoid declaring class instance within loop, performance impact
01153 | MAJOR | QC-JAV000001[01153] Avoid declaring class instance within loop, performance impact
01575 | MAJOR | QC-JAV000001[01575] Avoid declaring class instance within loop, performance impact
01585 | MAJOR | QC-JAV000001[01585] Avoid declaring class instance within loop, performance impact
01636 | MAJOR | QC-JAV000001[01636] Avoid declaring class instance within loop, performance impact
01661 | MAJOR | QC-JAV000001[01661] Avoid declaring class instance within loop, performance impact
01662 | MAJOR | QC-JAV000001[01662] Avoid declaring class instance within loop, performance impact
01665 | MAJOR | QC-JAV000001[01665] Avoid declaring class instance within loop, performance impact
01669 | MAJOR | QC-JAV000001[01669] Avoid declaring class instance within loop, performance impact
01970 | MAJOR | QC-JAV000001[01970] Avoid declaring class instance within loop, performance impact

#### File lecode\store\PageStreamData.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Page | org.h2.store.PageStreamData

Module / class or interface : org.h2.store.PageStreamData

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageStreamData | PageStreamData(PageStore;int;int;int) | 1 | 4
PageStreamData | read(PageStore;Data;int) | 1 | 4
PageStreamData | create(PageStore;int;int;int) | 1 | 1
void | read() | 1 | 5
void | initWrite() | 1 | 6
int | write(byte[];int;int) | 1 | 4
void | write() | 1 | 1
int | getCapacity(int) | 1 | 1
void | read(int;byte[];int;int) | 1 | 1
int | getRemaining() | 1 | 1
int | getMemory() | 1 | 1
void | moveTo(Session;int) | 1 | 0
int | getLogKey() | 1 | 1
String | toString() | 1 | 1
boolean | canRemove() | 1 | 1
int | getReadStart() | 1 | 1
boolean | canMove() | 1 | 1

#### File lecode\store\PageStreamTrunk.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Page | org.h2.store.PageStreamTrunk

Module / class or interface : org.h2.store.PageStreamTrunk

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
PageStreamTrunk | PageStreamTrunk(PageStore;int;int;int;int;int[]) | 1 | 7
PageStreamTrunk | PageStreamTrunk(PageStore;Data;int) | 1 | 3
PageStreamTrunk | read(PageStore;Data;int) | 1 | 3
PageStreamTrunk | create(PageStore;int;int;int;int;int[]) | 1 | 1
void | read() | 2 | 11
int | getPageData(int) | 2 | 2
void | write() | 2 | 11
int | getPagesAddressed(int) | 1 | 1
boolean | contains(int) | 3 | 3
int | free(int) | 5 | 8
int | getMemory() | 1 | 1
void | moveTo(Session;int) | 1 | 0
int | getLogKey() | 1 | 1
int | getNextTrunk() | 1 | 1
boolean | canRemove() | 1 | 1
String | toString() | 1 | 1
boolean | canMove() | 1 | 1

#### File lecode\store\RecoverTester.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.RecoverTester

Module / class or interface : org.h2.store.RecoverTester

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | init(String) | 2 | 3
RecoverTester | getInstance() | 2 | 2
void | log(int;String;byte[];long) | 6 | 12
void | testDatabase(String;PrintWriter) | 15 | 30
void | setTestEvery(int) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1

Line start | Criticity class | Rule
--- | --- | ---
00140 | MAJOR | QC-JAVCWE390[00140] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\store\SessionState.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.SessionState

Module / class or interface : org.h2.store.SessionState

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
boolean | isCommitted(int;int) | 2 | 2
String | toString() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 4

Line start | Criticity class | Rule
--- | --- | ---
00019 | MAJOR | QC-JAVCWE493[00019] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00024 | MAJOR | QC-JAVCWE493[00024] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00029 | MAJOR | QC-JAVCWE493[00029] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00034 | MAJOR | QC-JAVCWE493[00034] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)

#### File lecode\store\WriterThread.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.WriterThread

Module / class or interface : org.h2.store.WriterThread

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
WriterThread | WriterThread(Database;int) | 1 | 2
void | setWriteDelay(int) | 1 | 1
WriterThread | create(Database;int) | 1 | 6
void | run() | 2 | 4
void | stopThread() | 1 | 2
void | startThread() | 1 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 5

Line start | Criticity class | Rule
--- | --- | ---
00076 | MAJOR | QC-JAV000001[00076] Avoid declaring class instance within loop, performance impact
00088 | MAJOR | QC-JAV000001[00088] Avoid declaring class instance within loop, performance impact
00089 | MAJOR | QC-JAV000001[00089] Avoid declaring class instance within loop, performance impact
00105 | MAJOR | QC-JAV000001[00105] Avoid declaring class instance within loop, performance impact
00105 | MAJOR | QC-JAV000001[00105] Avoid declaring class instance within loop, performance impact
00105 | MAJOR | QC-JAVCWE390[00105] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\store\fs\FileBase.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
FileChannel | org.h2.store.fs.FileBase

Module / class or interface : org.h2.store.fs.FileBase

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
long | size() | 1 | 1
long | position() | 1 | 1
FileChannel | position(long) | 1 | 1
int | read(ByteBuffer) | 1 | 1
int | write(ByteBuffer) | 1 | 1
int | read(ByteBuffer;long) | 1 | 5
int | write(ByteBuffer;long) | 1 | 5
FileChannel | truncate(long) | 1 | 1
void | force(boolean) | 1 | 0
void | implCloseChannel() | 1 | 0
FileLock | lock(long;long;boolean) | 1 | 1
MappedByteBuffer | map(MapMode;long;long) | 1 | 1
long | read(ByteBuffer[];int;int) | 1 | 1
long | transferFrom(ReadableByteChannel;long;long) | 1 | 1
long | transferTo(long;long;WritableByteChannel) | 1 | 1
FileLock | tryLock(long;long;boolean) | 1 | 1
long | write(ByteBuffer[];int;int) | 1 | 1

#### File lecode\store\fs\FileChannelInputStream.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
InputStream | org.h2.store.fs.FileChannelInputStream

Module / class or interface : org.h2.store.fs.FileChannelInputStream

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FileChannelInputStream | FileChannelInputStream(FileChannel) | 1 | 1
int | read() | 2 | 3
int | read(byte[]) | 1 | 1
int | read(byte[];int;int) | 2 | 3
void | close() | 1 | 1

#### File lecode\store\fs\FileChannelOutputStream.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
OutputStream | org.h2.store.fs.FileChannelOutputStream

Module / class or interface : org.h2.store.fs.FileChannelOutputStream

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FileChannelOutputStream | FileChannelOutputStream(FileChannel;boolean) | 3 | 4
void | write(int) | 1 | 2
void | write(byte[]) | 1 | 1
void | write(byte[];int;int) | 1 | 1
void | close() | 1 | 1

#### File lecode\store\fs\FilePath.java 5 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.fs.FilePath

Module / class or interface : org.h2.store.fs.FilePath

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FilePath | get(String) | 3 | 8
void | registerDefaultProviders() | 3 | 2
void | register(FilePath) | 1 | 2
void | unregister(FilePath) | 1 | 2
long | size() | 1 | 1
void | moveTo(FilePath) | 1 | 1
boolean | createFile() | 1 | 1
boolean | exists() | 1 | 1
void | delete() | 1 | 1
List<FilePath> | newDirectoryStream() | 1 | 1
FilePath | toRealPath() | 1 | 1
FilePath | getParent() | 1 | 1
boolean | isDirectory() | 1 | 1
boolean | isAbsolute() | 1 | 1
long | lastModified() | 1 | 1
boolean | canWrite() | 1 | 1
void | createDirectory() | 1 | 1
String | getName() | 1 | 2
OutputStream | newOutputStream(boolean) | 1 | 1
FileChannel | open(String) | 1 | 1
InputStream | newInputStream() | 1 | 1
boolean | setReadOnly() | 1 | 1
FilePath | createTempFile(String;boolean;boolean) | 2 | 3
String | getNextTempFileNamePart(boolean) | 2 | 4
String | toString() | 1 | 1
String | getScheme() | 1 | 1
FilePath | getPath(String) | 1 | 1
FilePath | unwrap() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 4

Line start | Criticity class | Rule
--- | --- | ---
00081 | MAJOR | QC-JAV000001[00081] Avoid declaring class instance within loop, performance impact
00081 | MAJOR | QC-JAV000001[00081] Avoid declaring class instance within loop, performance impact
00083 | MAJOR | QC-JAV000001[00083] Avoid declaring class instance within loop, performance impact
00083 | MAJOR | QC-JAVCWE390[00083] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00251 | MAJOR | QC-JAV000001[00251] Avoid declaring class instance within loop, performance impact

#### File lecode\store\fs\FilePathDisk.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
FilePath | org.h2.store.fs.FilePathDisk
FileBase | org.h2.store.fs.FileDisk

Module / class or interface : org.h2.store.fs.FilePathDisk

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FilePathDisk | getPath(String) | 1 | 3
long | size() | 1 | 1
String | translateFileName(String) | 2 | 3
String | expandUserHomeDirectory(String) | 2 | 3
void | moveTo(FilePath) | 6 | 11
void | wait(int) | 2 | 3
boolean | createFile() | 2 | 4
boolean | exists() | 1 | 1
void | delete() | 3 | 7
List<FilePath> | newDirectoryStream() | 2 | 5
boolean | canWrite() | 1 | 1
boolean | setReadOnly() | 1 | 2
FilePathDisk | toRealPath() | 1 | 3
FilePath | getParent() | 1 | 2
boolean | isDirectory() | 1 | 1
boolean | isAbsolute() | 1 | 1
long | lastModified() | 1 | 1
boolean | canWriteInternal(File) | 3 | 5
void | createDirectory() | 5 | 7
OutputStream | newOutputStream(boolean) | 2 | 6
InputStream | newInputStream() | 3 | 7
void | freeMemoryAndFinalize() | 3 | 9
FileChannel | open(String) | 1 | 5
String | getScheme() | 1 | 1
FilePath | createTempFile(String;boolean;boolean) | 5 | 8
FileDisk | FileDisk(String;String) | 1 | 2
void | force(boolean) | 9 | 3
FileChannel | truncate(long) | 2 | 2
FileLock | tryLock(long;long;boolean) | 1 | 1
void | implCloseChannel() | 1 | 1
long | position() | 1 | 1
long | size() | 1 | 1
int | read(ByteBuffer) | 2 | 3
FileChannel | position(long) | 1 | 2
int | write(ByteBuffer) | 1 | 4
String | toString() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 3
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00112 | MAJOR | QC-JAVCWE390[00112] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00122 | MAJOR | QC-JAV000001[00122] Avoid declaring class instance within loop, performance impact
00225 | MAJOR | QC-JAVCWE390[00225] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00350 | MAJOR | QC-JAV000001[00350] Avoid declaring class instance within loop, performance impact
00359 | MAJOR | QC-JAV000001[00359] Avoid declaring class instance within loop, performance impact
00359 | MAJOR | QC-JAVCWE390[00359] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\store\fs\FilePathMem.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
FilePath | org.h2.store.fs.FilePathMem
FilePathMem | org.h2.store.fs.FilePathMemLZF
FileBase | org.h2.store.fs.FileMem
java.lang.Object | org.h2.store.fs.FileMemData

Module / class or interface : org.h2.store.fs.FilePathMem

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FilePathMem | getPath(String) | 1 | 3
long | size() | 1 | 1
void | moveTo(FilePath) | 1 | 4
boolean | createFile() | 2 | 2
boolean | exists() | 2 | 2
void | delete() | 2 | 2
List<FilePath> | newDirectoryStream() | 2 | 2
boolean | setReadOnly() | 1 | 1
boolean | canWrite() | 1 | 1
FilePathMem | getParent() | 1 | 2
boolean | isDirectory() | 2 | 2
boolean | isAbsolute() | 1 | 1
FilePathMem | toRealPath() | 1 | 1
long | lastModified() | 1 | 1
void | createDirectory() | 2 | 1
OutputStream | newOutputStream(boolean) | 1 | 4
InputStream | newInputStream() | 1 | 3
FileChannel | open(String) | 1 | 2
FileMemData | getMemoryFile() | 2 | 2
boolean | isRoot() | 1 | 1
String | getCanonicalPath(String) | 2 | 4
String | getScheme() | 1 | 1
boolean | compressed() | 1 | 1
boolean | compressed() | 1 | 1
String | getScheme() | 1 | 1
FileMem | FileMem(FileMemData;boolean) | 1 | 2
long | size() | 1 | 1
FileChannel | truncate(long) | 2 | 4
FileChannel | position(long) | 1 | 2
int | write(ByteBuffer) | 2 | 6
int | read(ByteBuffer) | 3 | 8
long | position() | 1 | 1
void | implCloseChannel() | 1 | 1
void | force(boolean) | 1 | 0
FileLock | tryLock(long;long;boolean) | 5 | 2
String | toString() | 1 | 1
FileMemData | FileMemData(String;boolean) | 1 | 4
boolean | lockExclusive() | 2 | 3
boolean | lockShared() | 2 | 3
void | unlock() | 3 | 2
void | compressLater(byte[][];int) | 1 | 4
void | expand(byte[][];int) | 3 | 4
void | compress(byte[][];int) | 2 | 2
void | touch(boolean) | 2 | 2
long | length() | 1 | 1
void | truncate(long) | 4 | 5
void | changeLength(long) | 3 | 6
long | readWrite(long;byte[];int;int;boolean) | 7 | 10
void | setName(String) | 1 | 1
String | getName() | 1 | 1
long | getLastModified() | 1 | 1
boolean | canWrite() | 1 | 1
boolean | setReadOnly() | 1 | 2

#### File lecode\store\fs\FilePathNio.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
FilePathWrapper | org.h2.store.fs.FilePathNio
FileBase | org.h2.store.fs.FileNio

Module / class or interface : org.h2.store.fs.FilePathNio

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FileChannel | open(String) | 1 | 1
String | getScheme() | 1 | 1
FileNio | FileNio(String;String) | 1 | 2
void | implCloseChannel() | 1 | 1
long | position() | 1 | 1
long | size() | 1 | 1
int | read(ByteBuffer) | 1 | 1
FileChannel | position(long) | 1 | 2
int | read(ByteBuffer;long) | 1 | 1
int | write(ByteBuffer;long) | 1 | 1
FileChannel | truncate(long) | 2 | 3
void | force(boolean) | 1 | 1
int | write(ByteBuffer) | 1 | 2
FileLock | tryLock(long;long;boolean) | 1 | 1
String | toString() | 1 | 1

#### File lecode\store\fs\FilePathNioMapped.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
FilePathNio | org.h2.store.fs.FilePathNioMapped
FileBase | org.h2.store.fs.FileNioMapped

Module / class or interface : org.h2.store.fs.FilePathNioMapped

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FileChannel | open(String) | 1 | 1
String | getScheme() | 1 | 1
FileNioMapped | FileNioMapped(String;String) | 3 | 5
void | unMap() | 4 | 6
void | reMap() | 4 | 11
void | checkFileSizeLimit(long) | 2 | 1
void | implCloseChannel() | 2 | 3
long | position() | 1 | 1
String | toString() | 1 | 1
long | size() | 1 | 1
int | read(ByteBuffer) | 3 | 13
FileChannel | position(long) | 1 | 3
FileChannel | truncate(long) | 2 | 2
void | setFileLength(long) | 2 | 8
void | force(boolean) | 1 | 2
int | write(ByteBuffer) | 2 | 6
FileLock | tryLock(long;long;boolean) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00088 | MAJOR | QC-JAVCWE390[00088] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00207 | MAJOR | QC-JAV000001[00207] Avoid declaring class instance within loop, performance impact

#### File lecode\store\fs\FilePathRec.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
FilePathWrapper | org.h2.store.fs.FilePathRec
FileBase | org.h2.store.fs.FileRec

Module / class or interface : org.h2.store.fs.FilePathRec

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | register() | 1 | 1
void | setRecorder(Recorder) | 1 | 1
boolean | createFile() | 1 | 2
FilePath | createTempFile(String;boolean;boolean) | 1 | 2
void | delete() | 1 | 2
FileChannel | open(String) | 1 | 1
OutputStream | newOutputStream(boolean) | 1 | 2
void | moveTo(FilePath) | 1 | 2
boolean | isTrace() | 1 | 1
void | setTrace(boolean) | 1 | 1
void | log(int;String) | 1 | 1
void | log(int;String;byte[];long) | 2 | 1
String | getScheme() | 1 | 1
FileRec | FileRec(FilePathRec;FileChannel;String) | 1 | 3
void | implCloseChannel() | 1 | 1
long | position() | 1 | 1
long | size() | 1 | 1
int | read(ByteBuffer) | 1 | 1
FileChannel | position(long) | 1 | 2
FileChannel | truncate(long) | 1 | 3
void | force(boolean) | 1 | 1
int | write(ByteBuffer) | 2 | 8
FileLock | tryLock(long;long;boolean) | 1 | 1

#### File lecode\store\fs\FilePathSplit.java 14 rule violations (XML file)

Ancestor class | Children classes
--- | ---
FilePathWrapper | org.h2.store.fs.FilePathSplit
FileBase | org.h2.store.fs.FileSplit

Module / class or interface : org.h2.store.fs.FilePathSplit

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
String | getPrefix() | 1 | 1
FilePath | unwrap(String) | 1 | 1
boolean | setReadOnly() | 4 | 5
void | delete() | 4 | 3
long | lastModified() | 4 | 5
long | size() | 4 | 5
ArrayList<FilePath> | newDirectoryStream() | 3 | 6
InputStream | newInputStream() | 4 | 5
FileChannel | open(String) | 10 | 14
long | getDefaultMaxLength() | 1 | 1
void | closeAndThrow(int;FileChannel[];FileChannel;long) | 2 | 3
OutputStream | newOutputStream(boolean) | 1 | 2
void | moveTo(FilePath) | 4 | 4
String[] | parse(String) | 4 | 7
FilePath | getBase(int) | 1 | 1
String | getName(int) | 1 | 1
String | getScheme() | 1 | 1
FileSplit | FileSplit(FilePathSplit;String;FileChannel[];long;long) | 1 | 5
void | implCloseChannel() | 2 | 1
long | position() | 1 | 1
long | size() | 1 | 1
int | read(ByteBuffer) | 3 | 11
FileChannel | position(long) | 1 | 2
FileChannel | getFileChannel() | 1 | 8
FileChannel | truncate(long) | 4 | 10
void | force(boolean) | 2 | 1
int | write(ByteBuffer) | 5 | 17
FileLock | tryLock(long;long;boolean) | 1 | 1
String | toString() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 13

Line start | Criticity class | Rule
--- | --- | ---
00041 | MAJOR | QC-JAV000001[00041] Avoid declaring class instance within loop, performance impact
00053 | MAJOR | QC-JAV000001[00053] Avoid declaring class instance within loop, performance impact
00065 | MAJOR | QC-JAV000001[00065] Avoid declaring class instance within loop, performance impact
00079 | MAJOR | QC-JAV000001[00079] Avoid declaring class instance within loop, performance impact
00093 | MAJOR | QC-JAV000001[00093] Avoid declaring class instance within loop, performance impact
00104 | MAJOR | QC-JAV000001[00104] Avoid declaring class instance within loop, performance impact
00106 | MAJOR | QC-JAV000001[00106] Avoid declaring class instance within loop, performance impact
00119 | MAJOR | QC-JAV000001[00119] Avoid declaring class instance within loop, performance impact
00140 | MAJOR | QC-JAV000001[00140] Avoid declaring class instance within loop, performance impact
00180 | MAJOR | QC-JAV000001[00180] Avoid declaring class instance within loop, performance impact
00206 | MAJOR | QC-JAVCWE390[00206] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00296 | MAJOR | QC-JAV000001[00296] Avoid declaring class instance within loop, performance impact
00298 | MAJOR | QC-JAV000001[00298] Avoid declaring class instance within loop, performance impact
00321 | MAJOR | QC-JAV000001[00321] Avoid declaring class instance within loop, performance impact

#### File lecode\store\fs\FilePathWrapper.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
FilePath | org.h2.store.fs.FilePathWrapper

Module / class or interface : org.h2.store.fs.FilePathWrapper

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FilePathWrapper | getPath(String) | 1 | 1
FilePathWrapper | wrap(FilePath) | 1 | 1
FilePath | unwrap() | 1 | 1
FilePathWrapper | create(String;FilePath) | 1 | 5
String | getPrefix() | 1 | 1
FilePath | unwrap(String) | 1 | 1
FilePath | getBase() | 1 | 1
boolean | canWrite() | 1 | 1
void | createDirectory() | 1 | 1
boolean | createFile() | 1 | 1
void | delete() | 1 | 1
boolean | exists() | 1 | 1
FilePath | getParent() | 1 | 1
boolean | isAbsolute() | 1 | 1
boolean | isDirectory() | 1 | 1
long | lastModified() | 1 | 1
FilePath | toRealPath() | 1 | 1
List<FilePath> | newDirectoryStream() | 2 | 5
void | moveTo(FilePath) | 1 | 1
InputStream | newInputStream() | 1 | 1
OutputStream | newOutputStream(boolean) | 1 | 1
FileChannel | open(String) | 1 | 1
boolean | setReadOnly() | 1 | 1
long | size() | 1 | 1
FilePath | createTempFile(String;boolean;boolean) | 1 | 1

#### File lecode\store\fs\FilePathZip.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
FilePath | org.h2.store.fs.FilePathZip
FileBase | org.h2.store.fs.FileZip

Module / class or interface : org.h2.store.fs.FilePathZip

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FilePathZip | getPath(String) | 1 | 3
void | createDirectory() | 1 | 0
boolean | createFile() | 1 | 1
void | delete() | 1 | 1
boolean | exists() | 2 | 4
long | lastModified() | 1 | 1
FilePath | getParent() | 1 | 2
boolean | isAbsolute() | 1 | 2
FilePath | unwrap() | 1 | 1
boolean | isDirectory() | 2 | 5
boolean | canWrite() | 1 | 1
boolean | setReadOnly() | 1 | 1
long | size() | 1 | 4
ArrayList<FilePath> | newDirectoryStream() | 3 | 8
InputStream | newInputStream() | 1 | 1
FileChannel | open(String) | 2 | 4
OutputStream | newOutputStream(boolean) | 1 | 1
void | moveTo(FilePath) | 1 | 1
String | translateFileName(String) | 3 | 4
FilePath | toRealPath() | 1 | 1
String | getEntryName() | 4 | 7
ZipFile | openZipFile() | 1 | 2
FilePath | createTempFile(String;boolean;boolean) | 2 | 2
String | getScheme() | 1 | 1
FileZip | FileZip(ZipFile;ZipEntry) | 1 | 3
long | position() | 1 | 1
long | size() | 1 | 1
int | read(ByteBuffer) | 2 | 6
void | seek() | 7 | 5
FileChannel | position(long) | 1 | 2
FileChannel | truncate(long) | 1 | 1
void | force(boolean) | 1 | 0
int | write(ByteBuffer) | 1 | 1
FileLock | tryLock(long;long;boolean) | 2 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 4

Line start | Criticity class | Rule
--- | --- | ---
00088 | MAJOR | QC-JAV000001[00088] Avoid declaring class instance within loop, performance impact
00089 | MAJOR | QC-JAV000001[00089] Avoid declaring class instance within loop, performance impact
00139 | MAJOR | QC-JAV000001[00139] Avoid declaring class instance within loop, performance impact
00140 | MAJOR | QC-JAV000001[00140] Avoid declaring class instance within loop, performance impact

#### File lecode\store\fs\FileUtils.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.fs.FileUtils

Module / class or interface : org.h2.store.fs.FileUtils

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
boolean | exists(String) | 1 | 1
void | createDirectory(String) | 1 | 1
boolean | createFile(String) | 1 | 1
void | delete(String) | 1 | 1
String | toRealPath(String) | 1 | 1
String | getParent(String) | 1 | 2
boolean | isAbsolute(String) | 1 | 1
void | moveTo(String;String) | 1 | 1
String | getName(String) | 1 | 1
List<String> | newDirectoryStream(String) | 2 | 7
long | lastModified(String) | 1 | 1
long | size(String) | 1 | 1
boolean | isDirectory(String) | 1 | 1
FileChannel | open(String;String) | 1 | 1
InputStream | newInputStream(String) | 1 | 1
OutputStream | newOutputStream(String;boolean) | 1 | 1
boolean | canWrite(String) | 1 | 1
boolean | setReadOnly(String) | 1 | 1
String | unwrap(String) | 1 | 1
void | deleteRecursive(String;boolean) | 5 | 0
void | createDirectories(String) | 4 | 0
void | copy(String;String) | 1 | 3
boolean | tryDelete(String) | 1 | 3
String | createTempFile(String;String;boolean;boolean) | 1 | 1
void | readFully(FileChannel;ByteBuffer) | 3 | 2
void | writeFully(FileChannel;ByteBuffer) | 2 | 2

#### File lecode\store\fs\Recorder.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.store.fs.Recorder

Module / class or interface : org.h2.store.fs.Recorder

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | log(int;String;byte[];long) | 1 | 1

#### File lecode\table\Column.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.table.Column

Module / class or interface : org.h2.table.Column

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Column | Column(String;int) | 1 | 1
Column | Column(String;int;long;int;int) | 2 | 9
boolean | equals(Object) | 6 | 6
int | hashCode() | 2 | 2
Column | getClone() | 1 | 3
Value | convert(Value) | 2 | 2
boolean | getComputed() | 1 | 1
Value | computeValue(Session;Row) | 1 | 3
void | setComputedExpression(Expression) | 1 | 2
void | setTable(Table;int) | 1 | 2
Table | getTable() | 1 | 1
void | setDefaultExpression(Session;Expression) | 3 | 2
int | getColumnId() | 1 | 1
String | getSQL() | 1 | 1
String | getName() | 1 | 1
int | getType() | 1 | 1
long | getPrecision() | 1 | 1
void | setPrecision(long) | 1 | 1
int | getDisplaySize() | 1 | 1
int | getScale() | 1 | 1
void | setNullable(boolean) | 1 | 1
Value | validateConvertUpdateSequence(Session;Value) | 11 | 6
void | updateSequenceIfRequired(Session;Value) | 6 | 4
void | convertAutoIncrementToSequence(Session;Schema;int;boolean) | 5 | 15
void | prepareExpression(Session) | 2 | 3
String | getCreateSQL() | 12 | 12
boolean | isNullable() | 1 | 1
void | setOriginalSQL(String) | 1 | 1
String | getOriginalSQL() | 1 | 1
Expression | getDefaultExpression() | 1 | 1
boolean | isAutoIncrement() | 1 | 1
void | setAutoIncrement(boolean;long;long) | 2 | 5
void | setConvertNullToDefault(boolean) | 1 | 1
void | rename(String) | 1 | 1
void | setSequence(Sequence) | 1 | 1
Sequence | getSequence() | 1 | 1
int | getSelectivity() | 1 | 1
void | setSelectivity(int) | 1 | 2
void | addCheckConstraint(Session;Expression) | 4 | 10
Expression | getCheckConstraint(Session;String) | 2 | 9
String | getDefaultSQL() | 1 | 1
int | getPrecisionAsInt() | 1 | 1
DataType | getDataType() | 1 | 1
String | getCheckConstraintSQL(Session;String) | 1 | 2
void | setComment(String) | 1 | 1
String | getComment() | 1 | 1
void | setPrimaryKey(boolean) | 1 | 1
boolean | isEverything(ExpressionVisitor) | 5 | 3
boolean | isPrimaryKey() | 1 | 1
String | toString() | 1 | 1
boolean | isWideningConversion(Column) | 12 | 12
void | copy(Column) | 1 | 16

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00361 | MAJOR | QC-JAV000001[00361] Avoid declaring class instance within loop, performance impact
00362 | MAJOR | QC-JAV000001[00362] Avoid declaring class instance within loop, performance impact
00698 | CRITICAL | QC-JAVCWE476[00698] The argument source is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk

#### File lecode\table\ColumnResolver.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.table.ColumnResolver

Module / class or interface : org.h2.table.ColumnResolver

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
String | getTableAlias() | 1 | 1
Column[] | getColumns() | 1 | 1
Column[] | getSystemColumns() | 1 | 1
Column | getRowIdColumn() | 1 | 1
String | getSchemaName() | 1 | 1
Value | getValue(Column) | 1 | 1
TableFilter | getTableFilter() | 1 | 1
Select | getSelect() | 1 | 1
Expression | optimize(ExpressionColumn;Column) | 1 | 1

#### File lecode\table\FunctionTable.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Table | org.h2.table.FunctionTable

Module / class or interface : org.h2.table.FunctionTable

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
FunctionTable | FunctionTable(Schema;Session;Expression;FunctionCall) | 7 | 25
void | lock(Session;boolean;boolean) | 1 | 0
void | close(Session) | 1 | 0
void | unlock(Session) | 1 | 0
boolean | isLockedExclusively() | 1 | 1
Index | addIndex(Session;String;int;IndexColumn[];IndexType;boolean;String) | 1 | 1
void | removeRow(Session;Row) | 1 | 1
void | truncate(Session) | 1 | 1
boolean | canDrop() | 1 | 1
void | addRow(Session;Row) | 1 | 1
void | checkSupportAlter() | 1 | 1
String | getTableType() | 1 | 1
Index | getScanIndex(Session) | 1 | 1
ArrayList<Index> | getIndexes() | 1 | 1
boolean | canGetRowCount() | 1 | 1
long | getRowCount(Session) | 1 | 1
String | getCreateSQL() | 1 | 1
String | getDropSQL() | 1 | 1
void | checkRename() | 1 | 1
ResultInterface | getResult(Session) | 4 | 8
ResultSet | getResultSet(Session) | 1 | 2
ValueResultSet | getValueResultSet(Session) | 2 | 4
boolean | isFast() | 1 | 1
long | getMaxDataModificationId() | 1 | 1
Index | getUniqueIndex() | 1 | 1
String | getSQL() | 1 | 1
long | getRowCountApproximation() | 1 | 1
boolean | isDeterministic() | 1 | 1
boolean | canReference() | 1 | 1

#### File lecode\table\IndexColumn.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.table.IndexColumn

Module / class or interface : org.h2.table.IndexColumn

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
String | getSQL() | 5 | 5
IndexColumn[] | wrap(Column[]) | 2 | 6
void | mapColumns(IndexColumn[];Table) | 2 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 3

Line start | Criticity class | Rule
--- | --- | ---
00020 | MAJOR | QC-JAVCWE493[00020] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00025 | MAJOR | QC-JAVCWE493[00025] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00031 | MAJOR | QC-JAVCWE493[00031] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00058 | CRITICAL | QC-JAVCWE476[00058] The argument columns is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk

#### File lecode\table\LinkSchema.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.table.LinkSchema

Module / class or interface : org.h2.table.LinkSchema

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
LinkSchema | LinkSchema() | 1 | 0
ResultSet | linkSchema(Connection;String;String;String;String;String;String) | 1 | 14

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00054 | MAJOR | QC-JAV000001[00054] Avoid declaring class instance within loop, performance impact
00055 | MAJOR | QC-JAV000001[00055] Avoid declaring class instance within loop, performance impact

#### File lecode\table\MetaTable.java 108 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Table | org.h2.table.MetaTable

Module / class or interface : org.h2.table.MetaTable

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
MetaTable | MetaTable(Schema;int;int) | 31 | 95
Column[] | createColumns(String) | 4 | 9
String | getDropSQL() | 1 | 1
String | getCreateSQL() | 1 | 1
Index | addIndex(Session;String;int;IndexColumn[];IndexType;boolean;String) | 1 | 1
void | lock(Session;boolean;boolean) | 1 | 0
boolean | isLockedExclusively() | 1 | 1
String | identifier(String) | 2 | 2
ArrayList<Table> | getAllTables(Session) | 1 | 4
boolean | checkIndex(Session;String;Value;Value) | 7 | 5
String | replaceNullWithEmpty(String) | 1 | 1
boolean | hideTable(Table;Session) | 1 | 1
ArrayList<Row> | generateRows(Session;SearchRow;SearchRow) | 32 | 6
int | getRefAction(int) | 5 | 5
void | removeRow(Session;Row) | 1 | 1
void | addRow(Session;Row) | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 1
void | close(Session) | 1 | 0
void | unlock(Session) | 1 | 0
void | addPrivileges(ArrayList<Row>;DbObject;String;Table;String;int) | 5 | 4
void | addPrivilege(ArrayList<Row>;DbObject;String;Table;String;String) | 5 | 4
void | add(ArrayList<Row>;String) | 2 | 11
void | checkRename() | 1 | 1
void | checkSupportAlter() | 1 | 1
void | truncate(Session) | 1 | 1
long | getRowCount(Session) | 1 | 1
boolean | canGetRowCount() | 1 | 1
boolean | canDrop() | 1 | 1
String | getTableType() | 1 | 1
Index | getScanIndex(Session) | 1 | 1
ArrayList<Index> | getIndexes() | 2 | 5
long | getMaxDataModificationId() | 6 | 2
Index | getUniqueIndex() | 1 | 1
int | getMetaTableTypeCount() | 1 | 1
long | getRowCountApproximation() | 1 | 1
boolean | isDeterministic() | 1 | 1
boolean | canReference() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 104
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 4

Line start | Criticity class | Rule
--- | --- | ---
00635 | INFO | QC-JAV999996[00635] CPD de longueur 56 commencant en 2486 (ligne 635) et 2686 (ligne 681): { for ( Table table : getAllTables ( session ) ) { String tableName = identifier ( table . getName ( ) ) ; if ( ! checkIndex ( session , tableName , indexFrom , indexTo ) ) { continue ; } if ( hideTable ( table , session ) ) { continue ; } String
00635 | INFO | QC-JAV999996[00635] CPD de longueur 56 commencant en 2486 (ligne 635) et 3050 (ligne 747): { for ( Table table : getAllTables ( session ) ) { String tableName = identifier ( table . getName ( ) ) ; if ( ! checkIndex ( session , tableName , indexFrom , indexTo ) ) { continue ; } if ( hideTable ( table , session ) ) { continue ; } String
00681 | INFO | QC-JAV999996[00681] CPD de longueur 56 commencant en 2686 (ligne 681) et 3050 (ligne 747): { for ( Table table : getAllTables ( session ) ) { String tableName = identifier ( table . getName ( ) ) ; if ( ! checkIndex ( session , tableName , indexFrom , indexTo ) ) { continue ; } if ( hideTable ( table , session ) ) { continue ; } Column
01220 | INFO | QC-JAV999996[01220] CPD de longueur 72 commencant en 5715 (ligne 1220) et 5816 (ligne 1234): { for ( Right r : database . getAllRights ( ) ) { Table table = r . getGrantedTable ( ) ; if ( ( table == null ) || hideTable ( table , session ) ) { continue ; } String tableName = identifier ( table . getName ( ) ) ; if ( ! checkIndex ( session , tableName , indexFrom , indexTo ) ) { continue ; } addPrivileges
00529 | MAJOR | QC-JAV000001[00529] Avoid declaring class instance within loop, performance impact
00532 | MAJOR | QC-JAV000001[00532] Avoid declaring class instance within loop, performance impact
00637 | MAJOR | QC-JAV000001[00637] Avoid declaring class instance within loop, performance impact
00644 | MAJOR | QC-JAV000001[00644] Avoid declaring class instance within loop, performance impact
00683 | MAJOR | QC-JAV000001[00683] Avoid declaring class instance within loop, performance impact
00690 | MAJOR | QC-JAV000001[00690] Avoid declaring class instance within loop, performance impact
00691 | MAJOR | QC-JAV000001[00691] Avoid declaring class instance within loop, performance impact
00693 | MAJOR | QC-JAV000001[00693] Avoid declaring class instance within loop, performance impact
00694 | MAJOR | QC-JAV000001[00694] Avoid declaring class instance within loop, performance impact
00693 | MAJOR | QC-JAV000001[00693] Avoid declaring class instance within loop, performance impact
00694 | MAJOR | QC-JAV000001[00694] Avoid declaring class instance within loop, performance impact
00749 | MAJOR | QC-JAV000001[00749] Avoid declaring class instance within loop, performance impact
00756 | MAJOR | QC-JAV000001[00756] Avoid declaring class instance within loop, performance impact
00757 | MAJOR | QC-JAV000001[00757] Avoid declaring class instance within loop, performance impact
00759 | MAJOR | QC-JAV000001[00759] Avoid declaring class instance within loop, performance impact
00763 | MAJOR | QC-JAV000001[00763] Avoid declaring class instance within loop, performance impact
00765 | MAJOR | QC-JAV000001[00765] Avoid declaring class instance within loop, performance impact
00776 | MAJOR | QC-JAV000001[00776] Avoid declaring class instance within loop, performance impact
00777 | MAJOR | QC-JAV000001[00777] Avoid declaring class instance within loop, performance impact
00778 | MAJOR | QC-JAV000001[00778] Avoid declaring class instance within loop, performance impact
00779 | MAJOR | QC-JAV000001[00779] Avoid declaring class instance within loop, performance impact
00784 | MAJOR | QC-JAV000001[00784] Avoid declaring class instance within loop, performance impact
00785 | MAJOR | QC-JAV000001[00785] Avoid declaring class instance within loop, performance impact
00759 | MAJOR | QC-JAV000001[00759] Avoid declaring class instance within loop, performance impact
00763 | MAJOR | QC-JAV000001[00763] Avoid declaring class instance within loop, performance impact
00765 | MAJOR | QC-JAV000001[00765] Avoid declaring class instance within loop, performance impact
00776 | MAJOR | QC-JAV000001[00776] Avoid declaring class instance within loop, performance impact
00777 | MAJOR | QC-JAV000001[00777] Avoid declaring class instance within loop, performance impact
00778 | MAJOR | QC-JAV000001[00778] Avoid declaring class instance within loop, performance impact
00779 | MAJOR | QC-JAV000001[00779] Avoid declaring class instance within loop, performance impact
00784 | MAJOR | QC-JAV000001[00784] Avoid declaring class instance within loop, performance impact
00785 | MAJOR | QC-JAV000001[00785] Avoid declaring class instance within loop, performance impact
00765 | MAJOR | QC-JAV000001[00765] Avoid declaring class instance within loop, performance impact
00784 | MAJOR | QC-JAV000001[00784] Avoid declaring class instance within loop, performance impact
00785 | MAJOR | QC-JAV000001[00785] Avoid declaring class instance within loop, performance impact
00848 | MAJOR | QC-JAV000001[00848] Avoid declaring class instance within loop, performance impact
00968 | MAJOR | QC-JAV000001[00968] Avoid declaring class instance within loop, performance impact
00968 | MAJOR | QC-JAV000001[00968] Avoid declaring class instance within loop, performance impact
01027 | MAJOR | QC-JAV000001[01027] Avoid declaring class instance within loop, performance impact
01028 | MAJOR | QC-JAV000001[01028] Avoid declaring class instance within loop, performance impact
01029 | MAJOR | QC-JAV000001[01029] Avoid declaring class instance within loop, performance impact
01031 | MAJOR | QC-JAV000001[01031] Avoid declaring class instance within loop, performance impact
01032 | MAJOR | QC-JAV000001[01032] Avoid declaring class instance within loop, performance impact
01076 | MAJOR | QC-JAV000001[01076] Avoid declaring class instance within loop, performance impact
01076 | MAJOR | QC-JAV000001[01076] Avoid declaring class instance within loop, performance impact
01077 | MAJOR | QC-JAV000001[01077] Avoid declaring class instance within loop, performance impact
01143 | MAJOR | QC-JAV000001[01143] Avoid declaring class instance within loop, performance impact
01143 | MAJOR | QC-JAV000001[01143] Avoid declaring class instance within loop, performance impact
01144 | MAJOR | QC-JAV000001[01144] Avoid declaring class instance within loop, performance impact
01145 | MAJOR | QC-JAV000001[01145] Avoid declaring class instance within loop, performance impact
01150 | MAJOR | QC-JAV000001[01150] Avoid declaring class instance within loop, performance impact
01152 | MAJOR | QC-JAV000001[01152] Avoid declaring class instance within loop, performance impact
01145 | MAJOR | QC-JAV000001[01145] Avoid declaring class instance within loop, performance impact
01150 | MAJOR | QC-JAV000001[01150] Avoid declaring class instance within loop, performance impact
01152 | MAJOR | QC-JAV000001[01152] Avoid declaring class instance within loop, performance impact
01150 | MAJOR | QC-JAV000001[01150] Avoid declaring class instance within loop, performance impact
01152 | MAJOR | QC-JAV000001[01152] Avoid declaring class instance within loop, performance impact
01222 | MAJOR | QC-JAV000001[01222] Avoid declaring class instance within loop, performance impact
01226 | MAJOR | QC-JAV000001[01226] Avoid declaring class instance within loop, performance impact
01236 | MAJOR | QC-JAV000001[01236] Avoid declaring class instance within loop, performance impact
01240 | MAJOR | QC-JAV000001[01240] Avoid declaring class instance within loop, performance impact
01244 | MAJOR | QC-JAV000001[01244] Avoid declaring class instance within loop, performance impact
01246 | MAJOR | QC-JAV000001[01246] Avoid declaring class instance within loop, performance impact
01268 | MAJOR | QC-JAV000001[01268] Avoid declaring class instance within loop, performance impact
01272 | MAJOR | QC-JAV000001[01272] Avoid declaring class instance within loop, performance impact
01272 | MAJOR | QC-JAV000001[01272] Avoid declaring class instance within loop, performance impact
01312 | MAJOR | QC-JAV000001[01312] Avoid declaring class instance within loop, performance impact
01312 | MAJOR | QC-JAV000001[01312] Avoid declaring class instance within loop, performance impact
01316 | MAJOR | QC-JAV000001[01316] Avoid declaring class instance within loop, performance impact
01316 | MAJOR | QC-JAV000001[01316] Avoid declaring class instance within loop, performance impact
01317 | MAJOR | QC-JAV000001[01317] Avoid declaring class instance within loop, performance impact
01318 | MAJOR | QC-JAV000001[01318] Avoid declaring class instance within loop, performance impact
01319 | MAJOR | QC-JAV000001[01319] Avoid declaring class instance within loop, performance impact
01320 | MAJOR | QC-JAV000001[01320] Avoid declaring class instance within loop, performance impact
01321 | MAJOR | QC-JAV000001[01321] Avoid declaring class instance within loop, performance impact
01364 | MAJOR | QC-JAV000001[01364] Avoid declaring class instance within loop, performance impact
01364 | MAJOR | QC-JAV000001[01364] Avoid declaring class instance within loop, performance impact
01365 | MAJOR | QC-JAV000001[01365] Avoid declaring class instance within loop, performance impact
01366 | MAJOR | QC-JAV000001[01366] Avoid declaring class instance within loop, performance impact
01367 | MAJOR | QC-JAV000001[01367] Avoid declaring class instance within loop, performance impact
01368 | MAJOR | QC-JAV000001[01368] Avoid declaring class instance within loop, performance impact
01372 | MAJOR | QC-JAV000001[01372] Avoid declaring class instance within loop, performance impact
01373 | MAJOR | QC-JAV000001[01373] Avoid declaring class instance within loop, performance impact
01377 | MAJOR | QC-JAV000001[01377] Avoid declaring class instance within loop, performance impact
01382 | MAJOR | QC-JAV000001[01382] Avoid declaring class instance within loop, performance impact
01384 | MAJOR | QC-JAV000001[01384] Avoid declaring class instance within loop, performance impact
01386 | MAJOR | QC-JAV000001[01386] Avoid declaring class instance within loop, performance impact
01388 | MAJOR | QC-JAV000001[01388] Avoid declaring class instance within loop, performance impact
01390 | MAJOR | QC-JAV000001[01390] Avoid declaring class instance within loop, performance impact
01391 | MAJOR | QC-JAV000001[01391] Avoid declaring class instance within loop, performance impact
01430 | MAJOR | QC-JAV000001[01430] Avoid declaring class instance within loop, performance impact
01430 | MAJOR | QC-JAV000001[01430] Avoid declaring class instance within loop, performance impact
01431 | MAJOR | QC-JAV000001[01431] Avoid declaring class instance within loop, performance impact
01453 | MAJOR | QC-JAV000001[01453] Avoid declaring class instance within loop, performance impact
01489 | MAJOR | QC-JAV000001[01489] Avoid declaring class instance within loop, performance impact
01489 | MAJOR | QC-JAV000001[01489] Avoid declaring class instance within loop, performance impact
01490 | MAJOR | QC-JAV000001[01490] Avoid declaring class instance within loop, performance impact
01528 | MAJOR | QC-JAV000001[01528] Avoid declaring class instance within loop, performance impact
01552 | MAJOR | QC-JAV000001[01552] Avoid declaring class instance within loop, performance impact
01570 | MAJOR | QC-JAV000001[01570] Avoid declaring class instance within loop, performance impact
01720 | MAJOR | QC-JAV000001[01720] Avoid declaring class instance within loop, performance impact
01721 | MAJOR | QC-JAV000001[01721] Avoid declaring class instance within loop, performance impact
01721 | MAJOR | QC-JAV000001[01721] Avoid declaring class instance within loop, performance impact
01722 | MAJOR | QC-JAV000001[01722] Avoid declaring class instance within loop, performance impact

#### File lecode\table\Plan.java 5 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.table.Plan

Module / class or interface : org.h2.table.Plan

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Plan | Plan(TableFilter[];int;Expression) | 3 | 13
PlanItem | getItem(TableFilter) | 1 | 1
TableFilter[] | getFilters() | 1 | 1
void | removeUnusableIndexConditions() | 4 | 6
double | calculateCost(Session) | 5 | 11
void | setEvaluatable(TableFilter;boolean) | 2 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 5

Line start | Criticity class | Rule
--- | --- | ---
00044 | MAJOR | QC-JAV000001[00044] Avoid declaring class instance within loop, performance impact
00046 | MAJOR | QC-JAV000001[00046] Avoid declaring class instance within loop, performance impact
00084 | MAJOR | QC-JAV000001[00084] Avoid declaring class instance within loop, performance impact
00110 | MAJOR | QC-JAV000001[00110] Avoid declaring class instance within loop, performance impact
00114 | MAJOR | QC-JAV000001[00114] Avoid declaring class instance within loop, performance impact

#### File lecode\table\PlanItem.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.table.PlanItem

Module / class or interface : org.h2.table.PlanItem

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setIndex(Index) | 1 | 1
Index | getIndex() | 1 | 1
PlanItem | getJoinPlan() | 1 | 1
PlanItem | getNestedJoinPlan() | 1 | 1
void | setJoinPlan(PlanItem) | 1 | 1
void | setNestedJoinPlan(PlanItem) | 1 | 1

#### File lecode\table\RangeTable.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Table | org.h2.table.RangeTable

Module / class or interface : org.h2.table.RangeTable

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
RangeTable | RangeTable(Schema;Expression;Expression;boolean) | 1 | 5
String | getDropSQL() | 1 | 1
String | getCreateSQL() | 1 | 1
String | getSQL() | 1 | 1
void | lock(Session;boolean;boolean) | 1 | 0
void | close(Session) | 1 | 0
void | unlock(Session) | 1 | 0
boolean | isLockedExclusively() | 1 | 1
Index | addIndex(Session;String;int;IndexColumn[];IndexType;boolean;String) | 1 | 1
void | removeRow(Session;Row) | 1 | 1
void | addRow(Session;Row) | 1 | 1
void | checkSupportAlter() | 1 | 1
void | checkRename() | 1 | 1
boolean | canGetRowCount() | 1 | 1
boolean | canDrop() | 1 | 1
long | getRowCount(Session) | 1 | 1
String | getTableType() | 1 | 1
Index | getScanIndex(Session) | 1 | 1
long | getMin(Session) | 1 | 2
long | getMax(Session) | 1 | 2
void | optimize(Session) | 2 | 3
ArrayList<Index> | getIndexes() | 1 | 1
void | truncate(Session) | 1 | 1
long | getMaxDataModificationId() | 1 | 1
Index | getUniqueIndex() | 1 | 1
long | getRowCountApproximation() | 1 | 1
boolean | isDeterministic() | 1 | 1
boolean | canReference() | 1 | 1

#### File lecode\table\RegularTable.java 29 rule violations (XML file)

Ancestor class | Children classes
--- | ---
TableBase | org.h2.table.RegularTable

Module / class or interface : org.h2.table.RegularTable

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
RegularTable | RegularTable(CreateTableData) | 5 | 9
void | close(Session) | 2 | 1
Row | getRow(Session;long) | 1 | 1
void | addRow(Session;Row) | 4 | 9
void | commit(short;Row) | 2 | 5
void | checkRowCount(Session;Index;int) | 3 | 0
Index | getScanIndex(Session) | 1 | 1
Index | getUniqueIndex() | 3 | 1
ArrayList<Index> | getIndexes() | 1 | 1
Index | addIndex(Session;String;int;IndexColumn[];IndexType;boolean;String) | 19 | 10
int | getMainIndexColumn(IndexType;IndexColumn[]) | 8 | 7
boolean | canGetRowCount() | 1 | 1
void | addRowsToIndex(Session;ArrayList<Row>;Index) | 2 | 4
boolean | canDrop() | 1 | 1
long | getRowCount(Session) | 2 | 2
void | removeRow(Session;Row) | 7 | 9
void | truncate(Session) | 2 | 7
void | analyzeIfRequired(Session) | 3 | 6
boolean | isLockedExclusivelyBy(Session) | 1 | 1
void | lock(Session;boolean;boolean) | 6 | 4
void | doLock(Session;int;boolean) | 9 | 5
String | getDeadlockDetails(ArrayList<Session>) | 3 | 6
ArrayList<Session> | checkDeadlock(Session;Session;Set<Session>) | 8 | 3
void | traceLock(Session;boolean;String) | 2 | 1
boolean | isLockedExclusively() | 1 | 1
void | unlock(Session) | 4 | 1
Row | createRow(Value[]) | 1 | 1
void | setRowCount(long) | 1 | 1
void | removeChildrenAndResources(Session) | 5 | 11
String | toString() | 1 | 1
void | checkRename() | 1 | 0
void | checkSupportAlter() | 1 | 0
boolean | canTruncate() | 3 | 2
String | getTableType() | 1 | 1
long | getMaxDataModificationId() | 1 | 1
boolean | getContainsLargeObject() | 1 | 1
long | getRowCountApproximation() | 1 | 1
void | setCompareMode(CompareMode) | 1 | 1
boolean | isDeterministic() | 1 | 1
Column | getRowIdColumn() | 2 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 27

Line start | Criticity class | Rule
--- | --- | ---
00073 | CRITICAL | QC-JAVCWE476[00073] The argument data is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk
00121 | MAJOR | QC-JAV000001[00121] Avoid declaring class instance within loop, performance impact
00129 | MAJOR | QC-JAV000001[00129] Avoid declaring class instance within loop, performance impact
00143 | MAJOR | QC-JAV000001[00143] Avoid declaring class instance within loop, performance impact
00144 | MAJOR | QC-JAV000001[00144] Avoid declaring class instance within loop, performance impact
00145 | MAJOR | QC-JAV000001[00145] Avoid declaring class instance within loop, performance impact
00145 | MAJOR | QC-JAV000001[00145] Avoid declaring class instance within loop, performance impact
00160 | MAJOR | QC-JAV000001[00160] Avoid declaring class instance within loop, performance impact
00199 | MAJOR | QC-JAV000001[00199] Avoid declaring class instance within loop, performance impact
00254 | MAJOR | QC-JAV000001[00254] Avoid declaring class instance within loop, performance impact
00361 | MAJOR | QC-JAV000001[00361] Avoid declaring class instance within loop, performance impact
00369 | MAJOR | QC-JAV000001[00369] Avoid declaring class instance within loop, performance impact
00388 | MAJOR | QC-JAV000001[00388] Avoid declaring class instance within loop, performance impact
00487 | MAJOR | QC-JAV000001[00487] Avoid declaring class instance within loop, performance impact
00522 | MAJOR | QC-JAV000001[00522] Avoid declaring class instance within loop, performance impact
00522 | MAJOR | QC-JAVCWE390[00522] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00531 | MAJOR | QC-JAV000001[00531] Avoid declaring class instance within loop, performance impact
00538 | MAJOR | QC-JAV000001[00538] Avoid declaring class instance within loop, performance impact
00543 | MAJOR | QC-JAV000001[00543] Avoid declaring class instance within loop, performance impact
00544 | MAJOR | QC-JAV000001[00544] Avoid declaring class instance within loop, performance impact
00543 | MAJOR | QC-JAV000001[00543] Avoid declaring class instance within loop, performance impact
00544 | MAJOR | QC-JAV000001[00544] Avoid declaring class instance within loop, performance impact
00579 | MAJOR | QC-JAV000001[00579] Avoid declaring class instance within loop, performance impact
00660 | MAJOR | QC-JAV000001[00660] Avoid declaring class instance within loop, performance impact
00667 | MAJOR | QC-JAV000001[00667] Avoid declaring class instance within loop, performance impact
00667 | MAJOR | QC-JAV000001[00667] Avoid declaring class instance within loop, performance impact
00698 | MAJOR | QC-JAV000001[00698] Avoid declaring class instance within loop, performance impact
00702 | MAJOR | QC-JAV000001[00702] Avoid declaring class instance within loop, performance impact
00702 | MAJOR | QC-JAV000001[00702] Avoid declaring class instance within loop, performance impact

#### File lecode\table\SingleColumnResolver.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.table.SingleColumnResolver

Module / class or interface : org.h2.table.SingleColumnResolver

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SingleColumnResolver | SingleColumnResolver(Column) | 1 | 1
String | getTableAlias() | 1 | 1
void | setValue(Value) | 1 | 1
Value | getValue(Column) | 1 | 1
Column[] | getColumns() | 1 | 1
String | getSchemaName() | 1 | 1
TableFilter | getTableFilter() | 1 | 1
Select | getSelect() | 1 | 1
Column[] | getSystemColumns() | 1 | 1
Column | getRowIdColumn() | 1 | 1
Expression | optimize(ExpressionColumn;Column) | 1 | 1

#### File lecode\table\Table.java 20 rule violations (XML file)

Ancestor class | Children classes
--- | ---
SchemaObjectBase | org.h2.table.Table

Module / class or interface : org.h2.table.Table

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Table | Table(Schema;int;String;boolean;boolean) | 1 | 5
void | rename(String) | 3 | 1
void | lock(Session;boolean;boolean) | 1 | 1
void | close(Session) | 1 | 1
void | unlock(Session) | 1 | 1
Index | addIndex(Session;String;int;IndexColumn[];IndexType;boolean;String) | 1 | 1
void | removeRow(Session;Row) | 1 | 1
void | truncate(Session) | 1 | 1
void | addRow(Session;Row) | 1 | 1
void | commit(short;Row) | 1 | 0
void | checkSupportAlter() | 1 | 1
String | getTableType() | 1 | 1
Index | getScanIndex(Session) | 1 | 1
Index | getUniqueIndex() | 1 | 1
ArrayList<Index> | getIndexes() | 1 | 1
boolean | isLockedExclusively() | 1 | 1
long | getMaxDataModificationId() | 1 | 1
boolean | isDeterministic() | 1 | 1
boolean | canGetRowCount() | 1 | 1
boolean | canReference() | 1 | 1
boolean | canDrop() | 1 | 1
long | getRowCount(Session) | 1 | 1
long | getRowCountApproximation() | 1 | 1
Column | getRowIdColumn() | 1 | 1
String | getCreateSQLForCopy(Table;String) | 1 | 1
void | addDependencies(HashSet<DbObject>) | 7 | 4
ArrayList<DbObject> | getChildren() | 8 | 9
void | setColumns(Column[]) | 5 | 9
void | renameColumn(Column;String) | 4 | 3
boolean | isLockedExclusivelyBy(Session) | 1 | 1
void | updateRows(Prepared;Session;RowList) | 5 | 13
ArrayList<TableView> | getViews() | 1 | 1
void | removeChildrenAndResources(Session) | 4 | 12
void | dropSingleColumnConstraintsAndIndexes(Session;Column) | 8 | 4
Row | getTemplateRow() | 1 | 1
SearchRow | getTemplateSimpleRow(boolean) | 2 | 2
Row | getNullRow() | 3 | 2
Column[] | getColumns() | 1 | 1
int | getType() | 1 | 1
Column | getColumn(int) | 1 | 1
Column | getColumn(String) | 2 | 3
boolean | doesColumnExist(String) | 1 | 1
PlanItem | getBestPlanItem(Session;int[]) | 3 | 5
Index | findPrimaryKey() | 3 | 2
Index | getPrimaryKey() | 2 | 3
void | validateConvertUpdateSequence(Session;Row) | 4 | 6
void | remove(ArrayList<?extendsDbObject>;DbObject) | 3 | 1
void | removeIndex(Index) | 3 | 2
void | removeView(TableView) | 1 | 1
void | removeConstraint(Constraint) | 1 | 1
void | removeSequence(Sequence) | 1 | 1
void | removeTrigger(TriggerObject) | 1 | 1
void | addView(TableView) | 1 | 1
void | addConstraint(Constraint) | 2 | 1
ArrayList<Constraint> | getConstraints() | 1 | 1
void | addSequence(Sequence) | 1 | 1
void | addTrigger(TriggerObject) | 1 | 1
void | fire(Session;int;boolean) | 3 | 0
boolean | hasSelectTrigger() | 3 | 1
boolean | fireRow() | 1 | 1
boolean | fireBeforeRow(Session;Row;Row) | 1 | 3
void | fireConstraints(Session;Row;Row;boolean) | 3 | 0
void | fireAfterRow(Session;Row;Row;boolean) | 2 | 2
boolean | fireRow(Session;Row;Row;boolean;boolean) | 3 | 1
boolean | isGlobalTemporary() | 1 | 1
boolean | canTruncate() | 1 | 1
void | setCheckForeignKeyConstraints(Session;boolean;boolean) | 3 | 1
boolean | getCheckForeignKeyConstraints() | 1 | 1
Index | getIndexForColumn(Column) | 3 | 2
boolean | getOnCommitDrop() | 1 | 1
void | setOnCommitDrop(boolean) | 1 | 1
boolean | getOnCommitTruncate() | 1 | 1
void | setOnCommitTruncate(boolean) | 1 | 1
void | removeIndexOrTransferOwnership(Session;Index) | 4 | 2
ArrayList<Session> | checkDeadlock(Session;Session;Set<Session>) | 1 | 1
boolean | isPersistIndexes() | 1 | 1
boolean | isPersistData() | 1 | 1
int | compareTypeSave(Value;Value) | 2 | 5
CompareMode | getCompareMode() | 1 | 1
void | checkWritingAllowed() | 1 | 1
Value | getDefaultValue(Session;Column) | 3 | 5
boolean | isHidden() | 1 | 1
void | setHidden(boolean) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 20

Line start | Criticity class | Rule
--- | --- | ---
00121 | MAJOR | QC-JAV000001[00121] Avoid declaring class instance within loop, performance impact
00369 | MAJOR | QC-JAV000001[00369] Avoid declaring class instance within loop, performance impact
00375 | MAJOR | QC-JAV000001[00375] Avoid declaring class instance within loop, performance impact
00430 | MAJOR | QC-JAV000001[00430] Avoid declaring class instance within loop, performance impact
00441 | MAJOR | QC-JAV000001[00441] Avoid declaring class instance within loop, performance impact
00444 | MAJOR | QC-JAV000001[00444] Avoid declaring class instance within loop, performance impact
00460 | MAJOR | QC-JAV000001[00460] Avoid declaring class instance within loop, performance impact
00465 | MAJOR | QC-JAV000001[00465] Avoid declaring class instance within loop, performance impact
00470 | MAJOR | QC-JAV000001[00470] Avoid declaring class instance within loop, performance impact
00483 | MAJOR | QC-JAV000001[00483] Avoid declaring class instance within loop, performance impact
00509 | MAJOR | QC-JAV000001[00509] Avoid declaring class instance within loop, performance impact
00510 | MAJOR | QC-JAV000001[00510] Avoid declaring class instance within loop, performance impact
00525 | MAJOR | QC-JAV000001[00525] Avoid declaring class instance within loop, performance impact
00634 | MAJOR | QC-JAV000001[00634] Avoid declaring class instance within loop, performance impact
00654 | MAJOR | QC-JAV000001[00654] Avoid declaring class instance within loop, performance impact
00681 | MAJOR | QC-JAV000001[00681] Avoid declaring class instance within loop, performance impact
00682 | MAJOR | QC-JAV000001[00682] Avoid declaring class instance within loop, performance impact
00683 | MAJOR | QC-JAV000001[00683] Avoid declaring class instance within loop, performance impact
00868 | MAJOR | QC-JAV000001[00868] Avoid declaring class instance within loop, performance impact
00950 | MAJOR | QC-JAV000001[00950] Avoid declaring class instance within loop, performance impact

#### File lecode\table\TableBase.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Table | org.h2.table.TableBase

Module / class or interface : org.h2.table.TableBase

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TableBase | TableBase(CreateTableData) | 1 | 7
String | getDropSQL() | 1 | 1
String | getCreateSQL() | 13 | 18
boolean | isGlobalTemporary() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1

Line start | Criticity class | Rule
--- | --- | ---
00028 | CRITICAL | QC-JAVCWE476[00028] The argument data is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk

#### File lecode\table\TableFilter.java 7 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.table.TableFilter

Module / class or interface : org.h2.table.TableFilter

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TableFilter | TableFilter(Session;Table;String;boolean;Select) | 2 | 7
Select | getSelect() | 1 | 1
Table | getTable() | 1 | 1
void | lock(Session;boolean;boolean) | 2 | 2
PlanItem | getBestPlanItem(Session;int) | 6 | 15
void | setEvaluatable(TableFilter) | 5 | 6
void | setPlanItem(PlanItem) | 6 | 2
void | prepare() | 9 | 7
void | startQuery(Session) | 3 | 4
void | reset() | 3 | 4
boolean | next() | 18 | 5
void | setNullRow() | 2 | 4
void | checkTimeout() | 1 | 1
boolean | isOk(Expression) | 2 | 2
Row | get() | 2 | 2
void | set(Row) | 1 | 2
String | getTableAlias() | 2 | 2
void | addIndexCondition(IndexCondition) | 1 | 1
void | addFilterCondition(Expression;boolean) | 7 | 0
void | addJoin(TableFilter;boolean;boolean;Expression) | 10 | 3
void | mapAndAddFilter(Expression) | 3 | 6
TableFilter | getJoin() | 1 | 1
boolean | isJoinOuter() | 1 | 1
boolean | isJoinOuterIndirect() | 1 | 1
String | getPlanSQL(boolean) | 18 | 22
void | removeUnusableIndexConditions() | 3 | 3
Index | getIndex() | 1 | 1
void | setIndex(Index) | 1 | 2
void | setUsed(boolean) | 1 | 1
boolean | isUsed() | 1 | 1
void | setSession(Session) | 1 | 1
void | removeJoin() | 1 | 1
Expression | getJoinCondition() | 1 | 1
void | removeJoinCondition() | 1 | 1
Expression | getFilterCondition() | 1 | 1
void | removeFilterCondition() | 1 | 1
void | setFullCondition(Expression) | 2 | 2
void | optimizeFullCondition(boolean) | 4 | 1
void | setEvaluatable(TableFilter;boolean) | 6 | 4
void | setEvaluatable(boolean) | 1 | 1
String | getSchemaName() | 1 | 1
Column[] | getColumns() | 1 | 1
Column[] | getSystemColumns() | 2 | 9
Column | getRowIdColumn() | 2 | 2
Value | getValue(Column) | 6 | 6
TableFilter | getTableFilter() | 1 | 1
void | setAlias(String) | 1 | 1
Expression | optimize(ExpressionColumn;Column) | 1 | 1
String | toString() | 1 | 1
void | addNaturalJoinColumn(Column) | 2 | 2
boolean | isNaturalJoinColumn(Column) | 1 | 1
int | hashCode() | 1 | 1
boolean | hasInComparisons() | 3 | 2
void | lockRowAdd(ArrayList<Row>) | 2 | 1
void | lockRows(ArrayList<Row>) | 2 | 5
TableFilter | getNestedJoin() | 1 | 1
void | visit(TableFilterVisitor) | 3 | 5
boolean | isEvaluatable() | 1 | 1
Session | getSession() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 7

Line start | Criticity class | Rule
--- | --- | ---
00208 | MAJOR | QC-JAV000001[00208] Avoid declaring class instance within loop, performance impact
00212 | MAJOR | QC-JAV000001[00212] Avoid declaring class instance within loop, performance impact
00252 | MAJOR | QC-JAV000001[00252] Avoid declaring class instance within loop, performance impact
00254 | MAJOR | QC-JAV000001[00254] Avoid declaring class instance within loop, performance impact
00707 | MAJOR | QC-JAV000001[00707] Avoid declaring class instance within loop, performance impact
00958 | MAJOR | QC-JAV000001[00958] Avoid declaring class instance within loop, performance impact
00979 | MAJOR | QC-JAV000001[00979] Avoid declaring class instance within loop, performance impact

#### File lecode\table\TableLink.java 25 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Table | org.h2.table.TableLink

Module / class or interface : org.h2.table.TableLink

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TableLink | TableLink(Schema;int;String;String;String;String;String;String;String;boolean;boolean) | 2 | 13
void | connect() | 2 | 3
void | readMetaData() | 12 | 58
long | convertPrecision(int;long) | 7 | 8
int | convertScale(int;int) | 4 | 2
String | convertColumnName(String) | 6 | 3
void | addIndex(ArrayList<Column>;IndexType) | 1 | 4
String | getDropSQL() | 1 | 1
String | getCreateSQL() | 7 | 9
Index | addIndex(Session;String;int;IndexColumn[];IndexType;boolean;String) | 1 | 1
void | lock(Session;boolean;boolean) | 1 | 0
boolean | isLockedExclusively() | 1 | 1
Index | getScanIndex(Session) | 1 | 1
void | checkReadOnly() | 2 | 1
void | removeRow(Session;Row) | 1 | 2
void | addRow(Session;Row) | 1 | 2
void | close(Session) | 2 | 0
long | getRowCount(Session) | 1 | 9
DbException | wrapException(String;Exception) | 1 | 2
String | getQualifiedTable() | 1 | 1
PreparedStatement | execute(String;ArrayList<Value>;boolean) | 3 | 3
void | unlock(Session) | 1 | 0
void | checkRename() | 1 | 0
void | checkSupportAlter() | 1 | 1
void | truncate(Session) | 1 | 1
boolean | canGetRowCount() | 1 | 1
boolean | canDrop() | 1 | 1
String | getTableType() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 7
boolean | isOracle() | 1 | 1
ArrayList<Index> | getIndexes() | 1 | 1
long | getMaxDataModificationId() | 1 | 1
Index | getUniqueIndex() | 3 | 1
void | updateRows(Prepared;Session;RowList) | 5 | 7
void | setGlobalTemporary(boolean) | 1 | 1
void | setReadOnly(boolean) | 1 | 1
long | getRowCountApproximation() | 1 | 1
void | reusePreparedStatement(PreparedStatement;String) | 1 | 1
boolean | isDeterministic() | 1 | 1
void | checkWritingAllowed() | 1 | 0
void | validateConvertUpdateSequence(Session;Row) | 3 | 3
Value | getDefaultValue(Session;Column) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 24
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00154 | INFO | QC-JAV999996[00154] CPD de longueur 57 commencant en 976 (ligne 154) et 1237 (ligne 183): int type = DataType . convertSQLTypeToValueType ( sqlType ) ; Column col = new Column ( n , type , precision , scale , displaySize ) ; col . setTable ( this , ( i ++ ) ) ; columnList . add ( col ) ; columnMap . put ( n , col ) ; } rs
00098 | MAJOR | QC-JAV000001[00098] Avoid declaring class instance within loop, performance impact
00105 | MAJOR | QC-JAV000001[00105] Avoid declaring class instance within loop, performance impact
00131 | MAJOR | QC-JAV000001[00131] Avoid declaring class instance within loop, performance impact
00135 | MAJOR | QC-JAV000001[00135] Avoid declaring class instance within loop, performance impact
00146 | MAJOR | QC-JAV000001[00146] Avoid declaring class instance within loop, performance impact
00155 | MAJOR | QC-JAV000001[00155] Avoid declaring class instance within loop, performance impact
00175 | MAJOR | QC-JAV000001[00175] Avoid declaring class instance within loop, performance impact
00184 | MAJOR | QC-JAV000001[00184] Avoid declaring class instance within loop, performance impact
00224 | MAJOR | QC-JAV000001[00224] Avoid declaring class instance within loop, performance impact
00226 | MAJOR | QC-JAV000001[00226] Avoid declaring class instance within loop, performance impact
00253 | MAJOR | QC-JAV000001[00253] Avoid declaring class instance within loop, performance impact
00267 | MAJOR | QC-JAV000001[00267] Avoid declaring class instance within loop, performance impact
00269 | MAJOR | QC-JAV000001[00269] Avoid declaring class instance within loop, performance impact
00466 | MAJOR | QC-JAV000001[00466] Avoid declaring class instance within loop, performance impact
00471 | MAJOR | QC-JAV000001[00471] Avoid declaring class instance within loop, performance impact
00476 | MAJOR | QC-JAV000001[00476] Avoid declaring class instance within loop, performance impact
00487 | MAJOR | QC-JAV000001[00487] Avoid declaring class instance within loop, performance impact
00498 | MAJOR | QC-JAV000001[00498] Avoid declaring class instance within loop, performance impact
00487 | MAJOR | QC-JAV000001[00487] Avoid declaring class instance within loop, performance impact
00574 | MAJOR | QC-JAV000001[00574] Avoid declaring class instance within loop, performance impact
00575 | MAJOR | QC-JAV000001[00575] Avoid declaring class instance within loop, performance impact
00634 | MAJOR | QC-JAV000001[00634] Avoid declaring class instance within loop, performance impact
00637 | MAJOR | QC-JAV000001[00637] Avoid declaring class instance within loop, performance impact
00638 | MAJOR | QC-JAV000001[00638] Avoid declaring class instance within loop, performance impact

#### File lecode\table\TableLinkConnection.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.table.TableLinkConnection

Module / class or interface : org.h2.table.TableLinkConnection

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TableLinkConnection | TableLinkConnection(HashMap<TableLinkConnection,TableLinkConnection>;String;String;String;String) | 1 | 5
TableLinkConnection | open(HashMap<TableLinkConnection,TableLinkConnection>;String;String;String;String;boolean) | 3 | 6
void | open() | 1 | 2
int | hashCode() | 1 | 1
boolean | equals(Object) | 2 | 3
Connection | getConnection() | 1 | 1
void | close(boolean) | 2 | 1

Deadlock risks Ressources definition
R0:org.h2.table.TableLinkConnection.open.map
R1:org.h2.table.TableLinkConnection.open.t
R2:org.h2.table.TableLinkConnection.open.result

Deadlock risks Sequences definition

Sequence | Step
--- | ---
No 0
| S0:org.h2.table.TableLinkConnection.open (R0,R1,R2)
| S0:org.h2.table.TableLinkConnection.open (R0,R1,R2)
| S0:map.put

#### File lecode\table\TableView.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Table | org.h2.table.TableView

Module / class or interface : org.h2.table.TableView

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TableView | TableView(Schema;int;String;String;ArrayList<Parameter>;String[];Session;boolean) | 1 | 2
void | replace(String;String[];Session;boolean;boolean) | 2 | 8
void | init(String;ArrayList<Parameter>;String[];Session;boolean) | 1 | 7
Query | compileViewQuery(Session;String) | 2 | 3
DbException | recompile(Session;boolean) | 5 | 7
void | initColumnsAndTables(Session) | 4 | 19
boolean | isInvalid() | 1 | 1
PlanItem | getBestPlanItem(Session;int[]) | 2 | 9
String | getDropSQL() | 1 | 1
String | getCreateSQLForCopy(Table;String) | 1 | 1
String | getCreateSQL() | 1 | 1
String | getCreateSQL(boolean;boolean) | 1 | 1
String | getCreateSQL(boolean;boolean;String) | 9 | 11
void | checkRename() | 1 | 0
void | lock(Session;boolean;boolean) | 1 | 0
void | close(Session) | 1 | 0
void | unlock(Session) | 1 | 0
boolean | isLockedExclusively() | 1 | 1
Index | addIndex(Session;String;int;IndexColumn[];IndexType;boolean;String) | 1 | 1
void | removeRow(Session;Row) | 1 | 1
void | addRow(Session;Row) | 1 | 1
void | checkSupportAlter() | 1 | 1
void | truncate(Session) | 1 | 1
long | getRowCount(Session) | 1 | 1
boolean | canGetRowCount() | 1 | 1
boolean | canDrop() | 1 | 1
String | getTableType() | 1 | 1
void | removeChildrenAndResources(Session) | 1 | 6
String | getSQL() | 2 | 2
String | getQuery() | 1 | 1
Index | getScanIndex(Session) | 2 | 4
ArrayList<Index> | getIndexes() | 1 | 1
long | getMaxDataModificationId() | 4 | 6
Index | getUniqueIndex() | 1 | 1
void | removeViewFromTables() | 3 | 1
void | addViewToTables() | 2 | 1
void | setOwner(User) | 1 | 1
User | getOwner() | 1 | 1
TableView | createTempView(Session;User;String;Query;Query) | 2 | 8
void | setTopQuery(Query) | 1 | 1
long | getRowCountApproximation() | 1 | 1
int | getParameterOffset() | 1 | 1
boolean | isDeterministic() | 2 | 2
void | setRecursiveResult(LocalResult) | 2 | 2
ResultInterface | getRecursiveResult() | 1 | 1
void | setTableExpression(boolean) | 1 | 1
boolean | isTableExpression() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 4

Line start | Criticity class | Rule
--- | --- | ---
00132 | MAJOR | QC-JAV000001[00132] Avoid declaring class instance within loop, performance impact
00151 | MAJOR | QC-JAV000001[00151] Avoid declaring class instance within loop, performance impact
00152 | MAJOR | QC-JAV000001[00152] Avoid declaring class instance within loop, performance impact
00163 | MAJOR | QC-JAV000001[00163] Avoid declaring class instance within loop, performance impact

#### File lecode\tools\Backup.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Tool | org.h2.tools.Backup

Module / class or interface : org.h2.tools.Backup

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | main(String) | 1 | 1
void | runTool(String) | 8 | 9
void | execute(String;String;String;boolean) | 1 | 2
void | process(String;String;String;boolean) | 8 | 16

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 5

Line start | Criticity class | Rule
--- | --- | ---
00067 | MAJOR | QC-JAV000001[00067] Avoid declaring class instance within loop, performance impact
00138 | MAJOR | QC-JAV000001[00138] Avoid declaring class instance within loop, performance impact
00150 | MAJOR | QC-JAV000001[00150] Avoid declaring class instance within loop, performance impact
00152 | MAJOR | QC-JAV000001[00152] Avoid declaring class instance within loop, performance impact
00156 | MAJOR | QC-JAV000001[00156] Avoid declaring class instance within loop, performance impact
00156 | MAJOR | QC-JAVCWE390[00156] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\tools\ChangeFileEncryption.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Tool | org.h2.tools.ChangeFileEncryption

Module / class or interface : org.h2.tools.ChangeFileEncryption

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | main(String) | 1 | 1
void | runTool(String) | 9 | 13
byte[] | getFileEncryptionKey(char[]) | 2 | 2
void | execute(String;String;String;char[];char[];boolean) | 1 | 2
void | process(String;String;String;char[];char[];boolean) | 7 | 15
void | process(String) | 3 | 5
void | copy(String;FileStore;byte[]) | 5 | 21

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00066 | MAJOR | QC-JAV000001[00066] Avoid declaring class instance within loop, performance impact
00159 | MAJOR | QC-JAV000001[00159] Avoid declaring class instance within loop, performance impact

#### File lecode\tools\CompressTool.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.tools.CompressTool

Module / class or interface : org.h2.tools.CompressTool

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CompressTool | CompressTool() | 1 | 0
byte[] | getBuffer(int) | 3 | 3
CompressTool | getInstance() | 1 | 1
byte[] | compress(byte[];String) | 2 | 8
int | compress(byte[];int;Compressor;byte[]) | 2 | 8
byte[] | expand(byte[]) | 1 | 8
void | expand(byte[];byte[];int) | 1 | 6
int | readVariableInt(byte[];int) | 5 | 6
int | writeVariableInt(byte[];int;int) | 11 | 8
int | getVariableIntLength(int) | 11 | 2
Compressor | getCompressor(String) | 3 | 9
int | getCompressAlgorithm(String) | 7 | 3
Compressor | getCompressor(int) | 4 | 4
OutputStream | wrapOutputStream(OutputStream;String;String) | 7 | 2
InputStream | wrapInputStream(InputStream;String;String) | 7 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 2

Line start | Criticity class | Rule
--- | --- | ---
00153 | INFO | QC-JAV999996[00153] CPD de longueur 52 commencant en 868 (ligne 153) et 931 (ligne 156): ) __ 24 ) + ( ( ( buff [ ( pos ++ ) ] _ 0xff ) __ 16 ) + ( ( ( buff [ ( pos ++ ) ] _ 0xff ) __ 8 ) + ( buff [ pos ] _ 0xff ) ) ) ; } return
00171 | INFO | QC-JAV999996[00171] CPD de longueur 77 commencant en 1008 (ligne 171) et 1290 (ligne 196): ( pos ++ ) ] = ( byte ) 0xf0 ; buff [ ( pos ++ ) ] = ( byte ) ( x __ 24 ) ; buff [ ( pos ++ ) ] = ( byte ) ( x __ 16 ) ; buff [ ( pos ++ ) ] = ( byte ) ( x __ 8 ) ; buff [ pos ] = ( byte ) x ; return 5 ; } else
00307 | MAJOR | QC-JAV000001[00307] Avoid declaring class instance within loop, performance impact

#### File lecode\tools\Console.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
ToolActionListener | org.h2.tools.Console

Module / class or interface : org.h2.tools.Console

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | main(String) | 1 | 1
void | runTool(String) | 17 | 27
void | printProblem(Exception;Server) | 3 | 3
Image | loadImage(String) | 2 | 4
void | shutdown() | 6 | 9
void | loadFont() | 3 | 2
boolean | createTrayIcon() | 6 | 27
void | showWindow() | 4 | 55
void | startBrowser() | 4 | 2
void | openBrowser(String) | 1 | 2
void | actionPerformed(ActionEvent) | 8 | 4
void | mouseClicked(MouseEvent) | 2 | 1
void | mouseEntered(MouseEvent) | 1 | 0
void | mouseExited(MouseEvent) | 1 | 0
void | mousePressed(MouseEvent) | 1 | 0
void | mouseReleased(MouseEvent) | 1 | 0
void | windowClosing(WindowEvent) | 3 | 3
void | windowActivated(WindowEvent) | 1 | 0
void | windowClosed(WindowEvent) | 1 | 0
void | windowDeactivated(WindowEvent) | 1 | 0
void | windowDeiconified(WindowEvent) | 1 | 0
void | windowIconified(WindowEvent) | 1 | 0
void | windowOpened(WindowEvent) | 1 | 0

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 3
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00121 | MAJOR | QC-JAV000001[00121] Avoid declaring class instance within loop, performance impact
00344 | MAJOR | QC-JAVCWE390[00344] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00498 | MAJOR | QC-JAVCWE390[00498] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00507 | MAJOR | QC-JAVCWE390[00507] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\tools\ConvertTraceFile.java 8 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Tool | org.h2.tools.ConvertTraceFile

Module / class or interface : org.h2.tools.ConvertTraceFile

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | main(String) | 1 | 1
void | runTool(String) | 8 | 8
void | convertFile(String;String;String) | 9 | 29
String | removeNewlines(String) | 1 | 1
String | padNumberLeft(long;int) | 1 | 1
void | addToStats(String;int;long) | 2 | 8

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 8

Line start | Criticity class | Rule
--- | --- | ---
00085 | MAJOR | QC-JAV000001[00085] Avoid declaring class instance within loop, performance impact
00133 | MAJOR | QC-JAV000001[00133] Avoid declaring class instance within loop, performance impact
00142 | MAJOR | QC-JAV000001[00142] Avoid declaring class instance within loop, performance impact
00146 | MAJOR | QC-JAV000001[00146] Avoid declaring class instance within loop, performance impact
00151 | MAJOR | QC-JAV000001[00151] Avoid declaring class instance within loop, performance impact
00153 | MAJOR | QC-JAV000001[00153] Avoid declaring class instance within loop, performance impact
00153 | MAJOR | QC-JAV000001[00153] Avoid declaring class instance within loop, performance impact
00189 | MAJOR | QC-JAV000001[00189] Avoid declaring class instance within loop, performance impact

#### File lecode\tools\CreateCluster.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Tool | org.h2.tools.CreateCluster

Module / class or interface : org.h2.tools.CreateCluster

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | main(String) | 1 | 1
void | runTool(String) | 9 | 11
void | execute(String;String;String;String;String) | 1 | 1
void | process(String;String;String;String;String) | 2 | 33

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00060 | MAJOR | QC-JAV000001[00060] Avoid declaring class instance within loop, performance impact

#### File lecode\tools\Csv.java 13 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.tools.Csv

Module / class or interface : org.h2.tools.Csv

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Csv | getInstance() | 1 | 1
int | writeResultSet(ResultSet) | 3 | 10
int | write(Writer;ResultSet) | 1 | 2
int | write(String;ResultSet;String) | 1 | 4
int | write(Connection;String;String;String) | 1 | 5
ResultSet | read(String;String[];String) | 1 | 3
ResultSet | read(Reader;String[]) | 1 | 3
ResultSet | readResultSet(String[]) | 2 | 6
void | makeColumnNamesUnique() | 5 | 5
void | init(String;String) | 2 | 2
void | initWrite() | 2 | 0
void | writeRow(String[]) | 7 | 5
String | escape(String) | 5 | 7
void | initRead() | 5 | 6
void | readHeader() | 3 | 4
boolean | isSimpleColumnName(String) | 5 | 5
void | pushBack() | 1 | 1
int | readChar() | 2 | 2
int | readBuffer() | 6 | 13
String | readValue() | 5 | 3
String | readNull(String) | 1 | 1
String | unEscape(String) | 4 | 9
Object[] | readRow() | 2 | 5
SQLException | convertException(String;Exception) | 1 | 1
void | close() | 1 | 4
void | reset() | 1 | 1
void | setFieldSeparatorWrite(String) | 1 | 1
String | getFieldSeparatorWrite() | 1 | 1
void | setCaseSensitiveColumnNames(boolean) | 1 | 1
boolean | getCaseSensitiveColumnNames() | 1 | 1
void | setFieldSeparatorRead(char) | 1 | 1
char | getFieldSeparatorRead() | 1 | 1
String | getRowSeparatorWrite() | 1 | 1
void | setRowSeparatorWrite(String) | 1 | 1
void | setLineCommentCharacter(char) | 1 | 1
char | getLineCommentCharacter() | 1 | 1
void | setFieldDelimiter(char) | 1 | 1
char | getFieldDelimiter() | 1 | 1
void | setEscapeCharacter(char) | 1 | 1
char | getEscapeCharacter() | 1 | 1
void | setLineSeparator(String) | 1 | 1
String | getLineSeparator() | 1 | 1
void | setNullString(String) | 1 | 1
String | getNullString() | 1 | 1
void | setPreserveWhitespace(boolean) | 1 | 1
boolean | getPreserveWhitespace() | 1 | 1
void | setWriteColumnHeader(boolean) | 1 | 1
boolean | getWriteColumnHeader() | 1 | 1
String | setOptions(String) | 7 | 7
boolean | isParam(String;String) | 3 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 13

Line start | Criticity class | Rule
--- | --- | ---
00098 | MAJOR | QC-JAV000001[00098] Avoid declaring class instance within loop, performance impact
00098 | MAJOR | QC-JAV000001[00098] Avoid declaring class instance within loop, performance impact
00244 | MAJOR | QC-JAV000001[00244] Avoid declaring class instance within loop, performance impact
00245 | MAJOR | QC-JAV000001[00245] Avoid declaring class instance within loop, performance impact
00252 | MAJOR | QC-JAV000001[00252] Avoid declaring class instance within loop, performance impact
00252 | MAJOR | QC-JAV000001[00252] Avoid declaring class instance within loop, performance impact
00289 | MAJOR | QC-JAV000001[00289] Avoid declaring class instance within loop, performance impact
00360 | MAJOR | QC-JAV000001[00360] Avoid declaring class instance within loop, performance impact
00481 | MAJOR | QC-JAV000001[00481] Avoid declaring class instance within loop, performance impact
00532 | MAJOR | QC-JAV000001[00532] Avoid declaring class instance within loop, performance impact
00585 | MAJOR | QC-JAV000001[00585] Avoid declaring class instance within loop, performance impact
00872 | MAJOR | QC-JAV000001[00872] Avoid declaring class instance within loop, performance impact
00873 | MAJOR | QC-JAV000001[00873] Avoid declaring class instance within loop, performance impact

#### File lecode\tools\DeleteDbFiles.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Tool | org.h2.tools.DeleteDbFiles

Module / class or interface : org.h2.tools.DeleteDbFiles

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | main(String) | 1 | 1
void | runTool(String) | 8 | 7
void | execute(String;String;boolean) | 1 | 1
void | process(String;String;boolean) | 4 | 3
void | process(String;boolean) | 5 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00050 | MAJOR | QC-JAV000001[00050] Avoid declaring class instance within loop, performance impact

#### File lecode\tools\MultiDimension.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.tools.MultiDimension

Module / class or interface : org.h2.tools.MultiDimension

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
MultiDimension | MultiDimension() | 1 | 0
MultiDimension | getInstance() | 1 | 1
int | normalize(int;double;double;double) | 2 | 3
int | getMaxValue(int) | 2 | 3
int | getBitsPerValue(int) | 1 | 1
long | interleave(int) | 4 | 8
long | interleave(int;int) | 4 | 8
int | deinterleave(int;long;int) | 2 | 6
String | generatePreparedQuery(String;String;String[]) | 2 | 4
ResultSet | getResult(PreparedStatement;int[];int[]) | 3 | 16
long[][] | getMortonRanges(int[];int[]) | 4 | 11
int | getSize(int[];int[];int) | 2 | 6
void | combineEntries(ArrayList<long[]>;int) | 5 | 4
int | compare(long[];long[]) | 1 | 1
void | addMortonRanges(ArrayList<long[]>;int[];int[];int;int) | 9 | 21
int | roundUp(int;int) | 1 | 1
int | findMiddle(int;int) | 4 | 9

#### File lecode\tools\Recover.java 37 rule violations (XML file)

Ancestor class | Children classes
--- | ---
ToolDataHandler | org.h2.tools.Recover

Module / class or interface : org.h2.tools.Recover

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | main(String) | 1 | 1
void | runTool(String) | 8 | 6
Reader | readClob(String) | 1 | 1
InputStream | readBlob(String) | 1 | 1
Value.ValueBlob | readBlobDb(Connection;long;long) | 1 | 3
Value.ValueClob | readClobDb(Connection;long;long) | 1 | 3
void | trace(String) | 2 | 1
void | traceError(String;Throwable) | 2 | 2
void | execute(String;String) | 1 | 2
void | process(String;String) | 6 | 2
PrintWriter | getWriter(String;String) | 1 | 4
void | writeDataError(PrintWriter;String;byte[]) | 6 | 13
void | dumpLob(String;boolean) | 2 | 13
String | getSQL(String;Value) | 6 | 5
void | setDatabaseName(String) | 1 | 1
void | dumpPageStore(String) | 5 | 48
String | getPageType(int) | 10 | 10
void | dumpPageStore(PrintWriter;long) | 2 | 7
void | dumpPage(PrintWriter;Data;long;long) | 11 | 6
void | dumpPageLogStream(PrintWriter;int;int;int;long) | 8 | 5
String | setStorage(int) | 1 | 3
void | dumpPageBtreeNode(PrintWriter;Data;long;boolean) | 6 | 25
int | dumpPageFreeList(PrintWriter;Data;long;long) | 9 | 11
void | dumpPageBtreeLeaf(PrintWriter;Data;int;boolean) | 5 | 16
void | checkParent(PrintWriter;long;int[];int) | 4 | 3
void | dumpPageDataNode(PrintWriter;Data;long;int) | 4 | 14
void | dumpPageDataLeaf(PrintWriter;Data;boolean;long;int;int) | 8 | 26
void | seek(long) | 1 | 1
Value[] | createRecord(PrintWriter;Data;int) | 2 | 8
void | writeRow(PrintWriter;Data;Value[]) | 3 | 6
void | resetSchema() | 1 | 4
void | writeSchema(PrintWriter) | 11 | 14
boolean | isSchemaObjectTypeDelayed(MetaRecord) | 4 | 2
void | createTemporaryTable(PrintWriter) | 3 | 5
String | extractTableOrViewName(String) | 13 | 11
void | closeSilently(FileStore) | 2 | 1
void | writeError(PrintWriter;Throwable) | 2 | 2
String | getDatabasePath() | 1 | 1
FileStore | openFile(String;String;boolean) | 1 | 1
void | checkPowerOff() | 1 | 0
void | checkWritingAllowed() | 1 | 0
int | getMaxLengthInplaceLob() | 1 | 1
String | getLobCompressionAlgorithm(int) | 1 | 1
Object | getLobSyncObject() | 1 | 1
SmallLRUCache<String,String[]> | getLobFileListCache() | 1 | 1
TempFileDeleter | getTempFileDeleter() | 1 | 1
LobStorage | getLobStorage() | 1 | 1
Connection | getLobConnection() | 1 | 1
int | readLob(long;byte[];long;byte[];int;int) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 2
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 34
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00918 | INFO | QC-JAV999996[00918] CPD de longueur 115 commencant en 6408 (ligne 918) et 6944 (ligne 980): println ( " -- empty : " + empty ) ; for ( int i = 0 ; i _ entryCount ; i ++ ) { int off = offsets [ i ] ; s . setPos ( off ) ; long key = s . readVarLong ( ) ; Value data ; if ( positionOnly ) { data = ValueLong . get ( key ) ; } else { try { data = s . readValue ( ) ; } catch ( Throwable e ) { writeDataError ( writer , ( "exception " + e ) , s . getBytes ( ) ) ; continue ; } } writer . println ( " -- [ " + ( i + ( " ] child : "
00154 | MAJOR | QC-JAV000001[00154] Avoid declaring class instance within loop, performance impact
00292 | MAJOR | QC-JAVCWE390[00292] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00401 | MAJOR | QC-JAV000001[00401] Avoid declaring class instance within loop, performance impact
00435 | MAJOR | QC-JAVCWE390[00435] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00613 | MAJOR | QC-JAV000001[00613] Avoid declaring class instance within loop, performance impact
00617 | MAJOR | QC-JAV000001[00617] Avoid declaring class instance within loop, performance impact
00655 | MAJOR | QC-JAV000001[00655] Avoid declaring class instance within loop, performance impact
00661 | MAJOR | QC-JAV000001[00661] Avoid declaring class instance within loop, performance impact
00668 | MAJOR | QC-JAV000001[00668] Avoid declaring class instance within loop, performance impact
00669 | MAJOR | QC-JAV000001[00669] Avoid declaring class instance within loop, performance impact
00675 | MAJOR | QC-JAV000001[00675] Avoid declaring class instance within loop, performance impact
00677 | MAJOR | QC-JAV000001[00677] Avoid declaring class instance within loop, performance impact
00698 | MAJOR | QC-JAV000001[00698] Avoid declaring class instance within loop, performance impact
00703 | MAJOR | QC-JAV000001[00703] Avoid declaring class instance within loop, performance impact
00705 | MAJOR | QC-JAV000001[00705] Avoid declaring class instance within loop, performance impact
00727 | MAJOR | QC-JAV000001[00727] Avoid declaring class instance within loop, performance impact
00735 | MAJOR | QC-JAV000001[00735] Avoid declaring class instance within loop, performance impact
00923 | MAJOR | QC-JAV000001[00923] Avoid declaring class instance within loop, performance impact
00929 | MAJOR | QC-JAV000001[00929] Avoid declaring class instance within loop, performance impact
00985 | MAJOR | QC-JAV000001[00985] Avoid declaring class instance within loop, performance impact
00991 | MAJOR | QC-JAV000001[00991] Avoid declaring class instance within loop, performance impact
01092 | MAJOR | QC-JAV000001[01092] Avoid declaring class instance within loop, performance impact
01097 | MAJOR | QC-JAV000001[01097] Avoid declaring class instance within loop, performance impact
01101 | MAJOR | QC-JAV000001[01101] Avoid declaring class instance within loop, performance impact
01112 | MAJOR | QC-JAV000001[01112] Avoid declaring class instance within loop, performance impact
01159 | MAJOR | QC-JAV000001[01159] Avoid declaring class instance within loop, performance impact
01164 | MAJOR | QC-JAV000001[01164] Avoid declaring class instance within loop, performance impact
01166 | MAJOR | QC-JAV000001[01166] Avoid declaring class instance within loop, performance impact
01169 | MAJOR | QC-JAV000001[01169] Avoid declaring class instance within loop, performance impact
01206 | MAJOR | QC-JAV000001[01206] Avoid declaring class instance within loop, performance impact
01215 | MAJOR | QC-JAV000001[01215] Avoid declaring class instance within loop, performance impact
01216 | MAJOR | QC-JAV000001[01216] Avoid declaring class instance within loop, performance impact
01230 | MAJOR | QC-JAV000001[01230] Avoid declaring class instance within loop, performance impact
01231 | MAJOR | QC-JAV000001[01231] Avoid declaring class instance within loop, performance impact
01253 | MAJOR | QC-JAV000001[01253] Avoid declaring class instance within loop, performance impact
01277 | MAJOR | QC-JAV000001[01277] Avoid declaring class instance within loop, performance impact

#### File lecode\tools\Restore.java 7 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Tool | org.h2.tools.Restore

Module / class or interface : org.h2.tools.Restore

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | main(String) | 1 | 1
void | runTool(String) | 8 | 7
String | getOriginalDbName(String;String) | 2 | 8
String | getDatabaseNameFromFileName(String) | 2 | 2
void | execute(String;String;String) | 3 | 9

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 7

Line start | Criticity class | Rule
--- | --- | ---
00056 | MAJOR | QC-JAV000001[00056] Avoid declaring class instance within loop, performance impact
00083 | MAJOR | QC-JAV000001[00083] Avoid declaring class instance within loop, performance impact
00087 | MAJOR | QC-JAV000001[00087] Avoid declaring class instance within loop, performance impact
00089 | MAJOR | QC-JAV000001[00089] Avoid declaring class instance within loop, performance impact
00158 | MAJOR | QC-JAV000001[00158] Avoid declaring class instance within loop, performance impact
00162 | MAJOR | QC-JAV000001[00162] Avoid declaring class instance within loop, performance impact
00177 | MAJOR | QC-JAV000001[00177] Avoid declaring class instance within loop, performance impact

#### File lecode\tools\RunScript.java 14 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Tool | org.h2.tools.RunScript

Module / class or interface : org.h2.tools.RunScript

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | main(String) | 1 | 1
void | runTool(String) | 12 | 17
ResultSet | execute(Connection;Reader) | 4 | 6
void | process(Connection;String;boolean;String) | 1 | 6
void | process(Connection;boolean;String;Reader;String) | 5 | 4
void | processRunscript(String;String;String;String;String) | 1 | 9
void | execute(String;String;String;String;String;boolean) | 1 | 1
void | process(String;String;String;String;String;boolean) | 2 | 4

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 14

Line start | Criticity class | Rule
--- | --- | ---
00098 | MAJOR | QC-JAV000001[00098] Avoid declaring class instance within loop, performance impact
00116 | MAJOR | QC-JAV000001[00116] Avoid declaring class instance within loop, performance impact
00119 | MAJOR | QC-JAV000001[00119] Avoid declaring class instance within loop, performance impact
00160 | MAJOR | QC-JAV000001[00160] Avoid declaring class instance within loop, performance impact
00197 | MAJOR | QC-JAV000001[00197] Avoid declaring class instance within loop, performance impact
00201 | MAJOR | QC-JAV000001[00201] Avoid declaring class instance within loop, performance impact
00220 | MAJOR | QC-JAV000001[00220] Avoid declaring class instance within loop, performance impact
00222 | MAJOR | QC-JAV000001[00222] Avoid declaring class instance within loop, performance impact
00226 | MAJOR | QC-JAV000001[00226] Avoid declaring class instance within loop, performance impact
00236 | MAJOR | QC-JAV000001[00236] Avoid declaring class instance within loop, performance impact
00241 | MAJOR | QC-JAV000001[00241] Avoid declaring class instance within loop, performance impact
00255 | MAJOR | QC-JAV000001[00255] Avoid declaring class instance within loop, performance impact
00226 | MAJOR | QC-JAV000001[00226] Avoid declaring class instance within loop, performance impact
00226 | MAJOR | QC-JAV000001[00226] Avoid declaring class instance within loop, performance impact

#### File lecode\tools\Script.java 8 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Tool | org.h2.tools.Script

Module / class or interface : org.h2.tools.Script

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | main(String) | 1 | 1
void | runTool(String) | 11 | 12
void | processScript(String;String;String;String;String;String) | 1 | 9
void | execute(String;String;String;String) | 1 | 4
void | execute(String;String;String;OutputStream) | 1 | 5
void | process(Connection;OutputStream) | 1 | 6

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 8

Line start | Criticity class | Rule
--- | --- | ---
00061 | MAJOR | QC-JAV000001[00061] Avoid declaring class instance within loop, performance impact
00071 | MAJOR | QC-JAV000001[00071] Avoid declaring class instance within loop, performance impact
00072 | MAJOR | QC-JAV000001[00072] Avoid declaring class instance within loop, performance impact
00075 | MAJOR | QC-JAV000001[00075] Avoid declaring class instance within loop, performance impact
00076 | MAJOR | QC-JAV000001[00076] Avoid declaring class instance within loop, performance impact
00075 | MAJOR | QC-JAV000001[00075] Avoid declaring class instance within loop, performance impact
00076 | MAJOR | QC-JAV000001[00076] Avoid declaring class instance within loop, performance impact
00174 | MAJOR | QC-JAV000001[00174] Avoid declaring class instance within loop, performance impact

#### File lecode\tools\Server.java 12 rule violations (XML file)

Ancestor class | Children classes
--- | ---
ToolRunnable | org.h2.tools.Server

Module / class or interface : org.h2.tools.Server

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Server | Server() | 1 | 1
Server | Server(Service;String) | 1 | 4
void | main(String) | 1 | 1
void | verifyArgs(String) | 8 | 3
void | runTool(String) | 15 | 18
void | shutdownTcpServer(String;String;boolean;boolean) | 1 | 1
String | getStatus() | 7 | 6
Server | createWebServer(String) | 1 | 4
Server | createTcpServer(String) | 1 | 4
Server | createPgServer(String) | 1 | 1
Server | start() | 3 | 8
void | wait(int) | 1 | 2
void | stopAll() | 4 | 6
boolean | isRunning(boolean) | 1 | 1
void | stop() | 2 | 2
String | getURL() | 1 | 1
int | getPort() | 1 | 1
void | run() | 1 | 2
void | setShutdownHandler(ShutdownHandler) | 1 | 1
void | shutdown() | 3 | 2
Service | getService() | 1 | 1
void | openBrowser(String) | 7 | 7
void | startWebServer(Connection) | 1 | 8

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 4
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 5

Line start | Criticity class | Rule
--- | --- | ---
00121 | INFO | QC-JAV999996[00121] CPD de longueur 70 commencant en 270 (ligne 121) et 1031 (ligne 216): int i = 0 ; ( args != null ) __ ( i _ args . length ) ; i ++ ) { String arg = args [ i ] ; if ( arg == null ) { continue ; } else if ( String . valueOf ( " - ? " ) . equals ( arg ) || String . valueOf ( " - help" ) . equals ( arg ) ) { }
00130 | INFO | QC-JAV999996[00130] CPD de longueur 73 commencant en 368 (ligne 130) et 1143 (ligne 227): if ( String . valueOf ( " - webAllowOthers" ) . equals ( arg ) ) { } else if ( String . valueOf ( " - webDaemon" ) . equals ( arg ) ) { } else if ( String . valueOf ( " - webSSL" ) . equals ( arg ) ) { } else if ( String . valueOf ( " - webPort" ) . equals ( arg ) ) { i ++ ; } else { throwUnsupportedOption
00146 | INFO | QC-JAV999996[00146] CPD de longueur 87 commencant en 492 (ligne 146) et 1283 (ligne 245): if ( String . valueOf ( " - tcpAllowOthers" ) . equals ( arg ) ) { } else if ( String . valueOf ( " - tcpDaemon" ) . equals ( arg ) ) { } else if ( String . valueOf ( " - tcpSSL" ) . equals ( arg ) ) { } else if ( String . valueOf ( " - tcpPort" ) . equals ( arg ) ) { i ++ ; } else if ( String . valueOf ( " - tcpPassword" ) . equals ( arg ) ) { i
00166 | INFO | QC-JAV999996[00166] CPD de longueur 56 commencant en 656 (ligne 166) et 1481 (ligne 268): if ( String . valueOf ( " - pgAllowOthers" ) . equals ( arg ) ) { } else if ( String . valueOf ( " - pgDaemon" ) . equals ( arg ) ) { } else if ( String . valueOf ( " - pgPort" ) . equals ( arg ) ) { i ++ ; } else { throwUnsupportedOption
00191 | INFO | QC-JAV999996[00191] CPD de longueur 95 commencant en 856 (ligne 191) et 1545 (ligne 277): ( String . valueOf ( " - properties" ) . equals ( arg ) ) { i ++ ; } else if ( String . valueOf ( " - trace" ) . equals ( arg ) ) { } else if ( String . valueOf ( " - ifExists" ) . equals ( arg ) ) { } else if ( String . valueOf ( " - baseDir" ) . equals ( arg ) ) { i ++ ; } else if ( String . valueOf ( " - key" ) . equals ( arg ) ) { i += 2 ; } else if
00122 | MAJOR | QC-JAV000001[00122] Avoid declaring class instance within loop, performance impact
00217 | MAJOR | QC-JAV000001[00217] Avoid declaring class instance within loop, performance impact
00484 | MAJOR | QC-JAVCWE390[00484] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00623 | MAJOR | QC-JAVCWE390[00623] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00640 | MAJOR | QC-JAV000001[00640] Avoid declaring class instance within loop, performance impact
00640 | MAJOR | QC-JAVCWE390[00640] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00675 | MAJOR | QC-JAVCWE390[00675] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\tools\Shell.java 29 rule violations (XML file)

Ancestor class | Children classes
--- | ---
ToolRunnable | org.h2.tools.Shell

Module / class or interface : org.h2.tools.Shell

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | main(String) | 1 | 1
void | setErr(PrintStream) | 1 | 1
void | setIn(InputStream) | 1 | 1
void | setInReader(BufferedReader) | 1 | 1
void | runTool(String) | 11 | 12
void | showHelp() | 1 | 8
void | promptLoop() | 4 | 6
void | connect() | 8 | 25
void | print(String) | 1 | 2
void | println(String) | 1 | 2
String | readPassword() | 1 | 13
void | run() | 1 | 1
String | readLine(String) | 1 | 2
String | readLine() | 2 | 3
void | execute(String) | 5 | 5
int | printResult(ResultSet;boolean) | 2 | 2
int | printResultAsTable(ResultSet) | 4 | 17
boolean | loadRow(ResultSet;int;ArrayList<String[]>) | 4 | 8
int[] | printRows(ArrayList<String[]>;int) | 6 | 8
int | printResultAsList(ResultSet) | 6 | 16

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 4
MAJOR | QC-JAVCWE392 | Failure to report error in status code | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 24

Line start | Criticity class | Rule
--- | --- | ---
00121 | MAJOR | QC-JAV000001[00121] Avoid declaring class instance within loop, performance impact
00129 | MAJOR | QC-JAV000001[00129] Avoid declaring class instance within loop, performance impact
00152 | MAJOR | QC-JAV000001[00152] Avoid declaring class instance within loop, performance impact
00194 | MAJOR | QC-JAV000001[00194] Avoid declaring class instance within loop, performance impact
00198 | MAJOR | QC-JAV000001[00198] Avoid declaring class instance within loop, performance impact
00207 | MAJOR | QC-JAV000001[00207] Avoid declaring class instance within loop, performance impact
00217 | MAJOR | QC-JAV000001[00217] Avoid declaring class instance within loop, performance impact
00240 | MAJOR | QC-JAV000001[00240] Avoid declaring class instance within loop, performance impact
00274 | MAJOR | QC-JAV000001[00274] Avoid declaring class instance within loop, performance impact
00277 | MAJOR | QC-JAV000001[00277] Avoid declaring class instance within loop, performance impact
00280 | MAJOR | QC-JAV000001[00280] Avoid declaring class instance within loop, performance impact
00217 | MAJOR | QC-JAV000001[00217] Avoid declaring class instance within loop, performance impact
00311 | MAJOR | QC-JAV000001[00311] Avoid declaring class instance within loop, performance impact
00324 | MAJOR | QC-JAVCWE390[00324] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00373 | MAJOR | QC-JAVCWE390[00373] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00384 | MAJOR | QC-JAVCWE390[00384] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00401 | MAJOR | QC-JAV000001[00401] Avoid declaring class instance within loop, performance impact
00401 | MAJOR | QC-JAVCWE390[00401] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00447 | MAJOR | QC-JAVCWE392[00447] Failure to report error in status code (see http://cwe.mitre.org/data/definitions/392.html)
00466 | MAJOR | QC-JAV000001[00466] Avoid declaring class instance within loop, performance impact
00491 | MAJOR | QC-JAV000001[00491] Avoid declaring class instance within loop, performance impact
00510 | MAJOR | QC-JAV000001[00510] Avoid declaring class instance within loop, performance impact
00519 | MAJOR | QC-JAV000001[00519] Avoid declaring class instance within loop, performance impact
00524 | MAJOR | QC-JAV000001[00524] Avoid declaring class instance within loop, performance impact
00524 | MAJOR | QC-JAV000001[00524] Avoid declaring class instance within loop, performance impact
00543 | MAJOR | QC-JAV000001[00543] Avoid declaring class instance within loop, performance impact
00559 | MAJOR | QC-JAV000001[00559] Avoid declaring class instance within loop, performance impact
00559 | MAJOR | QC-JAV000001[00559] Avoid declaring class instance within loop, performance impact
00573 | MAJOR | QC-JAV000001[00573] Avoid declaring class instance within loop, performance impact

#### File lecode\tools\SimpleResultSet.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.tools.SimpleResultSet

Module / class or interface : org.h2.tools.SimpleResultSet

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SimpleResultSet | SimpleResultSet() | 1 | 1
SimpleResultSet | SimpleResultSet(SimpleRowSource) | 1 | 1
void | addColumn(String;int;int;int) | 3 | 8
void | addRow(Object) | 2 | 2
int | getConcurrency() | 1 | 1
int | getFetchDirection() | 1 | 1
int | getFetchSize() | 1 | 1
int | getRow() | 1 | 1
int | getType() | 1 | 1
void | close() | 2 | 6
boolean | next() | 7 | 5
void | beforeFirst() | 2 | 2
boolean | wasNull() | 1 | 1
int | findColumn(String) | 3 | 1
ResultSetMetaData | getMetaData() | 1 | 1
SQLWarning | getWarnings() | 1 | 1
Statement | getStatement() | 1 | 1
void | clearWarnings() | 1 | 0
Array | getArray(int) | 1 | 2
Array | getArray(String) | 1 | 1
InputStream | getAsciiStream(int) | 1 | 1
InputStream | getAsciiStream(String) | 1 | 1
BigDecimal | getBigDecimal(int) | 2 | 3
BigDecimal | getBigDecimal(String) | 1 | 1
BigDecimal | getBigDecimal(int;int) | 1 | 1
BigDecimal | getBigDecimal(String;int) | 1 | 1
InputStream | getBinaryStream(int) | 1 | 1
InputStream | asInputStream(Object) | 4 | 3
InputStream | getBinaryStream(String) | 1 | 1
Blob | getBlob(int) | 1 | 1
Blob | getBlob(String) | 1 | 1
boolean | getBoolean(int) | 2 | 3
boolean | getBoolean(String) | 1 | 1
byte | getByte(int) | 2 | 3
byte | getByte(String) | 1 | 1
byte[] | getBytes(int) | 1 | 1
byte[] | getBytes(String) | 1 | 1
Reader | getCharacterStream(int) | 1 | 1
Reader | asReader(Object) | 4 | 3
Reader | getCharacterStream(String) | 1 | 1
Clob | getClob(int) | 1 | 2
Clob | getClob(String) | 1 | 1
Date | getDate(int) | 1 | 1
Date | getDate(String) | 1 | 1
Date | getDate(int;Calendar) | 1 | 1
Date | getDate(String;Calendar) | 1 | 1
double | getDouble(int) | 2 | 3
double | getDouble(String) | 1 | 1
float | getFloat(int) | 2 | 3
float | getFloat(String) | 1 | 1
int | getInt(int) | 2 | 3
int | getInt(String) | 1 | 1
long | getLong(int) | 2 | 3
long | getLong(String) | 1 | 1
Reader | getNCharacterStream(int) | 1 | 1
Reader | getNCharacterStream(String) | 1 | 1
NClob | getNClob(int) | 1 | 1
NClob | getNClob(String) | 1 | 1
String | getNString(int) | 1 | 1
String | getNString(String) | 1 | 1
Object | getObject(int) | 1 | 1
Object | getObject(String) | 1 | 1
Object | getObject(int;Map<String,Class<?>>) | 1 | 1
Object | getObject(String;Map<String,Class<?>>) | 1 | 1
Ref | getRef(int) | 1 | 1
Ref | getRef(String) | 1 | 1
RowId | getRowId(int) | 1 | 1
RowId | getRowId(String) | 1 | 1
short | getShort(int) | 2 | 3
short | getShort(String) | 1 | 1
SQLXML | getSQLXML(int) | 1 | 1
SQLXML | getSQLXML(String) | 1 | 1
String | getString(int) | 3 | 5
String | getString(String) | 1 | 1
Time | getTime(int) | 1 | 1
Time | getTime(String) | 1 | 1
Time | getTime(int;Calendar) | 1 | 1
Time | getTime(String;Calendar) | 1 | 1
Timestamp | getTimestamp(int) | 1 | 1
Timestamp | getTimestamp(String) | 1 | 1
Timestamp | getTimestamp(int;Calendar) | 1 | 1
Timestamp | getTimestamp(String;Calendar) | 1 | 1
InputStream | getUnicodeStream(int) | 1 | 1
InputStream | getUnicodeStream(String) | 1 | 1
URL | getURL(int) | 1 | 1
URL | getURL(String) | 1 | 1
void | updateArray(int;Array) | 1 | 1
void | updateArray(String;Array) | 1 | 1
void | updateAsciiStream(int;InputStream) | 1 | 1
void | updateAsciiStream(String;InputStream) | 1 | 1
void | updateAsciiStream(int;InputStream;int) | 1 | 1
void | updateAsciiStream(String;InputStream;int) | 1 | 1
void | updateAsciiStream(int;InputStream;long) | 1 | 1
void | updateAsciiStream(String;InputStream;long) | 1 | 1
void | updateBigDecimal(int;BigDecimal) | 1 | 1
void | updateBigDecimal(String;BigDecimal) | 1 | 1
void | updateBinaryStream(int;InputStream) | 1 | 1
void | updateBinaryStream(String;InputStream) | 1 | 1
void | updateBinaryStream(int;InputStream;int) | 1 | 1
void | updateBinaryStream(String;InputStream;int) | 1 | 1
void | updateBinaryStream(int;InputStream;long) | 1 | 1
void | updateBinaryStream(String;InputStream;long) | 1 | 1
void | updateBlob(int;Blob) | 1 | 1
void | updateBlob(String;Blob) | 1 | 1
void | updateBlob(int;InputStream) | 1 | 1
void | updateBlob(String;InputStream) | 1 | 1
void | updateBlob(int;InputStream;long) | 1 | 1
void | updateBlob(String;InputStream;long) | 1 | 1
void | updateBoolean(int;boolean) | 1 | 1
void | updateBoolean(String;boolean) | 1 | 1
void | updateByte(int;byte) | 1 | 1
void | updateByte(String;byte) | 1 | 1
void | updateBytes(int;byte[]) | 1 | 1
void | updateBytes(String;byte[]) | 1 | 1
void | updateCharacterStream(int;Reader) | 1 | 1
void | updateCharacterStream(String;Reader) | 1 | 1
void | updateCharacterStream(int;Reader;int) | 1 | 1
void | updateCharacterStream(String;Reader;int) | 1 | 1
void | updateCharacterStream(int;Reader;long) | 1 | 1
void | updateCharacterStream(String;Reader;long) | 1 | 1
void | updateClob(int;Clob) | 1 | 1
void | updateClob(String;Clob) | 1 | 1
void | updateClob(int;Reader) | 1 | 1
void | updateClob(String;Reader) | 1 | 1
void | updateClob(int;Reader;long) | 1 | 1
void | updateClob(String;Reader;long) | 1 | 1
void | updateDate(int;Date) | 1 | 1
void | updateDate(String;Date) | 1 | 1
void | updateDouble(int;double) | 1 | 1
void | updateDouble(String;double) | 1 | 1
void | updateFloat(int;float) | 1 | 1
void | updateFloat(String;float) | 1 | 1
void | updateInt(int;int) | 1 | 1
void | updateInt(String;int) | 1 | 1
void | updateLong(int;long) | 1 | 1
void | updateLong(String;long) | 1 | 1
void | updateNCharacterStream(int;Reader) | 1 | 1
void | updateNCharacterStream(String;Reader) | 1 | 1
void | updateNCharacterStream(int;Reader;long) | 1 | 1
void | updateNCharacterStream(String;Reader;long) | 1 | 1
void | updateNClob(int;NClob) | 1 | 1
void | updateNClob(String;NClob) | 1 | 1
void | updateNClob(int;Reader) | 1 | 1
void | updateNClob(String;Reader) | 1 | 1
void | updateNClob(int;Reader;long) | 1 | 1
void | updateNClob(String;Reader;long) | 1 | 1
void | updateNString(int;String) | 1 | 1
void | updateNString(String;String) | 1 | 1
void | updateNull(int) | 1 | 1
void | updateNull(String) | 1 | 1
void | updateObject(int;Object) | 1 | 1
void | updateObject(String;Object) | 1 | 1
void | updateObject(int;Object;int) | 1 | 1
void | updateObject(String;Object;int) | 1 | 1
void | updateRef(int;Ref) | 1 | 1
void | updateRef(String;Ref) | 1 | 1
void | updateRowId(int;RowId) | 1 | 1
void | updateRowId(String;RowId) | 1 | 1
void | updateShort(int;short) | 1 | 1
void | updateShort(String;short) | 1 | 1
void | updateSQLXML(int;SQLXML) | 1 | 1
void | updateSQLXML(String;SQLXML) | 1 | 1
void | updateString(int;String) | 1 | 1
void | updateString(String;String) | 1 | 1
void | updateTime(int;Time) | 1 | 1
void | updateTime(String;Time) | 1 | 1
void | updateTimestamp(int;Timestamp) | 1 | 1
void | updateTimestamp(String;Timestamp) | 1 | 1
int | getColumnCount() | 1 | 1
int | getColumnDisplaySize(int) | 1 | 1
int | getColumnType(int) | 1 | 1
int | getPrecision(int) | 1 | 1
int | getScale(int) | 1 | 1
int | isNullable(int) | 1 | 1
boolean | isAutoIncrement(int) | 1 | 1
boolean | isCaseSensitive(int) | 1 | 1
boolean | isCurrency(int) | 1 | 1
boolean | isDefinitelyWritable(int) | 1 | 1
boolean | isReadOnly(int) | 1 | 1
boolean | isSearchable(int) | 1 | 1
boolean | isSigned(int) | 1 | 1
boolean | isWritable(int) | 1 | 1
String | getCatalogName(int) | 1 | 1
String | getColumnClassName(int) | 1 | 3
String | getColumnLabel(int) | 1 | 1
String | getColumnName(int) | 1 | 1
String | getColumnTypeName(int) | 1 | 3
String | getSchemaName(int) | 1 | 1
String | getTableName(int) | 1 | 1
void | afterLast() | 1 | 1
void | cancelRowUpdates() | 1 | 1
void | deleteRow() | 1 | 1
void | insertRow() | 1 | 1
void | moveToCurrentRow() | 1 | 1
void | moveToInsertRow() | 1 | 1
void | refreshRow() | 1 | 1
void | updateRow() | 1 | 1
boolean | first() | 1 | 1
boolean | isAfterLast() | 1 | 1
boolean | isBeforeFirst() | 1 | 1
boolean | isFirst() | 1 | 1
boolean | isLast() | 1 | 1
boolean | last() | 1 | 1
boolean | previous() | 1 | 1
boolean | rowDeleted() | 1 | 1
boolean | rowInserted() | 1 | 1
boolean | rowUpdated() | 1 | 1
void | setFetchDirection(int) | 1 | 1
void | setFetchSize(int) | 1 | 1
boolean | absolute(int) | 1 | 1
boolean | relative(int) | 1 | 1
String | getCursorName() | 1 | 1
void | update(int;Object) | 1 | 2
void | update(String;Object) | 1 | 1
SQLException | getUnsupportedException() | 1 | 1
void | checkColumnIndex(int) | 2 | 1
Object | get(int) | 2 | 6
Column | getColumn(int) | 1 | 2
int | getHoldability() | 1 | 1
boolean | isClosed() | 1 | 1
boolean | isWrapperFor(Class<?>) | 1 | 1
void | setAutoClose(boolean) | 1 | 1
boolean | getAutoClose() | 1 | 1

#### File lecode\tools\SimpleRowSource.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.tools.SimpleRowSource

Module / class or interface : org.h2.tools.SimpleRowSource

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Object[] | readRow() | 1 | 1
void | close() | 1 | 1
void | reset() | 1 | 1

#### File lecode\tools\TriggerAdapter.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.tools.TriggerAdapter

Module / class or interface : org.h2.tools.TriggerAdapter

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | init(Connection;String;String;String;boolean;int) | 1 | 16
void | fire(Connection;Object[];Object[]) | 1 | 1
void | fire(Connection;ResultSet;ResultSet) | 1 | 1
SimpleResultSet | wrap(SimpleResultSet;TriggerRowSource;Object[]) | 2 | 4
void | remove() | 1 | 0
void | close() | 1 | 0

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00076 | MAJOR | QC-JAV000001[00076] Avoid declaring class instance within loop, performance impact

#### File lecode\upgrade\DbUpgrade.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.upgrade.DbUpgrade

Module / class or interface : org.h2.upgrade.DbUpgrade

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Connection | connectOrUpgrade(String;Properties) | 7 | 14
void | setScriptInTempDir(boolean) | 1 | 1
void | setDeleteOldDb(boolean) | 1 | 1
Connection | connectWithOldVersion(String;Properties) | 1 | 2
void | upgrade(ConnectionInfo;Properties) | 14 | 25

#### File lecode\util\AutoCloseInputStream.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
InputStream | org.h2.util.AutoCloseInputStream

Module / class or interface : org.h2.util.AutoCloseInputStream

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
AutoCloseInputStream | AutoCloseInputStream(InputStream) | 1 | 1
int | autoClose(int) | 2 | 2
void | close() | 2 | 2
int | read(byte[];int;int) | 1 | 1
int | read(byte[]) | 1 | 1
int | read() | 1 | 1

#### File lecode\util\BitField.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.BitField

Module / class or interface : org.h2.util.BitField

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
BitField | BitField() | 1 | 1
BitField | BitField(int) | 1 | 1
int | nextClearBit(int) | 4 | 6
boolean | get(int) | 2 | 3
int | getByte(int) | 2 | 3
void | setByte(int;int) | 2 | 4
void | set(int) | 2 | 4
void | clear(int) | 2 | 3
long | getBitMask(int) | 1 | 1
void | checkCapacity(int) | 2 | 1
void | expandCapacity(int) | 1 | 4
void | set(int;int;boolean) | 6 | 3
void | set(int;boolean) | 3 | 2
int | length() | 1 | 4

#### File lecode\util\Cache.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.Cache

Module / class or interface : org.h2.util.Cache

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ArrayList<CacheObject> | getAllChanged() | 1 | 1
void | clear() | 1 | 1
CacheObject | get(int) | 1 | 1
void | put(CacheObject) | 1 | 1
CacheObject | update(int;CacheObject) | 1 | 1
boolean | remove(int) | 1 | 1
CacheObject | find(int) | 1 | 1
void | setMaxMemory(int) | 1 | 1
int | getMaxMemory() | 1 | 1
int | getMemory() | 1 | 1

#### File lecode\util\CacheHead.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
CacheObject | org.h2.util.CacheHead

Module / class or interface : org.h2.util.CacheHead

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
boolean | canRemove() | 1 | 1
int | getMemory() | 1 | 1

#### File lecode\util\CacheLRU.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.CacheLRU

Module / class or interface : org.h2.util.CacheLRU

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CacheLRU | CacheLRU(CacheWriter;int;boolean) | 1 | 6
Cache | getCache(CacheWriter;String;int) | 7 | 9
void | clear() | 1 | 5
void | put(CacheObject) | 3 | 9
CacheObject | update(int;CacheObject) | 5 | 3
void | removeOldIfRequired() | 2 | 1
void | removeOld() | 12 | 16
void | addToFront(CacheObject) | 2 | 5
void | removeFromLinkedList(CacheObject) | 2 | 5
boolean | remove(int) | 7 | 13
CacheObject | find(int) | 1 | 3
CacheObject | get(int) | 3 | 2
ArrayList<CacheObject> | getAllChanged() | 2 | 4
void | setMaxMemory(int) | 1 | 3
int | getMaxMemory() | 1 | 1
int | getMemory() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 3
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00097 | CRITICAL | QC-JAVCWE476[00097] The argument rec is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk
00159 | MAJOR | QC-JAV000001[00159] Avoid declaring class instance within loop, performance impact
00205 | MAJOR | QC-JAV000001[00205] Avoid declaring class instance within loop, performance impact
00212 | MAJOR | QC-JAV000001[00212] Avoid declaring class instance within loop, performance impact
00223 | CRITICAL | QC-JAVCWE476[00223] The argument rec is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk
00233 | CRITICAL | QC-JAVCWE476[00233] The argument rec is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk

#### File lecode\util\CacheObject.java 3 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.CacheObject

Module / class or interface : org.h2.util.CacheObject

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
boolean | canRemove() | 1 | 1
int | getMemory() | 1 | 1
void | setPos(int) | 3 | 1
int | getPos() | 1 | 1
boolean | isChanged() | 1 | 1
void | setChanged(boolean) | 1 | 1
int | compareTo(CacheObject) | 1 | 1
boolean | isStream() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 3

Line start | Criticity class | Rule
--- | --- | ---
00021 | MAJOR | QC-JAVCWE493[00021] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00027 | MAJOR | QC-JAVCWE493[00027] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00032 | MAJOR | QC-JAVCWE493[00032] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)

#### File lecode\util\CacheSecondLevel.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.CacheSecondLevel

Module / class or interface : org.h2.util.CacheSecondLevel

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CacheSecondLevel | CacheSecondLevel(Cache;Map<Integer,CacheObject>) | 1 | 2
void | clear() | 1 | 2
CacheObject | find(int) | 2 | 3
CacheObject | get(int) | 2 | 3
ArrayList<CacheObject> | getAllChanged() | 1 | 1
int | getMaxMemory() | 1 | 1
int | getMemory() | 1 | 1
void | put(CacheObject) | 1 | 2
boolean | remove(int) | 1 | 3
void | setMaxMemory(int) | 1 | 1
CacheObject | update(int;CacheObject) | 1 | 3

#### File lecode\util\CacheTQ.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.CacheTQ

Module / class or interface : org.h2.util.CacheTQ

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CacheTQ | CacheTQ(CacheWriter;int) | 1 | 4
void | clear() | 1 | 4
CacheObject | find(int) | 2 | 3
CacheObject | get(int) | 5 | 5
ArrayList<CacheObject> | getAllChanged() | 1 | 4
int | getMaxMemory() | 1 | 1
int | getMemory() | 1 | 1
void | put(CacheObject) | 5 | 4
boolean | remove(int) | 2 | 4
void | setMaxMemory(int) | 1 | 4
CacheObject | update(int;CacheObject) | 2 | 2

#### File lecode\util\CacheWriter.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.CacheWriter

Module / class or interface : org.h2.util.CacheWriter

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | writeBack(CacheObject) | 1 | 1
void | flushLog() | 1 | 1
Trace | getTrace() | 1 | 1

#### File lecode\util\CloseWatcher.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
PhantomReference<Object> | org.h2.util.CloseWatcher

Module / class or interface : org.h2.util.CloseWatcher

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CloseWatcher | CloseWatcher(Object;ReferenceQueue<Object>;Closeable) | 1 | 2
Set<CloseWatcher> | createSet() | 1 | 1
CloseWatcher | pollUnclosed() | 5 | 3
CloseWatcher | register(Object;Closeable;boolean) | 4 | 11
void | unregister(CloseWatcher) | 1 | 2
String | getOpenStackTrace() | 1 | 1
Closeable | getCloseable() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00068 | MAJOR | QC-JAV000001[00068] Avoid declaring class instance within loop, performance impact
00068 | MAJOR | QC-JAV000001[00068] Avoid declaring class instance within loop, performance impact

#### File lecode\util\DateTimeUtils.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.DateTimeUtils

Module / class or interface : org.h2.util.DateTimeUtils

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
DateTimeUtils | DateTimeUtils() | 1 | 0
void | resetCalendar() | 1 | 2
Calendar | getCalendar() | 2 | 3
Date | convertDate(Value;Calendar) | 2 | 9
Time | convertTime(Value;Calendar) | 2 | 17
Timestamp | convertTimestamp(Value;Calendar) | 2 | 20
ValueDate | convertDate(Date;Calendar) | 2 | 5
ValueTime | convertTime(Time;Calendar) | 2 | 5
long | convertToLocal(java.util.Date;Calendar) | 2 | 6
void | convertTime(Calendar;Calendar) | 1 | 8
ValueTimestamp | convertTimestamp(Timestamp;Calendar) | 2 | 7
long | parseDateValue(String;int;int) | 4 | 9
long | parseTimeNanos(String;int;int;boolean) | 9 | 20
long | getMillis(TimeZone;int;int;int;int;int;int;int) | 3 | 2
long | getTimeTry(boolean;TimeZone;int;int;int;int;int;int;int) | 3 | 7
void | setCalendarFields(Calendar;int;int;int;int;int;int;int) | 3 | 10
int | getDatePart(java.util.Date;int) | 3 | 4
int | getYear(Calendar) | 2 | 3
long | getTimeLocalWithoutDst(java.util.Date) | 1 | 1
long | getTimeUTCWithoutDst(long) | 1 | 1
int | getIsoDayOfWeek(java.util.Date) | 1 | 4
int | getIsoWeek(java.util.Date) | 1 | 5
int | getIsoYear(java.util.Date) | 4 | 10
String | formatDateTime(java.util.Date;String;String;String) | 1 | 2
java.util.Date | parseDateTime(String;String;String;String) | 1 | 2
SimpleDateFormat | getDateFormat(String;String;String) | 4 | 3
boolean | isValidDate(int;int;int) | 8 | 5
Date | convertDateValueToDate(long) | 1 | 2
Timestamp | convertDateValueToTimestamp(long;long) | 1 | 12
Time | convertNanoToTime(long) | 1 | 9
int | yearFromDateValue(long) | 1 | 1
int | monthFromDateValue(long) | 1 | 1
int | dayFromDateValue(long) | 1 | 1
long | dateValue(long;int;int) | 1 | 1
long | dateValueFromDate(long) | 1 | 4
long | dateValueFromCalendar(Calendar) | 1 | 5
long | nanosFromDate(long) | 1 | 4
long | nanosFromCalendar(Calendar) | 1 | 5
ValueTimestamp | normalizeTimestamp(long;long) | 4 | 4
long | absoluteDayFromDateValue(long) | 5 | 9
long | dateValueFromAbsoluteDay(long) | 5 | 21

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 4

Line start | Criticity class | Rule
--- | --- | ---
00118 | INFO | QC-JAV999996[00118] CPD de longueur 70 commencant en 508 (ligne 118) et 699 (ligne 149): . getNanos ( ) ; long millis = nanos / 1000000 ; nanos -= ( millis * 1000000 ) ; long s = millis / 1000 ; millis -= ( s * 1000 ) ; long m = s / 60 ; s -= ( m * 60 ) ; long h = m / 60 ; m -= ( h * 60 ) ; setCalendarFields ( cal , 1970
00150 | INFO | QC-JAV999996[00150] CPD de longueur 58 commencant en 707 (ligne 150) et 3344 (ligne 645): nanos / 1000000 ; nanos -= ( millis * 1000000 ) ; long s = millis / 1000 ; millis -= ( s * 1000 ) ; long m = s / 60 ; s -= ( m * 60 ) ; long h = m / 60 ; m -= ( h * 60 ) ; setCalendarFields
00175 | INFO | QC-JAV999996[00175] CPD de longueur 55 commencant en 851 (ligne 175) et 1234 (ligne 240): , Calendar calendar ) { if ( calendar == null ) { throw DbException . getInvalidValueException ( "calendar" , null ) ; } Calendar cal = ( Calendar ) calendar . clone ( ) ; cal . setTimeInMillis ( x . getTime ( ) ) ; long dateValue = dateValueFromCalendar ( cal ) ; return
00647 | INFO | QC-JAV999996[00647] CPD de longueur 56 commencant en 3357 (ligne 647) et 3493 (ligne 672): s = millis / 1000 ; millis -= ( s * 1000 ) ; long m = s / 60 ; s -= ( m * 60 ) ; long h = m / 60 ; m -= ( h * 60 ) ; long ms = getMillis ( TimeZone . getDefault ( ) , yearFromDateValue

#### File lecode\util\DbDriverActivator.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.DbDriverActivator

Module / class or interface : org.h2.util.DbDriverActivator

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | start(BundleContext) | 1 | 1
void | stop(BundleContext) | 1 | 1

#### File lecode\util\HashBase.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.HashBase

Module / class or interface : org.h2.util.HashBase

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
HashBase | HashBase() | 1 | 1
void | rehash(int) | 1 | 1
int | size() | 1 | 1
void | checkSizePut() | 3 | 2
void | checkSizeRemove() | 4 | 2
void | reset(int) | 1 | 8
int | getIndex(int) | 1 | 1

#### File lecode\util\IOUtils.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.IOUtils

Module / class or interface : org.h2.util.IOUtils

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
IOUtils | IOUtils() | 1 | 0
void | closeSilently(Closeable) | 2 | 0
void | skipFully(InputStream;long) | 1 | 1
void | skipFully(Reader;long) | 1 | 1
long | copyAndClose(InputStream;OutputStream) | 1 | 5
long | copyAndCloseInput(InputStream;OutputStream) | 1 | 3
long | copy(InputStream;OutputStream) | 1 | 1
long | copy(InputStream;OutputStream;long) | 1 | 5
long | copyAndCloseInput(Reader;Writer;long) | 1 | 6
void | closeSilently(InputStream) | 2 | 0
void | closeSilently(Reader) | 2 | 0
void | closeSilently(Writer) | 2 | 0
byte[] | readBytesAndClose(InputStream;int) | 2 | 6
String | readStringAndClose(Reader;int) | 2 | 5
int | readFully(InputStream;byte[];int;int) | 1 | 4
int | readFully(Reader;char[];int) | 2 | 3
Reader | getBufferedReader(InputStream) | 1 | 2
Reader | getReader(InputStream) | 1 | 2
Writer | getBufferedWriter(OutputStream) | 1 | 2
Reader | getReaderFromString(String) | 1 | 1
Reader | getAsciiReader(InputStream) | 1 | 2
void | trace(String;String;Object) | 2 | 1
InputStream | getInputStreamFromString(String) | 2 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 4
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 2

Line start | Criticity class | Rule
--- | --- | ---
00162 | INFO | QC-JAV999996[00162] CPD de longueur 53 commencant en 516 (ligne 162) et 662 (ligne 194): len ] ; while ( length _ 0 ) { len = in . read ( buffer , 0 , len ) ; if ( len _ 0 ) { break ; } if ( out != null ) { out . write ( buffer , 0 , len ) ; } copied
00380 | INFO | QC-JAV999996[00380] CPD de longueur 51 commencant en 1305 (ligne 380) et 1358 (ligne 399): InputStream in ) { try { return ( in == null ) ? null : ( new BufferedReader ( new InputStreamReader ( in , Constants . UTF8 ) ) ) ; } catch ( Exception e ) { throw DbException . convert ( e ) ; } } public static Reader
00047 | MAJOR | QC-JAVCWE390[00047] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00225 | MAJOR | QC-JAVCWE390[00225] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00240 | MAJOR | QC-JAVCWE390[00240] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00256 | MAJOR | QC-JAVCWE390[00256] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\util\IntArray.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.IntArray

Module / class or interface : org.h2.util.IntArray

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
IntArray | IntArray() | 1 | 1
IntArray | IntArray(int) | 1 | 1
IntArray | IntArray(int[]) | 1 | 2
void | add(int) | 2 | 2
int | get(int) | 3 | 1
void | remove(int) | 3 | 2
void | ensureCapacity(int) | 2 | 4
boolean | equals(Object) | 5 | 6
int | hashCode() | 3 | 7
int | size() | 1 | 1
void | toArray(int[]) | 1 | 1
String | toString() | 2 | 6
void | removeRange(int;int) | 3 | 2

#### File lecode\util\IntIntHashMap.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
HashBase | org.h2.util.IntIntHashMap

Module / class or interface : org.h2.util.IntIntHashMap

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | reset(int) | 1 | 3
void | put(int;int) | 6 | 11
void | remove(int) | 6 | 8
void | rehash(int) | 3 | 6
int | get(int) | 6 | 7

#### File lecode\util\JdbcUtils.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.JdbcUtils

Module / class or interface : org.h2.util.JdbcUtils

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
JdbcUtils | JdbcUtils() | 1 | 0
void | closeSilently(Statement) | 2 | 0
void | closeSilently(Connection) | 2 | 0
void | closeSilently(ResultSet) | 2 | 0
Connection | getConnection(String;String;String;String) | 3 | 4
String | escapeMetaDataPattern(String) | 2 | 2
Connection | getConnection(String;String;Properties) | 7 | 3
String | getDriver(String) | 3 | 2
void | load(String) | 2 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 3
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00065 | MAJOR | QC-JAVCWE390[00065] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00080 | MAJOR | QC-JAVCWE390[00080] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00095 | MAJOR | QC-JAVCWE390[00095] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00182 | MAJOR | QC-JAV000001[00182] Avoid declaring class instance within loop, performance impact

#### File lecode\util\MathUtils.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.MathUtils

Module / class or interface : org.h2.util.MathUtils

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
MathUtils | MathUtils() | 1 | 0
SecureRandom | getSecureRandom() | 2 | 6
byte[] | generateAlternativeSeed() | 2 | 12
void | warn(String;Throwable) | 2 | 2
int | roundUpInt(int;int) | 1 | 1
long | roundUpLong(long;long) | 1 | 1
int | nextPowerOf2(int) | 1 | 3
BigDecimal | setScale(BigDecimal;int) | 2 | 2
int | convertLongToInt(long) | 5 | 3
int | compareInt(int;int) | 1 | 1
int | compareLong(long;long) | 1 | 1
long | secureRandomLong() | 1 | 2
void | randomBytes(byte[]) | 1 | 1
byte[] | secureRandomBytes(int) | 2 | 5
int | randomInt(int) | 1 | 1
int | secureRandomInt(int) | 1 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
BLOCKER | QC-JAVCWE572 | Call to Thread run() instead of start() | 1
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1

Line start | Criticity class | Rule
--- | --- | ---
00095 | BLOCKER | QC-JAVCWE572[00095] call to Thread run() instead of start() (see http://cwe.mitre.org/data/definitions/572.html)
00157 | MAJOR | QC-JAVCWE390[00157] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\util\NetUtils.java 6 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.NetUtils

Module / class or interface : org.h2.util.NetUtils

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
NetUtils | NetUtils() | 1 | 0
Socket | createLoopbackSocket(int;boolean) | 2 | 3
String | getHostAddress(InetAddress) | 3 | 2
Socket | createSocket(String;int;boolean) | 2 | 7
Socket | createSocket(InetAddress;int;boolean) | 2 | 3
ServerSocket | createServerSocket(int;boolean) | 1 | 2
InetAddress | getBindAddress() | 3 | 3
ServerSocket | createServerSocketTry(int;boolean) | 3 | 4
boolean | isLocalAddress(Socket) | 4 | 5
ServerSocket | closeSilently(ServerSocket) | 2 | 1
String | getLocalAddress() | 6 | 9

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 3
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00118 | MAJOR | QC-JAV000001[00118] Avoid declaring class instance within loop, performance impact
00122 | MAJOR | QC-JAV000001[00122] Avoid declaring class instance within loop, performance impact
00136 | MAJOR | QC-JAV000001[00136] Avoid declaring class instance within loop, performance impact
00136 | MAJOR | QC-JAVCWE390[00136] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00229 | MAJOR | QC-JAVCWE390[00229] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00256 | MAJOR | QC-JAVCWE390[00256] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\util\New.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.New

Module / class or interface : org.h2.util.New

#### File lecode\util\Permutations.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.Permutations

Module / class or interface : org.h2.util.Permutations

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Permutations | Permutations(T[];T[];int) | 3 | 10
void | moveIndex() | 5 | 11
int | rightmostDip() | 3 | 3
void | reverseAfter(int) | 1 | 7
boolean | next() | 3 | 6

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1

Line start | Criticity class | Rule
--- | --- | ---
00041 | CRITICAL | QC-JAVCWE476[00041] The argument in is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk

#### File lecode\util\Profiler.java 24 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.Profiler

Module / class or interface : org.h2.util.Profiler

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | premain(String;Instrumentation) | 1 | 1
Instrumentation | getInstrumentation() | 1 | 1
void | main(String) | 1 | 1
void | run(String) | 3 | 11
List<Object[]> | getRunnableStackTraces() | 4 | 6
List<Object[]> | readRunnableStackTraces(int) | 1 | 5
String | exec(String) | 2 | 10
void | copyInThread(InputStream;OutputStream) | 1 | 1
void | startCollecting() | 1 | 3
void | stopCollecting() | 2 | 2
void | run() | 1 | 2
void | tick() | 9 | 6
boolean | startsWithAny(String;String[]) | 3 | 1
int | increment(HashMap<String,Integer>;String;int) | 5 | 4
String | getTop(int) | 1 | 2
String | getTopTraces(int) | 2 | 10
void | appendTop(StringBuilder;HashMap<String,Integer>;int;int;boolean) | 7 | 7

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 2
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 4
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 18

Line start | Criticity class | Rule
--- | --- | ---
00033 | MAJOR | QC-JAVCWE493[00033] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00034 | MAJOR | QC-JAVCWE493[00034] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00035 | MAJOR | QC-JAVCWE493[00035] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00036 | MAJOR | QC-JAVCWE493[00036] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00133 | MAJOR | QC-JAV000001[00133] Avoid declaring class instance within loop, performance impact
00137 | MAJOR | QC-JAV000001[00137] Avoid declaring class instance within loop, performance impact
00152 | MAJOR | QC-JAV000001[00152] Avoid declaring class instance within loop, performance impact
00168 | MAJOR | QC-JAV000001[00168] Avoid declaring class instance within loop, performance impact
00168 | MAJOR | QC-JAV000001[00168] Avoid declaring class instance within loop, performance impact
00185 | MAJOR | QC-JAV000001[00185] Avoid declaring class instance within loop, performance impact
00250 | MAJOR | QC-JAVCWE390[00250] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00262 | MAJOR | QC-JAV000001[00262] Avoid declaring class instance within loop, performance impact
00276 | MAJOR | QC-JAVCWE390[00276] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00291 | MAJOR | QC-JAV000001[00291] Avoid declaring class instance within loop, performance impact
00293 | MAJOR | QC-JAV000001[00293] Avoid declaring class instance within loop, performance impact
00296 | MAJOR | QC-JAV000001[00296] Avoid declaring class instance within loop, performance impact
00316 | MAJOR | QC-JAV000001[00316] Avoid declaring class instance within loop, performance impact
00296 | MAJOR | QC-JAV000001[00296] Avoid declaring class instance within loop, performance impact
00316 | MAJOR | QC-JAV000001[00316] Avoid declaring class instance within loop, performance impact
00346 | MAJOR | QC-JAV000001[00346] Avoid declaring class instance within loop, performance impact
00347 | MAJOR | QC-JAV000001[00347] Avoid declaring class instance within loop, performance impact
00347 | MAJOR | QC-JAV000001[00347] Avoid declaring class instance within loop, performance impact
00389 | MAJOR | QC-JAV000001[00389] Avoid declaring class instance within loop, performance impact
00390 | MAJOR | QC-JAV000001[00390] Avoid declaring class instance within loop, performance impact

#### File lecode\util\ScriptReader.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.ScriptReader

Module / class or interface : org.h2.util.ScriptReader

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ScriptReader | ScriptReader(Reader) | 1 | 2
void | close() | 1 | 2
String | readStatement() | 2 | 3
String | readStatementLoop() | 4 | 3
void | startRemark(boolean) | 1 | 3
void | endRemark() | 1 | 2
void | clearRemark() | 2 | 1
int | read() | 2 | 2
int | readBuffer() | 5 | 14
boolean | isInsideRemark() | 1 | 1
boolean | isBlockRemark() | 1 | 1
void | setSkipRemarks(boolean) | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00154 | INFO | QC-JAV999996[00154] CPD de longueur 65 commencant en 566 (ligne 154) et 646 (ligne 174): { startRemark ( false ) ; while ( true ) { c = read ( ) ; if ( c _ 0 ) { clearRemark ( ) ; break ; } if ( ( c == '\\r' ) || ( c == ' n' ) ) { endRemark ( ) ; break ; } } c = read ( ) ; } break ; } case

#### File lecode\util\SmallLRUCache.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
LinkedHashMap<K,V> | org.h2.util.SmallLRUCache

Module / class or interface : org.h2.util.SmallLRUCache

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SmallLRUCache | SmallLRUCache(int) | 1 | 2
void | setMaxSize(int) | 1 | 1
boolean | removeEldestEntry(Map.Entry<K,V>) | 1 | 1

#### File lecode\util\SmallMap.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.SmallMap

Module / class or interface : org.h2.util.SmallMap

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SmallMap | SmallMap(int) | 1 | 1
int | addObject(int;Object) | 3 | 6
void | freeObject(int) | 2 | 3
Object | getObject(int;boolean) | 3 | 4

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00047 | MAJOR | QC-JAV000001[00047] Avoid declaring class instance within loop, performance impact

#### File lecode\util\SoftHashMap.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
AbstractMap<K,V> | org.h2.util.SoftHashMap

Module / class or interface : org.h2.util.SoftHashMap

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
SoftHashMap | SoftHashMap() | 1 | 1
void | processQueue() | 2 | 4
V | get(Object) | 2 | 4
V | put(K;V) | 1 | 3
V | remove(Object) | 1 | 3
void | clear() | 1 | 2
Set<Entry<K,V>> | entrySet() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 4

Line start | Criticity class | Rule
--- | --- | ---
00036 | MAJOR | QC-JAV000001[00036] Avoid declaring class instance within loop, performance impact
00040 | MAJOR | QC-JAV000001[00040] Avoid declaring class instance within loop, performance impact
00040 | MAJOR | QC-JAV000001[00040] Avoid declaring class instance within loop, performance impact
00041 | MAJOR | QC-JAV000001[00041] Avoid declaring class instance within loop, performance impact

#### File lecode\util\SortedProperties.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Properties | org.h2.util.SortedProperties

Module / class or interface : org.h2.util.SortedProperties

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Enumeration<Object> | keys() | 2 | 4
boolean | getBooleanProperty(Properties;String;boolean) | 1 | 4
int | getIntProperty(Properties;String;int) | 1 | 4
SortedProperties | loadProperties(String) | 2 | 3
void | store(String) | 3 | 11
String | toLines() | 2 | 3
SortedProperties | fromLines(String) | 3 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00123 | MAJOR | QC-JAV000001[00123] Avoid declaring class instance within loop, performance impact

#### File lecode\util\SourceCompiler.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.SourceCompiler

Module / class or interface : org.h2.util.SourceCompiler

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setSource(String;String) | 1 | 2
Class<?> | getClass(String) | 2 | 4
Method | getMethod(String) | 3 | 4
byte[] | javacCompile(String;String;String) | 6 | 17
void | javacProcess(File) | 1 | 1
int | exec(String) | 1 | 9
void | copyInThread(InputStream;OutputStream) | 1 | 1
void | javacSun(File) | 1 | 12
void | throwSyntaxError(String) | 4 | 2

#### File lecode\util\StatementBuilder.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.StatementBuilder

Module / class or interface : org.h2.util.StatementBuilder

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
StatementBuilder | StatementBuilder() | 1 | 0
StatementBuilder | StatementBuilder(String) | 1 | 1
StatementBuilder | append(String) | 1 | 2
StatementBuilder | append(char) | 1 | 2
StatementBuilder | append(long) | 1 | 2
StatementBuilder | resetCount() | 1 | 2
void | appendOnlyFirst(String) | 2 | 1
void | appendExceptFirst(String) | 2 | 1
String | toString() | 1 | 1
int | length() | 1 | 1

#### File lecode\util\StringUtils.java 5 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.StringUtils

Module / class or interface : org.h2.util.StringUtils

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
StringUtils | StringUtils() | 1 | 0
String[] | getCache() | 4 | 8
boolean | equals(String;String) | 2 | 2
String | toUpperEnglish(String) | 1 | 1
String | toLowerEnglish(String) | 1 | 1
boolean | startsWithIgnoreCase(String;String) | 2 | 2
String | quoteStringSQL(String) | 6 | 10
String | javaEncode(String) | 2 | 6
String | addAsterisk(String;int) | 2 | 2
DbException | getFormatException(String;int) | 1 | 1
String | javaDecode(String) | 4 | 6
String | quoteJavaString(String) | 2 | 2
byte[] | utf8Encode(String) | 1 | 2
String | utf8Decode(byte[]) | 1 | 2
String | utf8Decode(byte[];int;int) | 1 | 2
String | quoteJavaStringArray(String[]) | 3 | 5
String | quoteJavaIntArray(int[]) | 3 | 5
String | enclose(String) | 2 | 2
String | unEnclose(String) | 2 | 2
String | urlEncode(String) | 1 | 2
String | urlDecode(String) | 6 | 8
String[] | arraySplit(String;char;boolean) | 8 | 13
String | arrayCombine(String[];char) | 4 | 3
String | xmlAttr(String;String) | 1 | 1
String | xmlNode(String;String;String) | 1 | 1
String | xmlNode(String;String;String;boolean) | 3 | 4
String | indent(String) | 1 | 1
String | indent(String;int;boolean) | 4 | 9
String | xmlComment(String) | 3 | 5
String | xmlCData(String) | 2 | 4
String | xmlStartDoc() | 1 | 1
String | xmlText(String) | 1 | 1
String | xmlText(String;boolean) | 2 | 6
String | replaceAll(String;String;String) | 3 | 8
String | quoteIdentifier(String) | 3 | 8
boolean | isNullOrEmpty(String) | 1 | 1
String | quoteRemarkSQL(String) | 1 | 2
String | pad(String;int;String;boolean) | 10 | 14
char[] | cloneCharArray(char[]) | 3 | 6
String | trim(String;boolean;boolean;String) | 3 | 7
String | cache(String) | 7 | 9
String | fromCacheOrNew(String) | 8 | 11
void | clearCache() | 1 | 1
byte[] | convertHexToBytes(String) | 4 | 9
String | convertBytesToHex(byte[]) | 1 | 1
String | convertBytesToHex(byte[];int) | 2 | 8
boolean | isNumber(String) | 4 | 2
void | appendZeroPadded(StringBuilder;int;long) | 4 | 4

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 4
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00912 | INFO | QC-JAV999996[00912] CPD de longueur 62 commencant en 3842 (ligne 912) et 3970 (ligne 945): String s ) { if ( ! SysProperties . OBJECT_CACHE ) { return s ; } if ( s == null ) { return s ; } else if ( s . length ( ) == 0 ) { return "" ; } int hash = s . hashCode ( ) ; String [ ] cache = getCache ( ) ; if
00202 | MAJOR | QC-JAV000001[00202] Avoid declaring class instance within loop, performance impact
00287 | MAJOR | QC-JAV000001[00287] Avoid declaring class instance within loop, performance impact
00298 | MAJOR | QC-JAV000001[00298] Avoid declaring class instance within loop, performance impact
00509 | MAJOR | QC-JAV000001[00509] Avoid declaring class instance within loop, performance impact

#### File lecode\util\SynchronizedVerifier.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.SynchronizedVerifier

Module / class or interface : org.h2.util.SynchronizedVerifier

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setDetect(Class<?>;boolean) | 6 | 3
void | check(Object) | 2 | 1
void | detectConcurrentAccess(Object) | 4 | 4

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1

Line start | Criticity class | Rule
--- | --- | ---
00067 | MAJOR | QC-JAVCWE390[00067] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\util\Task.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.Task

Module / class or interface : org.h2.util.Task

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | call() | 1 | 1
void | run() | 1 | 2
Task | execute() | 1 | 1
Task | execute(String) | 1 | 4
Object | get() | 2 | 3
Exception | getException() | 3 | 5

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1

Line start | Criticity class | Rule
--- | --- | ---
00093 | MAJOR | QC-JAVCWE390[00093] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\util\TempFileDeleter.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.TempFileDeleter

Module / class or interface : org.h2.util.TempFileDeleter

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
TempFileDeleter | TempFileDeleter() | 1 | 0
TempFileDeleter | getInstance() | 1 | 1
Reference<?> | addFile(String;Object) | 1 | 5
void | deleteFile(Reference<?>;String) | 4 | 1
void | deleteAll() | 2 | 2
void | deleteUnused() | 2 | 2
void | stopAutoDelete(Reference<?>;String) | 3 | 3

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00072 | MAJOR | QC-JAVCWE390[00072] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00093 | MAJOR | QC-JAV000001[00093] Avoid declaring class instance within loop, performance impact

#### File lecode\util\Tool.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.Tool

Module / class or interface : org.h2.util.Tool

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | setOut(PrintStream) | 1 | 1
void | runTool(String) | 1 | 1
SQLException | showUsageAndThrowUnsupportedOption(String) | 1 | 2
SQLException | throwUnsupportedOption(String) | 1 | 1
void | printNoDatabaseFilesFound(String;String) | 4 | 7
void | showUsage() | 2 | 7
boolean | isOption(String;String) | 4 | 3

#### File lecode\util\Utils.java 13 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.util.Utils

Module / class or interface : org.h2.util.Utils

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Utils | Utils() | 1 | 0
int | readInt(byte[];int) | 1 | 1
void | writeLong(byte[];int;long) | 1 | 2
void | writeInt(byte[];int;int) | 1 | 4
long | readLong(byte[];int) | 1 | 1
int | indexOf(byte[];byte[];int) | 5 | 8
int | getByteArrayHash(byte[]) | 6 | 4
boolean | compareSecure(byte[];byte[]) | 5 | 9
int | compareNotNull(byte[];byte[]) | 4 | 7
byte[] | copy(byte[];byte[]) | 2 | 4
byte[] | cloneByteArray(byte[]) | 3 | 6
byte[] | serialize(Object) | 2 | 5
Object | deserialize(byte[]) | 4 | 4
int | hashCode(Object) | 1 | 1
int | getMemoryUsed() | 1 | 4
int | getMemoryFree() | 1 | 4
long | getMemoryMax() | 1 | 2
void | collectGarbage() | 3 | 3
byte[] | newBytes(int) | 2 | 4
int[] | newIntArray(int) | 2 | 2
long[] | newLongArray(int) | 2 | 2
boolean | haveCommonComparableSuperclass(Class<?>;Class<?>) | 4 | 10
Class<?> | loadUserClass(String) | 6 | 12
byte[] | getResource(String) | 2 | 4
byte[] | loadResource(String) | 3 | 7
Object | callStaticMethod(String;Object) | 1 | 4
Object | callMethod(Object;String;Object) | 1 | 1
Object | callMethod(Object;Class<?>;String;Object) | 4 | 5
Object | newInstance(String;Object) | 4 | 5
int | match(Class<?>[];Object[]) | 3 | 4
Object | getStaticField(String) | 1 | 4
Object | getField(Object;String) | 1 | 1
boolean | isClassPresent(String) | 1 | 3
Class<?> | getNonPrimitiveClass(Class<?>) | 13 | 3
String | getProperty(String;String) | 1 | 2
int | getProperty(String;int) | 2 | 2
boolean | getProperty(String;boolean) | 2 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 2
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 6
MINOR | QC-JAVCWE500 | Static public field not marked final | 1
MINOR | QC-JAVCWE582 | Array declared public, final and static | 2

Line start | Criticity class | Rule
--- | --- | ---
00037 | MAJOR | QC-JAVCWE493[00037] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00037 | MINOR | QC-JAVCWE500[00037] Static public field not marked final (see http://cwe.mitre.org/data/definitions/500.html)
00042 | MINOR | QC-JAVCWE582[00042] Array declared public, final and static (see http://cwe.mitre.org/data/definitions/582.html)
00047 | MINOR | QC-JAVCWE582[00047] Array declared public, final and static (see http://cwe.mitre.org/data/definitions/582.html)
00550 | MAJOR | QC-JAV000001[00550] Avoid declaring class instance within loop, performance impact
00554 | MAJOR | QC-JAV000001[00554] Avoid declaring class instance within loop, performance impact
00559 | MAJOR | QC-JAV000001[00559] Avoid declaring class instance within loop, performance impact
00656 | CRITICAL | QC-JAVCWE476[00656] The argument params is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk
00661 | MAJOR | QC-JAV000001[00661] Avoid declaring class instance within loop, performance impact
00662 | MAJOR | QC-JAV000001[00662] Avoid declaring class instance within loop, performance impact
00663 | MAJOR | QC-JAV000001[00663] Avoid declaring class instance within loop, performance impact
00777 | MAJOR | QC-JAVCWE390[00777] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)
00797 | MAJOR | QC-JAVCWE390[00797] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\util\ValueHashMap.java 5 rule violations (XML file)

Ancestor class | Children classes
--- | ---
HashBase | org.h2.util.ValueHashMap

Module / class or interface : org.h2.util.ValueHashMap

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | reset(int) | 1 | 3
void | rehash(int) | 3 | 7
int | getIndex(Value) | 1 | 1
void | put(Value;V) | 7 | 8
void | remove(Value) | 7 | 6
V | get(Value) | 6 | 6
ArrayList<Value> | keys() | 3 | 2
ArrayList<V> | values() | 3 | 6

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 5

Line start | Criticity class | Rule
--- | --- | ---
00046 | MAJOR | QC-JAV000001[00046] Avoid declaring class instance within loop, performance impact
00069 | MAJOR | QC-JAV000001[00069] Avoid declaring class instance within loop, performance impact
00106 | MAJOR | QC-JAV000001[00106] Avoid declaring class instance within loop, performance impact
00136 | MAJOR | QC-JAV000001[00136] Avoid declaring class instance within loop, performance impact
00175 | MAJOR | QC-JAV000001[00175] Avoid declaring class instance within loop, performance impact

#### File lecode\value\CaseInsensitiveMap.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
HashMap<String,V> | org.h2.value.CaseInsensitiveMap

Module / class or interface : org.h2.value.CaseInsensitiveMap

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
V | get(Object) | 1 | 1
V | put(String;V) | 1 | 1
boolean | containsKey(Object) | 1 | 1
V | remove(Object) | 1 | 1
String | toUpper(Object) | 1 | 1

#### File lecode\value\CompareMode.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.value.CompareMode

Module / class or interface : org.h2.value.CompareMode

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CompareMode | CompareMode(String;int) | 1 | 2
CompareMode | getInstance(String;int) | 11 | 3
boolean | equalsChars(String;int;String;int;boolean) | 2 | 5
int | compareString(String;String;boolean) | 2 | 2
String | getName(Locale) | 1 | 4
boolean | compareLocaleNames(Locale;String) | 1 | 1
Collator | getCollator(String) | 11 | 6
String | getName() | 1 | 1
int | getStrength() | 1 | 1

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE390 | Detection of error condition without action | 1

Line start | Criticity class | Rule
--- | --- | ---
00046 | MAJOR | QC-JAVCWE390[00046] Detection of error condition without action (see http://cwe.mitre.org/data/definitions/390.html)

#### File lecode\value\CompareModeDefault.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
CompareMode | org.h2.value.CompareModeDefault

Module / class or interface : org.h2.value.CompareModeDefault

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CompareModeDefault | CompareModeDefault(String;int) | 4 | 7
int | compareString(String;String;boolean) | 4 | 8
boolean | equalsChars(String;int;String;int;boolean) | 1 | 1
CollationKey | getKey(String) | 2 | 2

#### File lecode\value\CompareModeIcu4J.java 1 rule violations (XML file)

Ancestor class | Children classes
--- | ---
CompareMode | org.h2.value.CompareModeIcu4J

Module / class or interface : org.h2.value.CompareModeIcu4J

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
CompareModeIcu4J | CompareModeIcu4J(String;int) | 1 | 2
int | compareString(String;String;boolean) | 2 | 3
boolean | equalsChars(String;int;String;int;boolean) | 1 | 1
Comparator<String> | getIcu4jCollator(String;int) | 6 | 6

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 1

Line start | Criticity class | Rule
--- | --- | ---
00066 | MAJOR | QC-JAV000001[00066] Avoid declaring class instance within loop, performance impact

#### File lecode\value\DataType.java 24 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.value.DataType

Module / class or interface : org.h2.value.DataType

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
void | add(int;int;String;DataType;String[];int) | 4 | 25
DataType | createDecimal(int;int;int;int;boolean;boolean) | 2 | 11
DataType | createDate(int;String;int;int) | 1 | 10
DataType | createString(boolean) | 1 | 10
DataType | createLob() | 1 | 4
ArrayList<DataType> | getTypes() | 1 | 1
Value | readValue(SessionInterface;ResultSet;int;int) | 23 | 3
String | getTypeClassName(int) | 24 | 21
DataType | getDataType(int) | 3 | 4
int | convertTypeToSQLType(int) | 1 | 1
int | convertSQLTypeToValueType(int) | 32 | 21
int | getTypeFromClass(Class<?>) | 15 | 4
Value | convertToValue(SessionInterface;Object;int) | 15 | 4
DataType | getTypeByName(String) | 1 | 1
boolean | isLargeObject(int) | 2 | 2
boolean | isStringType(int) | 2 | 2
boolean | supportsAdd(int) | 8 | 2
int | getAddProofType(int) | 6 | 6
Object | getDefaultForPrimitiveType(Class<?>) | 13 | 3
Object | convertTo(JdbcConnection;Value;Class<?>) | 6 | 4

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAVCWE493 | Critical public variable without final modifier | 21
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3

Line start | Criticity class | Rule
--- | --- | ---
00086 | MAJOR | QC-JAVCWE493[00086] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00091 | MAJOR | QC-JAVCWE493[00091] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00096 | MAJOR | QC-JAVCWE493[00096] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00101 | MAJOR | QC-JAVCWE493[00101] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00107 | MAJOR | QC-JAVCWE493[00107] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00112 | MAJOR | QC-JAVCWE493[00112] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00117 | MAJOR | QC-JAVCWE493[00117] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00122 | MAJOR | QC-JAVCWE493[00122] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00127 | MAJOR | QC-JAVCWE493[00127] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00132 | MAJOR | QC-JAVCWE493[00132] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00137 | MAJOR | QC-JAVCWE493[00137] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00142 | MAJOR | QC-JAVCWE493[00142] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00147 | MAJOR | QC-JAVCWE493[00147] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00152 | MAJOR | QC-JAVCWE493[00152] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00157 | MAJOR | QC-JAVCWE493[00157] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00162 | MAJOR | QC-JAVCWE493[00162] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00167 | MAJOR | QC-JAVCWE493[00167] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00172 | MAJOR | QC-JAVCWE493[00172] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00177 | MAJOR | QC-JAVCWE493[00177] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00182 | MAJOR | QC-JAVCWE493[00182] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00187 | MAJOR | QC-JAVCWE493[00187] Critical public variable without final modifier (see http://cwe.mitre.org/data/definitions/493.html)
00358 | MAJOR | QC-JAV000001[00358] Avoid declaring class instance within loop, performance impact
00368 | MAJOR | QC-JAV000001[00368] Avoid declaring class instance within loop, performance impact
00389 | MAJOR | QC-JAV000001[00389] Avoid declaring class instance within loop, performance impact

#### File lecode\value\Transfer.java 5 rule violations (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.value.Transfer

Module / class or interface : org.h2.value.Transfer

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
Transfer | Transfer(SessionInterface) | 1 | 1
void | setSocket(Socket) | 1 | 1
void | init() | 2 | 2
void | flush() | 1 | 1
Transfer | writeBoolean(boolean) | 1 | 2
boolean | readBoolean() | 1 | 1
Transfer | writeByte(byte) | 1 | 2
byte | readByte() | 1 | 1
Transfer | writeInt(int) | 1 | 2
int | readInt() | 1 | 1
Transfer | writeLong(long) | 1 | 2
long | readLong() | 1 | 1
Transfer | writeDouble(double) | 1 | 2
Transfer | writeFloat(float) | 1 | 2
double | readDouble() | 1 | 1
float | readFloat() | 1 | 1
Transfer | writeString(String) | 4 | 4
String | readString() | 3 | 9
Transfer | writeBytes(byte[]) | 3 | 4
Transfer | writeBytes(byte[];int;int) | 1 | 2
byte[] | readBytes() | 2 | 5
void | readBytes(byte[];int;int) | 1 | 1
void | close() | 2 | 0
void | writeValue(Value) | 31 | 35
Value | readValue() | 29 | 19
Socket | getSocket() | 1 | 1
void | setSession(SessionInterface) | 1 | 1
void | setSSL(boolean) | 1 | 1
Transfer | openNewConnection() | 1 | 7
void | setVersion(int) | 1 | 1
boolean | isClosed() | 1 | 1
void | verifyLobMac(byte[];long) | 2 | 2
byte[] | calculateLobMac(long) | 2 | 5

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 3
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 2

Line start | Criticity class | Rule
--- | --- | ---
00412 | INFO | QC-JAV999996[00412] CPD de longueur 130 commencant en 1559 (ligne 412) et 1752 (ligne 440): version _= Constants . TCP_PROTOCOL_VERSION_11 ) { if ( v instanceof ValueLobDb ) { ValueLobDb lob = ( ValueLobDb ) v ; if ( lob . isStored ( ) ) { writeLong ( - 1 ) ; writeInt ( lob . getTableId ( ) ) ; writeLong ( lob . getLobId ( ) ) ; if ( version _= Constants . TCP_PROTOCOL_VERSION_12 ) { writeBytes ( calculateLobMac ( lob . getLobId ( ) ) ) ; } writeLong ( lob . getPrecision ( ) ) ; break ; } } } long length = v . getPrecision ( ) ; if ( length _ 0 ) { throw DbException . get ( ErrorCode . CONNECTION_BROKEN_1 , ( "length = " + length ) ) ; } writeLong ( length ) ; long
00579 | INFO | QC-JAV999996[00579] CPD de longueur 83 commencant en 2743 (ligne 579) et 2986 (ligne 610): long length = readLong ( ) ; if ( version _= Constants . TCP_PROTOCOL_VERSION_11 ) { if ( length == ( - 1 ) ) { int tableId = readInt ( ) ; long id = readLong ( ) ; byte [ ] hmac ; if ( version _= Constants . TCP_PROTOCOL_VERSION_12 ) { hmac = readBytes ( ) ; } else { hmac = null ; } long precision = readLong ( ) ; return ValueLobDb . create ( Value . BLOB
00498 | MAJOR | QC-JAV000001[00498] Avoid declaring class instance within loop, performance impact
00498 | MAJOR | QC-JAV000001[00498] Avoid declaring class instance within loop, performance impact
00665 | MAJOR | QC-JAV000001[00665] Avoid declaring class instance within loop, performance impact

#### File lecode\value\Value.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
java.lang.Object | org.h2.value.Value

Module / class or interface : org.h2.value.Value

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
String | getSQL() | 1 | 1
int | getType() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
int | getMemory() | 1 | 1
String | getString() | 1 | 1
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 1
int | hashCode() | 1 | 1
boolean | equals(Object) | 1 | 1
int | getOrder(int) | 24 | 24
int | getHigherOrder(int;int) | 7 | 4
Value | cache(Value) | 5 | 6
void | clearCache() | 1 | 1
Boolean | getBoolean() | 1 | 1
Date | getDate() | 1 | 1
Time | getTime() | 1 | 1
Timestamp | getTimestamp() | 1 | 1
byte[] | getBytes() | 1 | 1
byte[] | getBytesNoCopy() | 1 | 1
byte | getByte() | 1 | 1
short | getShort() | 1 | 1
BigDecimal | getBigDecimal() | 1 | 1
double | getDouble() | 1 | 1
float | getFloat() | 1 | 1
int | getInt() | 1 | 1
long | getLong() | 1 | 1
InputStream | getInputStream() | 1 | 1
Reader | getReader() | 1 | 1
Value | add(Value) | 1 | 1
int | getSignum() | 1 | 1
Value | negate() | 1 | 1
Value | subtract(Value) | 1 | 1
Value | divide(Value) | 1 | 1
Value | multiply(Value) | 1 | 1
Value | modulus(Value) | 1 | 1
Value | convertTo(int) | 39 | 3
int | compareTypeSave(Value;CompareMode) | 6 | 3
int | compareTo(Value;CompareMode) | 6 | 6
int | getScale() | 1 | 1
Value | convertScale(boolean;int) | 1 | 1
Value | convertPrecision(long;boolean) | 1 | 1
byte | convertToByte(long) | 2 | 2
short | convertToShort(long) | 2 | 2
int | convertToInt(long) | 2 | 2
long | convertToLong(double) | 2 | 2
long | convertToLong(BigDecimal) | 2 | 2
Value | link(DataHandler;int) | 1 | 1
boolean | isLinked() | 1 | 1
void | unlink() | 1 | 0
void | close() | 1 | 0
boolean | checkPrecision(long) | 1 | 1
String | getTraceSQL() | 1 | 1
String | toString() | 1 | 1
DbException | throwUnsupportedExceptionForType(String) | 1 | 1
int | getTableId() | 1 | 1
byte[] | getSmall() | 1 | 1
Value | copyToTemp() | 1 | 1
ResultSet | getResultSet() | 1 | 4

#### File lecode\value\ValueArray.java 2 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueArray

Module / class or interface : org.h2.value.ValueArray

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueArray | ValueArray(Class<?>;Value[]) | 1 | 2
ValueArray | ValueArray(Value[]) | 1 | 1
ValueArray | get(Value[]) | 1 | 1
ValueArray | get(Class<?>;Value[]) | 1 | 1
int | hashCode() | 3 | 5
Value[] | getList() | 1 | 1
int | getType() | 1 | 1
Class<?> | getComponentType() | 1 | 1
long | getPrecision() | 2 | 3
String | getString() | 2 | 4
int | compareSecure(Value;CompareMode) | 4 | 11
Object | getObject() | 2 | 6
void | set(PreparedStatement;int) | 1 | 1
String | getSQL() | 3 | 5
String | getTraceSQL() | 2 | 4
int | getDisplaySize() | 2 | 3
boolean | equals(Object) | 6 | 8
int | getMemory() | 2 | 3
Value | convertPrecision(long;boolean) | 4 | 8

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 2

Line start | Criticity class | Rule
--- | --- | ---
00108 | MAJOR | QC-JAV000001[00108] Avoid declaring class instance within loop, performance impact
00109 | MAJOR | QC-JAV000001[00109] Avoid declaring class instance within loop, performance impact

#### File lecode\value\ValueBoolean.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueBoolean

Module / class or interface : org.h2.value.ValueBoolean

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueBoolean | ValueBoolean(boolean) | 1 | 1
int | getType() | 1 | 1
String | getSQL() | 1 | 1
String | getString() | 1 | 1
Value | negate() | 1 | 1
Boolean | getBoolean() | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 3
long | getPrecision() | 1 | 1
int | hashCode() | 1 | 1
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
ValueBoolean | get(boolean) | 1 | 1
int | getDisplaySize() | 1 | 1
boolean | equals(Object) | 1 | 1

#### File lecode\value\ValueByte.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueByte

Module / class or interface : org.h2.value.ValueByte

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueByte | ValueByte(byte) | 1 | 1
Value | add(Value) | 1 | 2
ValueByte | checkRange(int) | 2 | 2
int | getSignum() | 1 | 1
Value | negate() | 1 | 1
Value | subtract(Value) | 1 | 2
Value | multiply(Value) | 1 | 2
Value | divide(Value) | 2 | 3
Value | modulus(Value) | 2 | 3
String | getSQL() | 1 | 1
int | getType() | 1 | 1
byte | getByte() | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 2
String | getString() | 1 | 1
long | getPrecision() | 1 | 1
int | hashCode() | 1 | 1
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
ValueByte | get(byte) | 1 | 1
int | getDisplaySize() | 1 | 1
boolean | equals(Object) | 1 | 1

#### File lecode\value\ValueBytes.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueBytes

Module / class or interface : org.h2.value.ValueBytes

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueBytes | ValueBytes(byte[]) | 1 | 1
ValueBytes | get(byte[]) | 2 | 3
ValueBytes | getNoCopy(byte[]) | 3 | 4
int | getType() | 1 | 1
String | getSQL() | 1 | 1
byte[] | getBytesNoCopy() | 1 | 1
byte[] | getBytes() | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 2
String | getString() | 1 | 1
long | getPrecision() | 1 | 1
int | hashCode() | 2 | 2
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
int | getDisplaySize() | 1 | 1
int | getMemory() | 1 | 1
boolean | equals(Object) | 1 | 1
Value | convertPrecision(long;boolean) | 2 | 5

#### File lecode\value\ValueDate.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueDate

Module / class or interface : org.h2.value.ValueDate

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueDate | ValueDate(long) | 1 | 1
ValueDate | fromDateValue(long) | 1 | 1
ValueDate | get(Date) | 1 | 1
ValueDate | parse(String) | 1 | 2
long | getDateValue() | 1 | 1
Date | getDate() | 1 | 1
int | getType() | 1 | 1
String | getString() | 1 | 3
String | getSQL() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 1
boolean | equals(Object) | 2 | 2
int | hashCode() | 1 | 1
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
void | appendDate(StringBuilder;long) | 3 | 9

#### File lecode\value\ValueDecimal.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueDecimal

Module / class or interface : org.h2.value.ValueDecimal

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueDecimal | ValueDecimal(BigDecimal) | 4 | 3
Value | add(Value) | 1 | 2
Value | subtract(Value) | 1 | 2
Value | negate() | 1 | 1
Value | multiply(Value) | 1 | 2
Value | divide(Value) | 6 | 5
ValueDecimal | modulus(Value) | 2 | 4
String | getSQL() | 1 | 1
int | getType() | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 2
int | getSignum() | 1 | 1
BigDecimal | getBigDecimal() | 1 | 1
String | getString() | 4 | 2
long | getPrecision() | 2 | 2
boolean | checkPrecision(long) | 2 | 2
int | getScale() | 1 | 1
int | hashCode() | 1 | 1
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
Value | convertScale(boolean;int) | 4 | 3
Value | convertPrecision(long;boolean) | 3 | 3
ValueDecimal | get(BigDecimal) | 4 | 3
int | getDisplaySize() | 1 | 1
boolean | equals(Object) | 1 | 1
int | getMemory() | 1 | 1

#### File lecode\value\ValueDouble.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueDouble

Module / class or interface : org.h2.value.ValueDouble

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueDouble | ValueDouble(double) | 1 | 1
Value | add(Value) | 1 | 2
Value | subtract(Value) | 1 | 2
Value | negate() | 1 | 1
Value | multiply(Value) | 1 | 2
Value | divide(Value) | 2 | 3
ValueDouble | modulus(Value) | 2 | 3
String | getSQL() | 7 | 5
int | getType() | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 2
int | getSignum() | 1 | 1
double | getDouble() | 1 | 1
String | getString() | 1 | 1
long | getPrecision() | 1 | 1
int | getScale() | 1 | 1
int | hashCode() | 1 | 2
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
ValueDouble | get(double) | 7 | 2
int | getDisplaySize() | 1 | 1
boolean | equals(Object) | 2 | 2

#### File lecode\value\ValueFloat.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueFloat

Module / class or interface : org.h2.value.ValueFloat

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueFloat | ValueFloat(float) | 1 | 1
Value | add(Value) | 1 | 2
Value | subtract(Value) | 1 | 2
Value | negate() | 1 | 1
Value | multiply(Value) | 1 | 2
Value | divide(Value) | 2 | 3
Value | modulus(Value) | 2 | 3
String | getSQL() | 7 | 5
int | getType() | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 2
int | getSignum() | 1 | 1
float | getFloat() | 1 | 1
String | getString() | 1 | 1
long | getPrecision() | 1 | 1
int | getScale() | 1 | 1
int | hashCode() | 1 | 2
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
ValueFloat | get(float) | 5 | 2
int | getDisplaySize() | 1 | 1
boolean | equals(Object) | 2 | 2

#### File lecode\value\ValueInt.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueInt

Module / class or interface : org.h2.value.ValueInt

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueInt | ValueInt(int) | 1 | 1
ValueInt | get(int) | 3 | 5
Value | add(Value) | 1 | 2
ValueInt | checkRange(long) | 2 | 2
int | getSignum() | 1 | 1
Value | negate() | 1 | 1
Value | subtract(Value) | 1 | 2
Value | multiply(Value) | 1 | 2
Value | divide(Value) | 2 | 3
Value | modulus(Value) | 2 | 3
String | getSQL() | 1 | 1
int | getType() | 1 | 1
int | getInt() | 1 | 1
long | getLong() | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 2
String | getString() | 1 | 1
long | getPrecision() | 1 | 1
int | hashCode() | 1 | 1
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
int | getDisplaySize() | 1 | 1
boolean | equals(Object) | 1 | 1

#### File lecode\value\ValueJavaObject.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
ValueBytes | org.h2.value.ValueJavaObject

Module / class or interface : org.h2.value.ValueJavaObject

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueJavaObject | ValueJavaObject(byte[]) | 1 | 1
ValueJavaObject | getNoCopy(Object;byte[]) | 6 | 6
int | getType() | 1 | 1
void | set(PreparedStatement;int) | 1 | 2

#### File lecode\value\ValueLob.java 9 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueLob

Module / class or interface : org.h2.value.ValueLob

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueLob | ValueLob(int;DataHandler;String;int;int;boolean;long;boolean) | 1 | 8
ValueLob | ValueLob(int;byte[]) | 4 | 2
ValueLob | copy(ValueLob) | 1 | 4
ValueLob | createSmallLob(int;byte[]) | 1 | 1
String | getFileName(DataHandler;int;int) | 2 | 3
ValueLob | open(int;DataHandler;int;int;long;boolean) | 1 | 2
ValueLob | createClob(Reader;long;DataHandler) | 6 | 8
int | getBufferSize(DataHandler;boolean;long) | 5 | 10
void | createFromReader(char[];int;Reader;long;DataHandler) | 1 | 3
String | getFileNamePrefix(String;int) | 3 | 10
int | getNewObjectId(DataHandler) | 7 | 10
void | resetDirCounter() | 1 | 1
void | invalidateFileList(DataHandler;String) | 2 | 1
String[] | getFileList(DataHandler;String) | 3 | 4
ValueLob | createBlob(InputStream;long;DataHandler) | 6 | 8
FileStoreOutputStream | initLarge(DataHandler) | 2 | 15
void | createFromStream(byte[];int;InputStream;long;DataHandler) | 1 | 3
Value | convertTo(int) | 6 | 4
boolean | isLinked() | 1 | 1
String | getFileName() | 1 | 1
void | close() | 3 | 1
void | unlink() | 2 | 1
Value | link(DataHandler;int) | 5 | 16
int | getTableId() | 1 | 1
int | getObjectId() | 1 | 1
int | getType() | 1 | 1
long | getPrecision() | 1 | 1
String | getString() | 4 | 4
byte[] | getBytes() | 2 | 3
byte[] | getBytesNoCopy() | 3 | 4
int | hashCode() | 5 | 1
int | compareSecure(Value;CompareMode) | 2 | 3
Object | getObject() | 2 | 2
Reader | getReader() | 1 | 1
InputStream | getInputStream() | 2 | 4
void | set(PreparedStatement;int) | 4 | 4
String | getSQL() | 2 | 6
String | getTraceSQL() | 4 | 6
byte[] | getSmall() | 1 | 1
int | getDisplaySize() | 1 | 1
boolean | equals(Object) | 1 | 1
void | convertToFileIfRequired(DataHandler) | 5 | 4
void | removeAllForTable(DataHandler;int) | 1 | 2
void | removeAllForTable(DataHandler;String;int) | 4 | 0
boolean | useCompression() | 1 | 1
void | deleteFile(DataHandler;String) | 1 | 1
void | renameFile(DataHandler;String;String) | 1 | 1
void | copyFileTo(DataHandler;String;String) | 1 | 1
void | setFileName(String;boolean) | 1 | 2
int | getMemory() | 2 | 2
ValueLob | copyToTemp() | 3 | 4
Value | convertPrecision(long;boolean) | 4 | 5

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
CRITICAL | QC-JAVCWE476 | Null pointer reference | 1
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 7
INFO | QC-JAV999996 | Local Cut and Paste Detector in single file | 1

Line start | Criticity class | Rule
--- | --- | ---
00245 | INFO | QC-JAV999996[00245] CPD de longueur 53 commencant en 1371 (ligne 245) et 2238 (ligne 389): = h . getDatabasePath ( ) ; if ( ( path != null ) __ ( path . length ( ) == 0 ) ) { path = ( new File ( Utils . getProperty ( "java . io . tmpdir" , " . " ) , SysProperties . PREFIX_TEMP_FILE ) . getAbsolutePath ( ) ) ; } int
00090 | CRITICAL | QC-JAVCWE476[00090] The argument lob is a class instance but is not tested towards null, but referenced in attribute invocation in the method body, NPE potential risk
00252 | MAJOR | QC-JAV000001[00252] Avoid declaring class instance within loop, performance impact
00253 | MAJOR | QC-JAV000001[00253] Avoid declaring class instance within loop, performance impact
00256 | MAJOR | QC-JAV000001[00256] Avoid declaring class instance within loop, performance impact
00259 | MAJOR | QC-JAV000001[00259] Avoid declaring class instance within loop, performance impact
00263 | MAJOR | QC-JAV000001[00263] Avoid declaring class instance within loop, performance impact
00259 | MAJOR | QC-JAV000001[00259] Avoid declaring class instance within loop, performance impact
00263 | MAJOR | QC-JAV000001[00263] Avoid declaring class instance within loop, performance impact

#### File lecode\value\ValueLobDb.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
ValueValue.ValueClob | org.h2.value.ValueLobDb

Module / class or interface : org.h2.value.ValueLobDb

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueLobDb | ValueLobDb(int;LobStorage;int;long;byte[];long) | 1 | 6
ValueLobDb | ValueLobDb(int;byte[];long) | 1 | 5
ValueLobDb | create(int;LobStorage;int;long;byte[];long) | 1 | 1
ValueLobDb | createSmallLob(int;byte[];long) | 1 | 1
Value | convertTo(int) | 8 | 2
boolean | isLinked() | 1 | 1
boolean | isStored() | 1 | 1
void | close() | 4 | 2
void | unlink() | 2 | 2
Value | link(DataHandler;int) | 8 | 4
int | getTableId() | 1 | 1
int | getType() | 1 | 1
long | getPrecision() | 1 | 1
String | getString() | 4 | 4
byte[] | getBytes() | 2 | 3
byte[] | getBytesNoCopy() | 3 | 4
int | hashCode() | 5 | 1
int | compareSecure(Value;CompareMode) | 5 | 4
Object | getObject() | 2 | 2
Reader | getReader() | 1 | 1
InputStream | getInputStream() | 4 | 7
void | set(PreparedStatement;int) | 4 | 4
String | getSQL() | 2 | 6
String | getTraceSQL() | 4 | 6
byte[] | getSmall() | 1 | 1
int | getDisplaySize() | 1 | 1
boolean | equals(Object) | 1 | 1
int | getMemory() | 2 | 2
ValueLobDb | copyToTemp() | 1 | 1
long | getLobId() | 1 | 1
void | setPrecision(long) | 1 | 1
String | toString() | 1 | 1
ValueLobDb | createTempClob(Reader;long;DataHandler) | 5 | 8
ValueLobDb | createTempBlob(InputStream;long;DataHandler) | 5 | 8
void | createTempFromReader(char[];int;Reader;long;DataHandler) | 1 | 2
void | createTempFromStream(byte[];int;InputStream;long;DataHandler) | 1 | 3
FileStoreOutputStream | initTemp(DataHandler) | 2 | 11
int | getBufferSize(DataHandler;boolean;long) | 5 | 10
Value | convertPrecision(long;boolean) | 4 | 5

#### File lecode\value\ValueLong.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueLong

Module / class or interface : org.h2.value.ValueLong

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueLong | ValueLong(long) | 1 | 1
Value | add(Value) | 2 | 7
int | getSignum() | 1 | 1
Value | negate() | 2 | 2
DbException | getOverflow() | 1 | 1
Value | subtract(Value) | 2 | 5
boolean | isInteger(long) | 1 | 1
Value | multiply(Value) | 4 | 9
Value | divide(Value) | 2 | 3
Value | modulus(Value) | 2 | 3
String | getSQL() | 1 | 1
int | getType() | 1 | 1
long | getLong() | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 2
String | getString() | 1 | 1
long | getPrecision() | 1 | 1
int | hashCode() | 1 | 1
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
ValueLong | get(long) | 2 | 2
int | getDisplaySize() | 1 | 1
boolean | equals(Object) | 1 | 1

#### File lecode\value\ValueNull.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueNull

Module / class or interface : org.h2.value.ValueNull

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueNull | ValueNull() | 1 | 0
String | getSQL() | 1 | 1
int | getType() | 1 | 1
String | getString() | 1 | 1
Boolean | getBoolean() | 1 | 1
Date | getDate() | 1 | 1
Time | getTime() | 1 | 1
Timestamp | getTimestamp() | 1 | 1
byte[] | getBytes() | 1 | 1
byte | getByte() | 1 | 1
short | getShort() | 1 | 1
BigDecimal | getBigDecimal() | 1 | 1
double | getDouble() | 1 | 1
float | getFloat() | 1 | 1
int | getInt() | 1 | 1
long | getLong() | 1 | 1
InputStream | getInputStream() | 1 | 1
Reader | getReader() | 1 | 1
Value | convertTo(int) | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 1
long | getPrecision() | 1 | 1
int | hashCode() | 1 | 1
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
int | getDisplaySize() | 1 | 1
boolean | equals(Object) | 1 | 1

#### File lecode\value\ValueResultSet.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueResultSet

Module / class or interface : org.h2.value.ValueResultSet

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueResultSet | ValueResultSet(ResultSet) | 1 | 1
ValueResultSet | get(ResultSet) | 1 | 2
ValueResultSet | getCopy(ResultSet;int) | 3 | 7
int | getType() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
String | getString() | 2 | 7
int | compareSecure(Value;CompareMode) | 1 | 1
boolean | equals(Object) | 1 | 1
int | hashCode() | 1 | 1
Object | getObject() | 1 | 1
ResultSet | getResultSet() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
String | getSQL() | 1 | 1
Value | convertPrecision(long;boolean) | 2 | 2

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
MAJOR | QC-JAV000001 | Instance is created within a loop, huge performance impact | 4

Line start | Criticity class | Rule
--- | --- | ---
00057 | MAJOR | QC-JAV000001[00057] Avoid declaring class instance within loop, performance impact
00064 | MAJOR | QC-JAV000001[00064] Avoid declaring class instance within loop, performance impact
00104 | MAJOR | QC-JAV000001[00104] Avoid declaring class instance within loop, performance impact
00104 | MAJOR | QC-JAV000001[00104] Avoid declaring class instance within loop, performance impact

#### File lecode\value\ValueShort.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueShort

Module / class or interface : org.h2.value.ValueShort

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueShort | ValueShort(short) | 1 | 1
Value | add(Value) | 1 | 2
ValueShort | checkRange(int) | 2 | 2
int | getSignum() | 1 | 1
Value | negate() | 1 | 1
Value | subtract(Value) | 1 | 2
Value | multiply(Value) | 1 | 2
Value | divide(Value) | 2 | 3
Value | modulus(Value) | 2 | 3
String | getSQL() | 1 | 1
int | getType() | 1 | 1
short | getShort() | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 2
String | getString() | 1 | 1
long | getPrecision() | 1 | 1
int | hashCode() | 1 | 1
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
ValueShort | get(short) | 1 | 1
int | getDisplaySize() | 1 | 1
boolean | equals(Object) | 1 | 1

#### File lecode\value\ValueString.java 4 rule violations (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueString

Module / class or interface : org.h2.value.ValueString

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueString | ValueString(String) | 1 | 1
String | getSQL() | 1 | 1
boolean | equals(Object) | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 2
String | getString() | 1 | 1
long | getPrecision() | 1 | 1
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
int | getDisplaySize() | 1 | 1
int | getMemory() | 1 | 1
Value | convertPrecision(long;boolean) | 2 | 3
int | hashCode() | 1 | 1
int | getType() | 1 | 1
ValueString | get(String) | 3 | 4
ValueString | getNew(String) | 1 | 1

Security risk sequences

Seq | Step | Source / Method / Target | Risk nature
--- | --- | --- | ---
No 1 |  |  |
| 3 | org.h2.value.ValueString.ValueString1\---dummymethode\------org.h2.value.ValueString.ValueString.value |
| 2 | org.h2.value.ValueString.ValueString.value\---dummymethode\------org.h2.value.ValueString.value |
| 1 | org.h2.value.ValueString.value\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString2 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL
No 2 |  |  |
| 2 | org.h2.value.ValueString.set2\---dummymethode\------org.h2.value.ValueString.set.parameterIndex |
| 1 | org.h2.value.ValueString.set.parameterIndex\---java.sql.PreparedStatement.setString\------java.sql.PreparedStatement.setString1 | //QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString)
|  |  | Security risk level : CRITICAL

Criticity class | Rule | Description | Nb of violations
--- | --- | --- | ---
BLOCKER | QC-JAVCWE089 | Potential SQL Injection | 4

Line start | Criticity class | Rule
--- | --- | ---
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.value.ValueString.ValueString1 dummymethode org.h2.value.ValueString.ValueString.value org.h2.value.ValueString.ValueString.value dummymethode org.h2.value.ValueString.value//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.value.ValueString.value java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.value.ValueString.value java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString2 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.value.ValueString.set2 dummymethode org.h2.value.ValueString.set.parameterIndex//QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.value.ValueString.set.parameterIndex java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString1 Security risk level : CRITICAL
00001 | BLOCKER | QC-JAVCWE089[00001] target data SQLtainted(java.sql.PreparedStatement.setString) org.h2.value.ValueString.set.parameterIndex java.sql.PreparedStatement.setString java.sql.PreparedStatement.setString1 Security risk level : CRITICAL

#### File lecode\value\ValueStringFixed.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
ValueString | org.h2.value.ValueStringFixed

Module / class or interface : org.h2.value.ValueStringFixed

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueStringFixed | ValueStringFixed(String) | 1 | 1
String | trimRight(String) | 1 | 5
int | getType() | 1 | 1
ValueStringFixed | get(String) | 3 | 5
ValueString | getNew(String) | 1 | 1

#### File lecode\value\ValueStringIgnoreCase.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
ValueString | org.h2.value.ValueStringIgnoreCase

Module / class or interface : org.h2.value.ValueStringIgnoreCase

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueStringIgnoreCase | ValueStringIgnoreCase(String) | 1 | 1
int | getType() | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 2
boolean | equals(Object) | 1 | 1
int | hashCode() | 2 | 2
String | getSQL() | 1 | 1
ValueStringIgnoreCase | get(String) | 4 | 6
ValueString | getNew(String) | 1 | 1

#### File lecode\value\ValueTime.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueTime

Module / class or interface : org.h2.value.ValueTime

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueTime | ValueTime(long) | 1 | 1
ValueTime | fromNanos(long) | 1 | 1
ValueTime | get(Time) | 1 | 1
ValueTime | parse(String) | 1 | 2
long | getNanos() | 1 | 1
Time | getTime() | 1 | 1
int | getType() | 1 | 1
String | getString() | 1 | 3
String | getSQL() | 1 | 1
long | getPrecision() | 1 | 1
int | getDisplaySize() | 1 | 1
int | compareSecure(Value;CompareMode) | 1 | 1
boolean | equals(Object) | 2 | 2
int | hashCode() | 1 | 1
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
Value | add(Value) | 1 | 2
Value | subtract(Value) | 1 | 2
Value | multiply(Value) | 1 | 1
Value | divide(Value) | 1 | 1
int | getSignum() | 1 | 1
Value | negate() | 1 | 1
void | appendTime(StringBuilder;long;boolean) | 5 | 18

#### File lecode\value\ValueTimestamp.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueTimestamp

Module / class or interface : org.h2.value.ValueTimestamp

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueTimestamp | ValueTimestamp(long;long) | 1 | 2
ValueTimestamp | fromDateValueAndNanos(long;long) | 1 | 1
ValueTimestamp | get(Timestamp) | 1 | 5
ValueTimestamp | parse(String) | 1 | 2
ValueTimestamp | parseTry(String) | 9 | 13
long | getDateValue() | 1 | 1
long | getNanos() | 1 | 1
Timestamp | getTimestamp() | 1 | 1
int | getType() | 1 | 1
String | getString() | 1 | 5
String | getSQL() | 1 | 1
long | getPrecision() | 1 | 1
int | getScale() | 1 | 1
int | getDisplaySize() | 1 | 1
Value | convertScale(boolean;int) | 4 | 10
int | compareSecure(Value;CompareMode) | 2 | 4
boolean | equals(Object) | 4 | 4
int | hashCode() | 1 | 1
Object | getObject() | 1 | 1
void | set(PreparedStatement;int) | 1 | 1
Value | add(Value) | 1 | 4
Value | subtract(Value) | 1 | 4

#### File lecode\value\ValueUuid.java 0 rule violation (XML file)

Ancestor class | Children classes
--- | ---
Value | org.h2.value.ValueUuid

Module / class or interface : org.h2.value.ValueUuid

Quality index : nature | Name of function/method | McCABE complexity | Lines of code / NCSS
--- | --- | --- | ---
ValueUuid | ValueUuid(long;long) | 1 | 2
int | hashCode() | 1 | 1
ValueUuid | getNewRandom() | 1 | 5
ValueUuid | get(byte[]) | 2 | 4
ValueUuid | get(long;long) | 1 | 1
ValueUuid | get(String) | 7 | 5
String | getSQL() | 1 | 1
int | getType() | 1 | 1
long | getPrecision() | 1 | 1
void | appendHex(StringBuilder;long;int) | 2 | 3
String | getString() | 1 | 11
int | compareSecure(Value;CompareMode) | 3 | 4
boolean | equals(Object) | 1 | 1
Object | getObject() | 1 | 1
byte[] | getBytes() | 2 | 6
void | set(PreparedStatement;int) | 1 | 1
long | getHigh() | 1 | 1
long | getLow() | 1 | 1
int | getDisplaySize() | 1 | 1