Search Results

Search found 6630 results on 266 pages for 'everyone'.

Page 266/266 | < Previous Page | 262 263 264 265 266 

  • SQL Server giving a weird conversion error

    - by codingguy3000
    Hello Everyone I'm stuck and any help you can give me is greatly appreciated. create table stackoverflow_rules(myguid uniqueidentifier primary key, myvarchar50 varchar(50)) insert into stackoverflow_rules(myguid, myvarchar50) values('27C4CF31-2C4C-4C78-BBDC-2D0FDAA891CF','9985276') insert into stackoverflow_rules(myguid, myvarchar50) values('6F865BBD-1D79-4931-BCFE-71AD7A14B145','9985275') insert into stackoverflow_rules(myguid, myvarchar50) values('C91124D9-CE83-44C6-A979-427858BBCDCE','9985274') insert into stackoverflow_rules(myguid, myvarchar50) values('18D89F3C-D15D-4A27-9695-CE4417A9D752','9985273') insert into stackoverflow_rules(myguid, myvarchar50) values('40C9A127-D50D-440C-A6BF-A3C292B56121','9985272') insert into stackoverflow_rules(myguid, myvarchar50) values('3191CE74-6443-4DF0-ABFB-4083150E27A7','9985271') insert into stackoverflow_rules(myguid, myvarchar50) values('489606B3-8EE8-4308-BD3B-660FEC999B84','9985270') insert into stackoverflow_rules(myguid, myvarchar50) values('7FB986D6-7ACF-4453-B124-E688514D3A84','9985269') insert into stackoverflow_rules(myguid, myvarchar50) values('2E1662CB-FBC2-418A-9FFD-453895EE6FA4','9985268') insert into stackoverflow_rules(myguid, myvarchar50) values('6180E683-AA19-4B5D-9AA1-370B9AA8C156','9985267') insert into stackoverflow_rules(myguid, myvarchar50) values('39BDD429-4C49-4351-951F-016B89E700D0','9985267') insert into stackoverflow_rules(myguid, myvarchar50) values('9A09CF26-B168-48D2-9178-EBBD6C0BA5F4','9985267') insert into stackoverflow_rules(myguid, myvarchar50) values('56BA06A7-71F6-4AC2-817A-69A3E800BE54','9985266') insert into stackoverflow_rules(myguid, myvarchar50) values('35D8C2FE-4793-40BC-AECA-10AA722866AE','9985265') insert into stackoverflow_rules(myguid, myvarchar50) values('84162588-D2A2-4B67-869D-2D7A0CB3ABEC','9985264') insert into stackoverflow_rules(myguid, myvarchar50) values('05A8BE08-B0CF-4ADC-A901-2DB6B70713DA','9985263') insert into stackoverflow_rules(myguid, myvarchar50) values('11E1B3F5-5EC0-43BF-B868-B30BCC5F97B3','9985262') insert into stackoverflow_rules(myguid, myvarchar50) values('D48875E9-4A2B-4A5E-8C3A-6788ADD2E44E','9985261') insert into stackoverflow_rules(myguid, myvarchar50) values('5C29D799-5F86-4B5D-8B31-1AFB9E289417','9985260') insert into stackoverflow_rules(myguid, myvarchar50) values('3FAF4D60-F06A-4754-A26F-61DE6A121E9E','9985259') insert into stackoverflow_rules(myguid, myvarchar50) values('4F001BF6-BF60-4F40-AAE1-32CD707E87F8','9985258') insert into stackoverflow_rules(myguid, myvarchar50) values('56A91F39-F9D2-438C-A424-F26ED799F723','9985258') insert into stackoverflow_rules(myguid, myvarchar50) values('F55F72CA-0C2B-4DE7-B725-C9521CD57B23','9985257') insert into stackoverflow_rules(myguid, myvarchar50) values('364808A7-46E6-4639-A14D-6A350A56D2A0','9985256') insert into stackoverflow_rules(myguid, myvarchar50) values('68FA5B18-BBE3-4F1F-A9DE-D46853AD5D4A','9985255') insert into stackoverflow_rules(myguid, myvarchar50) values('B0118D37-807A-4D29-9B56-790F3D810C64','9985254') insert into stackoverflow_rules(myguid, myvarchar50) values('E998F33E-F05A-4C49-8CC2-B90BCFA9AE0E','9985253') insert into stackoverflow_rules(myguid, myvarchar50) values('A0531477-335C-4A7D-A1E7-1DAD54ECB7AD','9985252') insert into stackoverflow_rules(myguid, myvarchar50) values('96540D09-BA49-413B-9FD6-228DF524BE1A','9985251') insert into stackoverflow_rules(myguid, myvarchar50) values('23CD3C18-DAE2-463B-B27C-977488DF9C5F','9985251') insert into stackoverflow_rules(myguid, myvarchar50) values('8BF4AE7D-0AF0-47F9-9388-A2D4CA4C3160','9985250') insert into stackoverflow_rules(myguid, myvarchar50) values('E1892F4D-471C-4A49-8D68-F9F1E6E9C275','9985249') insert into stackoverflow_rules(myguid, myvarchar50) values('641A62CC-1DEE-4DFD-BC9A-DD47D7C45B18','9985248') insert into stackoverflow_rules(myguid, myvarchar50) values('3AF2F7CA-489D-4A79-A6F5-DB5578F381D0','9985247') insert into stackoverflow_rules(myguid, myvarchar50) values('939B3773-BE13-483C-A27F-5594A23AB6F2','9985247') insert into stackoverflow_rules(myguid, myvarchar50) values('81A5FD90-1E2D-4DB5-A10F-5624A576D566','9985247') insert into stackoverflow_rules(myguid, myvarchar50) values('E87109DD-7283-4B60-AB7F-F9A3DD384E52','9985247') insert into stackoverflow_rules(myguid, myvarchar50) values('689A789F-0FFC-45AE-87DF-66C5130338E2','9985246') insert into stackoverflow_rules(myguid, myvarchar50) values('4A9D3A2D-940B-4D45-8234-A1C98FF8A2FB','9985246') insert into stackoverflow_rules(myguid, myvarchar50) values('75073565-E623-40FC-AEF3-81620F2514A8','9985245') insert into stackoverflow_rules(myguid, myvarchar50) values('DB583FF8-1635-47C1-8241-D37C015C7642','9985244') insert into stackoverflow_rules(myguid, myvarchar50) values('39EA148B-55D1-4878-925A-39FA8592F451','9985243') insert into stackoverflow_rules(myguid, myvarchar50) values('BF1CE2D7-ABD3-460B-A7DC-BD0E2B2A5388','9985242') insert into stackoverflow_rules(myguid, myvarchar50) values('B6431717-26F0-436E-9DCC-C0C5240AC329','9985242') insert into stackoverflow_rules(myguid, myvarchar50) values('4F22E672-6F3D-454C-ABA7-D9B84D12DDE0','9985241') insert into stackoverflow_rules(myguid, myvarchar50) values('0436E893-DC43-4FF7-8BDC-BD0BF9E9A55D','9985240') insert into stackoverflow_rules(myguid, myvarchar50) values('60B2FE73-3575-4047-B324-63620FEACD6B','9985239') insert into stackoverflow_rules(myguid, myvarchar50) values('2041E1E5-F60F-4494-A000-F349F49662EC','9985238') insert into stackoverflow_rules(myguid, myvarchar50) values('B89636C8-4648-4058-8DC6-95DCE468CA63','9985237') insert into stackoverflow_rules(myguid, myvarchar50) values('4EC1B486-1E9C-4B41-94C1-5B24471BAD3D','9985236') insert into stackoverflow_rules(myguid, myvarchar50) values('4C86120E-1A27-4F59-948B-F11D8ACD498E','9985234') insert into stackoverflow_rules(myguid, myvarchar50) values('E8A1EA7A-5337-4769-9D23-25F7BFB589AF','9985217') insert into stackoverflow_rules(myguid, myvarchar50) values('6E7982F0-5899-4214-A05A-262E05A540CB','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('C55B838F-FD63-40E9-97AF-25E02A37ABB7','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('95296596-ED86-4A88-8C46-27CF79D4AFB9','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('149BC6CC-857C-4CD7-B374-29EE6382CFCF','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('5D3E88FC-1DB5-4BAF-A16B-29F2A2C7D997','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('1FDB6AD4-3860-411E-A247-22B9D00C9053','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('83BD156B-C5ED-460E-95F0-21E8B4254BF8','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('2FD09C37-E224-414D-8C41-220B6528EB9C','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('A46D0B0D-70E2-4AEF-BF30-2244FFA8EF9E','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('824B7F04-51B4-48F6-920A-1FDE8571E32F','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('79DD6034-A9DC-4AC1-9CD3-338F0521AC99','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('BFD35E07-C5DE-4C8B-ADC4-36069655F450','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('D655AD53-8107-481B-A1C9-340A7B31EFB6','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('7E6FF0E9-E1F4-4522-AB91-1A64C2AC0E3A','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('3A977BFE-17F6-46FA-8568-1A8ED2F48483','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('D95A941D-DEB3-46B5-8B2B-1AC9741824ED','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('55528060-12AE-4C2E-A4A1-11E40881DEAE','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('E99B4179-DE6E-4FCB-B7B9-165C05A94424','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('20D2D92B-E45A-4883-A114-109C41E2F278','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('7161CC4A-0B3E-4B97-A973-0C5A7F26CC0D','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('5E267539-8412-4423-A82C-0C74C995D561','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('AE173244-38CD-4B8D-A1CB-0DC112AC6F54','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('3ED8BF74-D0D1-4D11-92B3-008F11E34308','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('6F77EAF9-0520-495A-ADB5-027F611E418D','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('34DAFFBC-0733-4EC0-8607-0287DA5929D6','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('5266FB2F-2829-4C60-91E7-00D9A0832B8E','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('A1EC9933-92F0-4805-93C2-071F503BE816','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('EC19E064-940A-4EEA-9A12-07D2A0680C03','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('7CA5F400-0E57-4A86-B4E1-094720E98B56','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('3A7F95B9-79B6-4323-B390-5B30AE23F66C','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('CCA677CB-8889-40E6-8FDC-54C33DCBAD93','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('345FACAF-90B2-4B2D-B6CF-577F242F28C9','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('20531AFD-21EB-4B75-B50C-5FEABDAE29DB','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('A8FF5B5F-7976-43FE-B013-67CEE5F07710','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('AEF6E39A-6CC2-48E8-9999-65D7CD103A45','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('8AB565EE-4A53-40B9-9D95-66034FD72B6D','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('B0DAC1F6-B7E0-476F-8543-6282203A72C7','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('DACE56ED-5964-44FD-9E35-68E3B409B2D7','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('C64F5A8A-1930-4824-9F0E-68EF848F2F86','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('38817195-BDB0-44AC-988D-690BE9E50FD0','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('BF4202D8-A23A-48DB-8799-694578EED45A','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('D26A3E39-EEA2-4928-82F9-676B3F901021','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('0D3F16C2-237A-4461-9851-6B0555EDADCE','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('F8CCEE52-A31D-4B6D-9F9F-6D53BE7EB919','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('BCE3146A-AACE-4CF5-ADF1-3D5E57827D96','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('5D6E4347-ABC8-4892-89EC-3FE666A8523B','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('8BD465A9-DC91-4960-BCC7-42EAEE51024A','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('54FCE80F-F551-4548-BCE2-4499AB66D93F','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('843C8651-A95D-458F-A6E7-488F5978FB56','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('4BE7BC8D-BC97-4F8F-85BB-48CC970B9465','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('6C611A14-11CC-454D-A9C8-48CF0B2776A9','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('50819781-F028-4976-A406-45D88804C566','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('1EE5DBE0-0EA3-4F9B-8C78-469D00888892','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('33B87A5D-CB69-4BD2-BEC8-4D90D6A21232','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('C31D7CD1-E9BA-4B03-BB11-4DE7022A45AD','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('2E1FC057-4C57-4C27-86E4-4EC887B77ABE','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('7811CF7B-2935-47A6-92CB-520C4E0AEC4A','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('2DAB5B2D-3D94-4F47-B7F5-536FAF08BCC6','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('2F405742-CF20-4995-84D3-976B108DBB99','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('2852C9C8-325D-4C82-837E-9D6E751B794F','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('40E87A07-DA9B-4277-90BB-8FA994470CB1','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('732DF392-C8D6-4EEF-B046-8FC6C0DB4DEC','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('AA55681E-FE4A-46E9-8809-928941C165AD','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('C146FDD8-EF42-48B4-A357-90CEE93FE902','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('A0FEAAAD-8B44-4797-BD1F-A34AC872EC39','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('A45F22EE-8740-4A3B-ABB5-A8F7EE32B107','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('1A073622-C5D6-41B0-BCC2-8220ED1978BA','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('C7CFCCDC-5ADF-4BCF-BBE4-7E6D611B96CC','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('A618A9A7-5DAC-4658-9B6F-7FC091C49122','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('0F698448-929F-4E3B-A6B1-810BF66DC9AD','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('2FD04ED9-AC24-4E80-8902-7AF2351DAB7B','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('2DA5D721-DFDD-4E96-9A5C-7DF7B0FA9ABB','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('76816CF3-FB2E-440D-91E7-7FF179CE2702','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('228A8BC4-D136-4FDA-B006-84FD69D583A0','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('838DCC6F-0C37-4144-9461-892F1DE2A0D4','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('E65DF83F-FDA5-4883-9E29-8CAB66297328','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('621547A3-613E-4CB7-9537-8D1FF987ADC7','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('2ABB681F-5258-4DF3-A0B8-89962ADDBCB8','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('F54E5C88-17FA-407C-B457-8B69077748E9','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('63D66460-3834-4873-9BD4-74148EC300F4','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('14A19194-457F-40D3-B08E-715EF830FD75','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('75CF2565-D36A-46F6-935E-BFD82144B8A2','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('EDA93745-2009-41F6-B01F-C3F9930C0F67','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('20CFC7EE-7188-49F0-BDEB-C0CAF3610F2C','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('ED6EDD00-2151-4CA7-9F22-BF6DE74B0622','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('EC8DAC77-E516-4B8E-9FB8-C5A4C963563A','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('C6FDECC9-24BE-4AA0-B33C-C9195DC630B0','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('BD9890BA-8F8A-4596-B0F0-BA2F3467E5B4','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('2F496F30-1E08-4174-ABE4-BBE3977268EF','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('2CD7D3D2-77D4-43DE-A44F-B248AAF8891F','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('FFC7E6E7-00E9-41E8-BD11-B0EFD4BA3971','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('B8348F9C-D57F-4561-9981-B14DAEE7257B','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('2CAE1761-8DB0-4D18-8FF6-AD79D44EF699','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('9A241CB7-1FAE-4767-8E13-AF3A66123DC0','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('B836DB33-FB5A-4FF7-A293-D7A29488A6F6','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('23207756-F6E1-406C-AEAC-DFC1710E3E41','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('64ED1587-8791-414F-B2EA-E265584BECE9','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('07442948-0FE7-4EDD-8779-E4808B20852C','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('ACAE3351-3EDF-43E3-8021-E4CBAF20BA55','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('1E96680B-1E92-40F2-AAAE-E4D524206982','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('57A0F1D0-8029-4110-9C2A-D3A2F13E6776','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('D0A76745-1930-4755-90EA-D3CA0240BA6D','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('5379B540-4DCC-4A71-BE19-D1DA4B808A4D','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('B41B60EB-5C83-4CA6-8768-D2226A164FB6','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('31CA2727-7227-4377-B127-D261AA0CD304','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('BD7102BB-FA67-4A33-82C4-D3616ED7CB3F','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('7090FCA6-144A-430B-A609-CDDFB39C4D25','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('382BE0D2-A92A-4D73-B2CE-D640A2BBA523','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('1A4011C0-40C8-4ABD-8ACF-D6D3A220B940','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('53A62E1F-5926-4DEA-A7FB-C99B14A2120D','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('24C84EE0-70DF-4602-B133-F1CB765F2B29','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('B40C80C7-26C0-43F9-9B8A-F2C46A6FD79F','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('8F9FE478-6961-4042-A62D-F464F21BFC46','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('6E9B27D8-C963-4413-ABB5-F31F307F2AE1','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('1CCAB652-042A-4C6F-B89B-ECBFFCA468C6','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('FDA7C815-F4ED-4E6D-AE95-ED18005651EB','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('6D48A842-B5F9-45AA-BC3C-EF74C911E2FC','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('571A48F3-10E2-419C-8E72-EB4B833FA2A2','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('27C54188-4CD7-447D-9C47-E7C7F4A87A47','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('0F8E94BC-1612-4086-A6C1-E883C83758E4','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('24315A1A-CFD9-4984-AF64-F9A79E960D45','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('38602998-8149-4B6A-91EA-F9D4B93810A6','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('1FDB6A11-E422-4EA1-B4AC-FDD1197BB7F3','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('FDDCB1EA-37C9-4833-BDD8-FEFDEEF0A749','9980234') insert into stackoverflow_rules(myguid, myvarchar50) values('5241815C-CE10-4C08-BE01-CB2D1012CCF0','9980066') insert into stackoverflow_rules(myguid, myvarchar50) values('D0E5E79E-4502-42F8-B8C6-EDE3D20526B4','9970234') insert into stackoverflow_rules(myguid, myvarchar50) values('B173FC5D-BAB3-4942-A904-D9D3BA66A1ED','9960234') insert into stackoverflow_rules(myguid, myvarchar50) values('D5C2A2D9-2BA6-4059-896C-B464C8C8CB5F','9960234') insert into stackoverflow_rules(myguid, myvarchar50) values('32B865C7-1D67-457A-9550-DFDBCBFB12C6','9951166') insert into stackoverflow_rules(myguid, myvarchar50) values('82F0A99B-0C88-44EB-BE50-265C6C4C1B86','9400000') insert into stackoverflow_rules(myguid, myvarchar50) values('BDE9DC0D-B9A7-4AC9-83D5-8F9ED5F25FDA','9299199') insert into stackoverflow_rules(myguid, myvarchar50) values('2FE2415A-9D51-4AD4-9679-74BDA93DC6A6','9299166') insert into stackoverflow_rules(myguid, myvarchar50) values('4BC3D4FF-5FBB-484E-8BC6-CFE90706E3D2','9299111') insert into stackoverflow_rules(myguid, myvarchar50) values('0FC22F14-A499-4C8C-9E6B-0CF613ACF505','9281266') insert into stackoverflow_rules(myguid, myvarchar50) values('AC6B2795-A9A0-40DF-9BAF-04D4A74F4B9B','9281166') insert into stackoverflow_rules(myguid, myvarchar50) values('DAA73B60-65B9-46B2-B1AC-76A74B621700','9281166') insert into stackoverflow_rules(myguid, myvarchar50) values('D419DCBB-A76E-47DF-A59D-803AFAB770C5','9281166') insert into stackoverflow_rules(myguid, myvarchar50) values('405847E0-4764-4409-81E8-8ECCCAAE94BB','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('76D59559-F986-45EF-9F74-7870D97A377D','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('3F6F78A9-7930-4F76-839F-77304396CBC3','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('2C1A62F2-B783-432B-B83A-6BD8B29EE2DE','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('D371D319-6E88-4286-A46E-6C1905ADD6AC','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('10C42C2E-DC1A-43C4-959C-98D3A798D631','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('215F0003-188D-45C9-85BE-9B3811760CCB','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('4DD2BA43-BA1C-44BE-8C10-996454D63205','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('26D863E7-6F96-42BC-A2BA-99B30D94F6D9','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('625A2793-A60F-4FE7-9BD4-A953877B258D','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('5B5A2538-74E0-4A6F-9929-AA29BA3BDCCE','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('B8597353-0254-42AB-BAF7-AA4DAF195CC8','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('22F392BC-B42C-434F-9E32-AB8DFFC6EA76','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('E703EEE4-82B1-43C0-914F-ABCF3EF53E91','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('09BD6548-7395-4450-A7CA-D0AB0631F222','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('71D737EB-59CA-4685-827D-E17A0B4FA44D','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('F09ACB1E-64B0-4F29-86BF-E323C5347883','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('8A39E85B-8E49-44C1-8B4A-B9D79CC3F97F','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('E3BE436C-0BEC-45CE-9680-AFCE70D59B84','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('915D4F2A-8430-479F-84ED-064A3D6889DA','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('FF6DEFF5-072D-4E14-A6C2-0EF4862CCF28','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('2E7944D1-5A85-4D85-9660-138F30BED95C','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('E449E8A8-1CE4-49DE-898F-1C357777B674','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('65E89A21-5908-4913-840A-28E625F4C003','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('E23175FD-B60E-4FD4-A99A-2DB232BCB6B1','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('A521CC05-21C1-4759-AA00-384014F9C4CB','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('218CE896-8D3F-447B-A504-33428F797CE2','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('D4A3A407-20BF-481D-95DE-2C2BED13FD60','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('B5FCEB1B-3F0D-4DFE-B47D-4D44E88879A1','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('519BB489-1606-4A64-BA49-456DE79FC471','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('837D5167-CE68-4840-9592-432D371EE3AF','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('F140182F-844E-4CA7-BAA1-6A96FA726A93','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('8FB3AE45-3BFF-4DBF-ABAE-61A97EE73F36','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('33D59F0B-DAD6-4608-BF70-F2C49805FF54','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('5BFB5CEC-1322-49B0-A626-EC94092998A3','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('8AB2E1F8-A4F6-48AC-B789-FB1F46A89617','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('CD559FD0-552F-4F54-A638-F86878413D7B','9280666') insert into stackoverflow_rules(myguid, myvarchar50) values('D23AC171-E7E8-4310-B3B5-1253CCA33E5C','9251166') insert into stackoverflow_rules(myguid, myvarchar50) values('0E777743-0C70-4D76-9293-076F9DBC02EB','9251166') insert into stackoverflow_rules(myguid, myvarchar50) values('B0CDE199-9BDF-4CDD-8E32-1384CB8512B4','9200166') insert into stackoverflow_rules(myguid, myvarchar50) values('1F48F171-5179-4EC9-9554-2DA6EF60B9E8','9002266') insert into stackoverflow_rules(myguid, myvarchar50) values('A9168993-F6AF-4F81-A166-441411E72691','9001166') insert into stackoverflow_rules(myguid, myvarchar50) values('25FB4906-2AC8-4A29-B077-C4BC681D3227','9000001') insert into stackoverflow_rules(myguid, myvarchar50) values('02E14983-49E2-4867-B0C2-0BCF9BC3BAB6','8860235') insert into stackoverflow_rules(myguid, myvarchar50) values('53F915DE-1A8A-4A75-A661-0CAB56F39B11','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('834F1EB8-AEA0-435F-81AF-0C212BD54A17','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('797AFF3A-8CB0-4AE8-8430-0ED04A72394B','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('56B83693-3F46-4D8F-93A8-098517C96E94','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('1559018C-71F3-45FC-9642-09DFCC06EA78','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('04A86146-97FC-46C4-B1FE-07E916509908','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('1A3367B3-CB36-40CA-8D7D-02206840089A','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('33626BD1-AED2-4AEF-9289-199F641FDFE0','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('8468E795-71A8-4417-8179-1778FD7E915E','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('9EE6FF40-AAFB-46A8-8655-186515189AB8','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('D314A6A4-BBB5-4499-9EF4-1B37EA9131B6','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('788898AF-48E6-4DA0-BDBB-12871FE81D35','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('34D55FA5-FF82-49B5-A4EF-144999BB1B4F','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('C8FF93B1-EB7C-4711-85BA-14C78B7A27C1','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('54199346-624C-4B1E-8293-14EE9C6EF23B','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('5105C133-9120-4075-9EB6-151569E0719D','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('D03366DB-BC4A-44CC-ABC8-151F627E2A95','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('40EF76A3-2250-4840-90C1-1577AE855EEE','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('8E229744-7528-4727-880A-168331E72ED0','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('10F66C0C-C97B-4A8B-9FAC-160F3AA09A62','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('8173CB1C-A65D-4B89-9BD3-2DC4BA2F4C72','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('1CEAE246-6323-402D-95DB-2AC25DF1FD83','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('BB859D4A-3B1C-40FC-8C74-2BD44902894C','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('A31C45AF-D149-4789-A22D-2FB3E6A17627','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('52F98EEC-D3AC-429C-948F-306FA865EDE7','8860234') insert into stackoverflow_rules(myguid, myvarchar50) values('06E84032-C102-49F4-B544-3169FC1C62F4','8860234') insert into stackoverflo

    Read the article

  • How can I resolve Hibernate 3's ConstraintViolationException when updating a Persistent Entity's Col

    - by Tim Visher
    I'm trying to discover why two nearly identical class sets are behaving different from Hibernate 3's perspective. I'm fairly new to Hibernate in general and I'm hoping I'm missing something fairly obvious about the mappings or timing issues or something along those lines but I spent the whole day yesterday staring at the two sets and any differences that would lead to one being able to be persisted and the other not completely escaped me. I appologize in advance for the length of this question but it all hinges around some pretty specific implementation details. I have the following class mapped with Annotations and managed by Hibernate 3.? (if the specific specific version turns out to be pertinent, I'll figure out what it is). Java version is 1.6. ... @Embeddable public class JobStateChange implements Comparable<JobStateChange> { @Temporal(TemporalType.TIMESTAMP) @Column(nullable = false) private Date date; @Enumerated(EnumType.STRING) @Column(nullable = false, length = JobState.FIELD_LENGTH) private JobState state; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "acting_user_id", nullable = false) private User actingUser; public JobStateChange() { } @Override public int compareTo(final JobStateChange o) { return this.date.compareTo(o.date); } @Override public boolean equals(final Object obj) { if (this == obj) { return true; } else if (!(obj instanceof JobStateChange)) { return false; } JobStateChange candidate = (JobStateChange) obj; return this.state == candidate.state && this.actingUser.equals(candidate.getUser()) && this.date.equals(candidate.getDate()); } @Override public int hashCode() { return this.state.hashCode() + this.actingUser.hashCode() + this.date.hashCode(); } } It is mapped as a Hibernate CollectionOfElements in the class Job as follows: ... @Entity @Table( name = "job", uniqueConstraints = { @UniqueConstraint( columnNames = { "agency", //Job Name "payment_type", //Job Name "payment_file", //Job Name "date_of_payment", "payment_control_number", "truck_number" }) }) public class Job implements Serializable { private static final long serialVersionUID = -1131729422634638834L; ... @org.hibernate.annotations.CollectionOfElements @JoinTable(name = "job_state", joinColumns = @JoinColumn(name = "job_id")) @Sort(type = SortType.NATURAL) private final SortedSet<JobStateChange> stateChanges = new TreeSet<JobStateChange>(); ... public void advanceState( final User actor, final Date date) { JobState nextState; LOGGER.debug("Current state of {} is {}.", this, this.getCurrentState()); if (null == this.currentState) { nextState = JobState.BEGINNING; } else { if (!this.isAdvanceable()) { throw new IllegalAdvancementException(this.currentState.illegalAdvancementStateMessage); } if (this.currentState.isDivergent()) { nextState = this.currentState.getNextState(this); } else { nextState = this.currentState.getNextState(); } } JobStateChange stateChange = new JobStateChange(nextState, actor, date); this.setCurrentState(stateChange.getState()); this.stateChanges.add(stateChange); LOGGER.debug("Advanced {} to {}", this, this.getCurrentState()); } private void setCurrentState(final JobState jobState) { this.currentState = jobState; } boolean isAdvanceable() { return this.getCurrentState().isAdvanceable(this); } ... @Override public boolean equals(final Object obj) { if (obj == this) { return true; } else if (!(obj instanceof Job)) { return false; } Job otherJob = (Job) obj; return this.getName().equals(otherJob.getName()) && this.getDateOfPayment().equals(otherJob.getDateOfPayment()) && this.getPaymentControlNumber().equals(otherJob.getPaymentControlNumber()) && this.getTruckNumber().equals(otherJob.getTruckNumber()); } @Override public int hashCode() { return this.getName().hashCode() + this.getDateOfPayment().hashCode() + this.getPaymentControlNumber().hashCode() + this.getTruckNumber().hashCode(); } ... } The purpose of JobStateChange is to record when the Job moves through a series of State Changes that are outline in JobState as enums which know about advancement and decrement rules. The interface used to advance Jobs through a series of states is to call Job.advanceState() with a Date and a User. If the Job is advanceable according to rules coded in the enum, then a new StateChange is added to the SortedSet and everyone's happy. If not, an IllegalAdvancementException is thrown. The DDL this generates is as follows: ... drop table job; drop table job_state; ... create table job ( id bigint generated by default as identity, current_state varchar(25), date_of_payment date not null, beginningCheckNumber varchar(8) not null, item_count integer, agency varchar(10) not null, payment_file varchar(25) not null, payment_type varchar(25) not null, endingCheckNumber varchar(8) not null, payment_control_number varchar(4) not null, truck_number varchar(255) not null, wrapping_system_type varchar(15) not null, printer_id bigint, primary key (id), unique (agency, payment_type, payment_file, date_of_payment, payment_control_number, truck_number) ); create table job_state ( job_id bigint not null, acting_user_id bigint not null, date timestamp not null, state varchar(25) not null, primary key (job_id, acting_user_id, date, state) ); ... alter table job add constraint FK19BBD12FB9D70 foreign key (printer_id) references printer; alter table job_state add constraint FK57C2418FED1F0D21 foreign key (acting_user_id) references app_user; alter table job_state add constraint FK57C2418FABE090B3 foreign key (job_id) references job; ... The database is seeded with the following data prior to running tests ... insert into job (id, agency, payment_type, payment_file, payment_control_number, date_of_payment, beginningCheckNumber, endingCheckNumber, item_count, current_state, printer_id, wrapping_system_type, truck_number) values (-3, 'RRB', 'Monthly', 'Monthly','4501','1998-12-01 08:31:16' , '00000001','00040000', 40000, 'UNASSIGNED', null, 'KERN', '02'); insert into job_state (job_id, acting_user_id, date, state) values (-3, -1, '1998-11-30 08:31:17', 'UNASSIGNED'); ... After the database schema is automatically generated and rebuilt by the Hibernate tool. The following test runs fine up until the call to Session.flush() ... @ContextConfiguration(locations = { "/applicationContext-data.xml", "/applicationContext-service.xml" }) public class JobDaoIntegrationTest extends AbstractTransactionalJUnit4SpringContextTests { @Autowired private JobDao jobDao; @Autowired private SessionFactory sessionFactory; @Autowired private UserService userService; @Autowired private PrinterService printerService; ... @Test public void saveJob_JobAdvancedToAssigned_AllExpectedStateChanges() { //Get an unassigned Job Job job = this.jobDao.getJob(-3L); assertEquals(JobState.UNASSIGNED, job.getCurrentState()); Date advancedToUnassigned = new GregorianCalendar(1998, 10, 30, 8, 31, 17).getTime(); assertEquals(advancedToUnassigned, job.getStateChange(JobState.UNASSIGNED).getDate()); //Satisfy advancement constraints and advance job.setPrinter(this.printerService.getPrinter(-1L)); Date advancedToAssigned = new Date(); job.advanceState( this.userService.getUserByUsername("admin"), advancedToAssigned); assertEquals(JobState.ASSIGNED, job.getCurrentState()); assertEquals(advancedToUnassigned, job.getStateChange(JobState.UNASSIGNED).getDate()); assertEquals(advancedToAssigned, job.getStateChange(JobState.ASSIGNED).getDate()); //Persist to DB this.sessionFactory.getCurrentSession().flush(); ... } ... } The error thrown is SQLCODE=-803, SQLSTATE=23505: could not insert collection rows: [jaci.model.job.Job.stateChanges#-3] org.hibernate.exception.ConstraintViolationException: could not insert collection rows: [jaci.model.job.Job.stateChanges#-3] at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:94) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at org.hibernate.persister.collection.AbstractCollectionPersister.insertRows(AbstractCollectionPersister.java:1416) at org.hibernate.action.CollectionUpdateAction.execute(CollectionUpdateAction.java:86) at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:170) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1027) at jaci.dao.JobDaoIntegrationTest.saveJob_JobAdvancedToAssigned_AllExpectedStateChanges(JobDaoIntegrationTest.java:98) at org.springframework.test.context.junit4.SpringTestMethod.invoke(SpringTestMethod.java:160) at org.springframework.test.context.junit4.SpringMethodRoadie.runTestMethod(SpringMethodRoadie.java:233) at org.springframework.test.context.junit4.SpringMethodRoadie$RunBeforesThenTestThenAfters.run(SpringMethodRoadie.java:333) at org.springframework.test.context.junit4.SpringMethodRoadie.runWithRepetitions(SpringMethodRoadie.java:217) at org.springframework.test.context.junit4.SpringMethodRoadie.runTest(SpringMethodRoadie.java:197) at org.springframework.test.context.junit4.SpringMethodRoadie.run(SpringMethodRoadie.java:143) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.invokeTestMethod(SpringJUnit4ClassRunner.java:160) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:97) Caused by: com.ibm.db2.jcc.b.lm: DB2 SQL Error: SQLCODE=-803, SQLSTATE=23505, SQLERRMC=1;ACI_APP.JOB_STATE, DRIVER=3.50.152 at com.ibm.db2.jcc.b.wc.a(wc.java:575) at com.ibm.db2.jcc.b.wc.a(wc.java:57) at com.ibm.db2.jcc.b.wc.a(wc.java:126) at com.ibm.db2.jcc.b.tk.b(tk.java:1593) at com.ibm.db2.jcc.b.tk.c(tk.java:1576) at com.ibm.db2.jcc.t4.db.k(db.java:353) at com.ibm.db2.jcc.t4.db.a(db.java:59) at com.ibm.db2.jcc.t4.t.a(t.java:50) at com.ibm.db2.jcc.t4.tb.b(tb.java:200) at com.ibm.db2.jcc.b.uk.Gb(uk.java:2355) at com.ibm.db2.jcc.b.uk.e(uk.java:3129) at com.ibm.db2.jcc.b.uk.zb(uk.java:568) at com.ibm.db2.jcc.b.uk.executeUpdate(uk.java:551) at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:46) at org.hibernate.persister.collection.AbstractCollectionPersister.insertRows(AbstractCollectionPersister.java:1389) Therein lies my problem… A nearly identical Class set (in fact, so identical that I've been chomping at the bit to make it a single class that serves both business entities) runs absolutely fine. It is identical except for name. Instead of Job it's Web. Instead of JobStateChange it's WebStateChange. Instead of JobState it's WebState. Both Job and Web's SortedSet of StateChanges are mapped as a Hibernate CollectionOfElements. Both are @Embeddable. Both are SortType.Natural. Both are backed by an Enumeration with some advancement rules in it. And yet when a nearly identical test is run for Web, no issue is discovered and the data flushes fine. For the sake of brevity I won't include all of the Web classes here, but I will include the test and if anyone wants to see the actual sources, I'll include them (just leave a comment). The data seed: insert into web (id, stock_type, pallet, pallet_id, date_received, first_icn, last_icn, shipment_id, current_state) values (-1, 'PF', '0011', 'A', '2008-12-31 08:30:02', '000000001', '000080000', -1, 'UNSTAGED'); insert into web_state (web_id, date, state, acting_user_id) values (-1, '2008-12-31 08:30:03', 'UNSTAGED', -1); The test: ... @ContextConfiguration(locations = { "/applicationContext-data.xml", "/applicationContext-service.xml" }) public class WebDaoIntegrationTest extends AbstractTransactionalJUnit4SpringContextTests { @Autowired private WebDao webDao; @Autowired private UserService userService; @Autowired private SessionFactory sessionFactory; ... @Test public void saveWeb_WebAdvancedToNewState_AllExpectedStateChanges() { Web web = this.webDao.getWeb(-1L); Date advancedToUnstaged = new GregorianCalendar(2008, 11, 31, 8, 30, 3).getTime(); assertEquals(WebState.UNSTAGED, web.getCurrentState()); assertEquals(advancedToUnstaged, web.getState(WebState.UNSTAGED).getDate()); Date advancedToStaged = new Date(); web.advanceState( this.userService.getUserByUsername("admin"), advancedToStaged); this.sessionFactory.getCurrentSession().flush(); web = this.webDao.getWeb(web.getId()); assertEquals( "Web should have moved to STAGED State.", WebState.STAGED, web.getCurrentState()); assertEquals(advancedToUnstaged, web.getState(WebState.UNSTAGED).getDate()); assertEquals(advancedToStaged, web.getState(WebState.STAGED).getDate()); assertNotNull(web.getState(WebState.UNSTAGED)); assertNotNull(web.getState(WebState.STAGED)); } ... } As you can see, I assert that the Web was reconstituted the way I expect, I advance it, flush it to the DB, and then re-get it and verify that the states are as I expect. Everything works perfectly. Not so with Job. A possibly pertinent detail: the reconstitution code works fine if I cease to map JobStateChange.data as a TIMESTAMP and instead as a DATE, and ensure that all of the StateChanges always occur on different Dates. The problem is that this particular business entity can go through many state changes in a single day and so it needs to be sorted by time stamp rather than by date. If I don't do this then I can't sort the StateChanges correctly. That being said, WebStateChange.date is also mapped as a TIMESTAMP and so I again remain absolutely befuddled as to where this error is arising from. I tried to do a fairly thorough job of giving all of the technical details of the implementation but as this particular question is very implementation specific, if I missed anything just let me know in the comments and I'll include it. Thanks so much for your help! UPDATE: Since it turns out to be important to the solution of my problem, I have to include the pertinent bits of the WebStateChange class as well. ... @Embeddable public class WebStateChange implements Comparable<WebStateChange> { @Temporal(TemporalType.TIMESTAMP) @Column(nullable = false) private Date date; @Enumerated(EnumType.STRING) @Column(nullable = false, length = WebState.FIELD_LENGTH) private WebState state; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "acting_user_id", nullable = false) private User actingUser; ... WebStateChange( final WebState state, final User actingUser, final Date date) { ExceptionUtils.illegalNullArgs(state, actingUser, date); this.state = state; this.actingUser = actingUser; this.date = new Date(date.getTime()); } @Override public int compareTo(final WebStateChange otherStateChange) { return this.date.compareTo(otherStateChange.date); } @Override public boolean equals(final Object candidate) { if (this == candidate) { return true; } else if (!(candidate instanceof WebStateChange)) { return false; } WebStateChange candidateWebState = (WebStateChange) candidate; return this.getState() == candidateWebState.getState() && this.getUser().equals(candidateWebState.getUser()) && this.getDate().equals(candidateWebState.getDate()); } @Override public int hashCode() { return this.getState().hashCode() + this.getUser().hashCode() + this.getDate().hashCode(); } ... }

    Read the article

  • Rails link to PDF version of show.html.erb

    - by Danny McClelland
    Hi Everyone, I have created a pdf version of our rails application using the Prawn plugin, the page in question is part of the Kase model - the link to the kase is /kases/1 and the link to the pdf version is /kases/1.pdf. How can I add a link within the show.html.erb to the PDF file so whichever page is being viewed it updates the URL to the correct case id? <% content_for :header do -%> <%=h @kase.jobno %> | <%=h @kase.casesubject %> <% end -%> <!-- #START SIDEBAR --> <% content_for :sidebar do -%> <% if @kase.avatar.exists? then %> <%= image_tag @kase.avatar.url %> <% else %> <p style="font-size:smaller"> You can upload an icon for this case that will display here. Usually this would be for the year number icon for easy recognition.</p> <% end %> <% end %> <!-- #END SIDEBAR --> <ul id="kases_showlist"> <li>Date Instructed: <span><%=h @kase.dateinstructed %></span></li> <li>Client Company: <span><%=h @kase.clientcompanyname %></span></li> <li>Client Reference: <span><%=h @kase.clientref %></span></li> <li>Case Subject: <span><%=h @kase.casesubject %></span></li> <li>Transport<span><%=h @kase.transport %></span></li> <li>Goods<span><%=h @kase.goods %></span></li> <li>Case Status: <span><%=h @kase.kase_status %></span></li> <li>Client Company Address: <span class="address"><%=h @kase.clientcompanyaddress %></span></li> <li>Client Company Fax: <span><%=h @kase.clientcompanyfax %></span></li> <li>Case Handler: <span><%=h @kase.casehandlername %></span></li> <li>Case Handler Tel: <span><%=h @kase.casehandlertel %></span></li> <li>Case Handler Email: <span><%=h @kase.casehandleremail %></span></li> <li>Claimant Name: <span><%=h @kase.claimantname %></span></li> <li>Claimant Address: <span class="address"><%=h @kase.claimantaddress %></span></li> <li>Claimant Contact: <span><%=h @kase.claimantcontact %></span></li> <li>Claimant Tel: <span><%=h @kase.claimanttel %></span></li> <li>Claiment Mob: <span><%=h @kase.claimantmob %></span></li> <li>Claiment Email: <span><%=h @kase.claimantemail %></span></li> <li>Claimant URL: <span><%=h @kase.claimanturl %></span></li> <li>Comments: <span><%=h @kase.comments %></span></li> </ul> <!--- START FINANCE INFORMATION --> <div id="kase_finances"> <div class="js_option"> <h2>Financial Options</h2><p class="finance_showhide"><%= link_to_function "Show","Element.show('finance_showhide');" %> / <%= link_to_function "Hide","Element.hide('finance_showhide');" %></p> </div> <div id="finance_showhide" style="display:none"> <ul id="kases_new_finance"> <li>Invoice Number<span><%=h @kase.invoicenumber %></span></li> <li>Net Amount<span><%=h @kase.netamount %></span></li> <li>VAT<span><%=h @kase.vat %></span></li> <li>Gross Amount<span><%=h @kase.grossamount %></span></li> <li>Date Closed<span><%=h @kase.dateclosed %></span></li> <li>Date Paid<span><%=h @kase.datepaid %></span></li> </ul></div> </div> <!--- END FINANCE INFORMATION --> <%= link_to 'Edit Case', edit_kase_path(@kase) %> | <%= link_to 'Back', kases_path %> | <a href="#">Top</a> <div style="width:120%; height: 50px; background-color: black; margin: 10px 0 0 -19px; padding: 0; background-color: #d4d4d4;">&nbsp;</div> <div class="js_option_kaseemails"> <%= link_to_function "Show", "Element.show('newinstructionemail1');" %> / <%= link_to_function "Hide", "Element.hide('newinstructionemail1');" %> </div> <h3>New Instruction Email</h3> <div id="newinstructionemail1" style="display:none"> <p class="kase_email_output"> Hi,<br /> <br /> Many thanks for your instructions in the subject matter.<br /> <br /> We have allocated reference number <%=h @kase.jobno %> to the above claim.<br /> <br /> We have started our inquiries and will be in touch.<br /> <br /> Best Regards,<br /> <br /> <strong><%=h current_user.name %></strong> <br /> McClelland &amp; Co<br /> PO Box 149<br /> Southport<br /> PR8 4GZ<br /> <br /> Tel: +(0) 1704 569871<br /> Fax: +(0) 1704 562234<br /> Mob: <%=h current_user.mobile %><br /> E-mail: <%= current_user.email %><br /> <br /> This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you receive this e-mail in error please notify the originator of the message. <br /><br /> McClelland &amp; Co has taken every reasonable precaution to ensure that any attachment to this e-mail has been checked for viruses but it is strongly recommended that you carry out your own virus check before opening any attachment. McClelland &amp; Co cannot accept liability for any damage sustained as a result of software virus infection. </p> <%= link_to 'Edit Case', edit_kase_path(@kase) %> | <%= link_to 'Back', kases_path %> | <a href="#">Top</a> </div> <div style="width:120%; height: 20px; background-color: black; margin: 10px 0 0 -19px; padding: 0; background-color: #d4d4d4;">&nbsp;</div> <div class="js_option_kaseemails"> <%= link_to_function "Show", "Element.show('newinstructionemail');" %> / <%= link_to_function "Hide", "Element.hide('newinstructionemail');" %> </div> <h3>New Instruction Email</h3> <div id="newinstructionemail" style="display:none"> <p class="kase_email_output"> Hi,<br /> <br /> Many thanks for your instructions in the subject matter.<br /> <br /> We have allocated reference number <%=h @kase.jobno %> to the above claim.<br /> <br /> We have started our inquiries and will be in touch.<br /> <br /> Best Regards,<br /> <br /> <strong><%=h current_user.name %></strong> <br /> McClelland &amp; Co<br /> PO Box 149<br /> Southport<br /> PR8 4GZ<br /> <br /> Tel: +(0) 1704 569871<br /> Fax: +(0) 1704 562234<br /> Mob: <%=h current_user.mobile %><br /> E-mail: <%= current_user.email %><br /> <br /> This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you receive this e-mail in error please notify the originator of the message. <br /><br /> McClelland &amp; Co has taken every reasonable precaution to ensure that any attachment to this e-mail has been checked for viruses but it is strongly recommended that you carry out your own virus check before opening any attachment. McClelland &amp; Co cannot accept liability for any damage sustained as a result of software virus infection. </p> <%= link_to 'Edit Case', edit_kase_path(@kase) %> | <%= link_to 'Back', kases_path %> | <a href="#">Top</a> </div> <div style="width:120%; height: 20px; background-color: black; margin: 10px 0 0 -19px; padding: 0; background-color: #d4d4d4;">&nbsp;</div> <div class="js_option_kaseemails"> <%= link_to_function "Show", "Element.show('newinstructionemail2');" %> / <%= link_to_function "Hide", "Element.hide('newinstructionemail2');" %> </div> <h3>New Instruction Email</h3> <div id="newinstructionemail2" style="display:none;"> <p class="kase_email_output"> Hi,<br /> <br /> Many thanks for your instructions in the subject matter.<br /> <br /> We have allocated reference number <%=h @kase.jobno %> to the above claim.<br /> <br /> We have started our inquiries and will be in touch.<br /> <br /> Best Regards,<br /> <br /> <strong><%=h current_user.name %></strong> <br /> McClelland &amp; Co<br /> PO Box 149<br /> Southport<br /> PR8 4GZ<br /> <br /> Tel: +(0) 1704 569871<br /> Fax: +(0) 1704 562234<br /> Mob: <%=h current_user.mobile %><br /> E-mail: <%= current_user.email %><br /> <br /> This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you receive this e-mail in error please notify the originator of the message. <br /><br /> McClelland &amp; Co has taken every reasonable precaution to ensure that any attachment to this e-mail has been checked for viruses but it is strongly recommended that you carry out your own virus check before opening any attachment. McClelland &amp; Co cannot accept liability for any damage sustained as a result of software virus infection. </p> <%= link_to 'Edit Case', edit_kase_path(@kase) %> | <%= link_to 'Back', kases_path %> | <a href="#">Top</a> </div> Thanks, Danny

    Read the article

  • jquery .hide() bug in safari

    - by phil crowe
    ive been having issues with this hide bug thats only affecting safari. This is a simple vertical scroller that hides the first element in the list then shows the last. and works in everything apart from safari. the problem seems to be that the divs im working with here share the same class but have unique ids like #mycollectioncomment1, #mycollectioncomment2, #mycollectioncomment3 etc... however hiding just one of these divs hides all the other divs that share the same class. Ive tried .fadeOut(0) that everyone suggests as the work around but it just doesnt work here. var commentListCount = $(".myCollectionLatest").size(); var mycollclickCount = 0; var showingcomments = 5; if ($('.licomment').size() > 0) { showingcomments = 4; //alert("this"); } if ($('.lookInSeasonList').size() > 0) { showingcomments = 5; } if ($('.lookDescMiddle').size() > 0) { showingcomments = 8; } if ($('.MyCollectionsCollectionHolder').size() > 0) { showingcomments = 5; } // if (commentListCount > 5) { $(".myCollectionLatest").hide(); for (i = 0; i < showingcomments; i++) { $("#mycollectioncomment" + i).show(); } $('#mycolldown').click(function () { var element1, element2; if (showingcomments <= commentListCount) { mycollclickCount++; element1 = $("#mycollectioncomment" + mycollclickCount.toString()); element2 = $("#mycollectioncomment" + showingcomments.toString()); element1.closest('.licomment').hide(); element2.closest('.licomment').show(); showingcomments++; } }); $('#mycollup').click(function () { if (showingcomments <= 5) { } else { $("#mycollectioncomment" + mycollclickCount.toString()).show(); $("#mycollectioncomment" + mycollclickCount.toString()).closest('.licomment').show(); mycollclickCount--; showingcomments--; $("#mycollectioncomment" + showingcomments.toString()).hide(); $("#mycollectioncomment" + showingcomments.toString()).closest('.licomment').show(); } }); ---html markup --- <div style="width:260px; height:975px; float:left; border-right:solid 1px #e70079; border-bottom:solid 1px #e70079; border-left:solid 1px #e70079; margin-top:180px;"> <h2 align="center"> <br /> COLLECTION LATEST </h2> <img src="/images/my-collection/black-up.jpg" id="mycollup" /><ul><li class="licomment"><div class="myCollectionLatest" id="mycollectioncomment1"><div style="float:left;"><div class="colltoppic"><a href="/my-collection.aspx?memberId=6855"><img src="/media/6855/makeuo_main.jpg" width="74" height="74" onerror="ImgError(this);" /></a></div><div class="collbottompic" /><div style="float:left; position:absolute; margin-left:83px; margin-top:-84px;" class="mycolllatestlinks"><b><a href="/my-collection.aspx?memberId=6855" class="usernamelinkdiv">CHARLOTTE</a> SAID ABOUT <span class="pinkTxt"><br /><a href="/products/face/powder/pressed-powder.aspx">PRESSED POWDER</a></span></b><p>put this on after foundation. its the best cover powder + re... </p></div><div class="randomCommentsSeeMore"><span class="pinkTxt"><a href="/my-collection.aspx?memberId=6855"> See more <img src="/images/navControls/more-arrow.jpg" alt="see more" /></a></span></div></div></div></li><li class="licomment"><div class="myCollectionLatest" id="mycollectioncomment2"><div style="float:left;"><div class="colltoppic"><a href="/my-collection.aspx?memberId=6331"><img src="/media/6331/26462_1267423081357_1103204986_2592317_7875205_n_main.jpg" width="74" height="74" onerror="ImgError(this);" /></a></div><div class="collbottompic" /><div style="float:left; position:absolute; margin-left:83px; margin-top:-84px;" class="mycolllatestlinks"><b><a href="/my-collection.aspx?memberId=6331" class="usernamelinkdiv">ANN</a> SAID ABOUT <span class="pinkTxt"><br /><a href="/products/eyes/eyeshadow/brilliant-shimmer-duo-eye-wands.aspx">BRILLIANT SHIMMER DUO EYE WANDS</a></span></b><p>Likewise Natasha, i thought it would be a great product as i... </p></div><div class="randomCommentsSeeMore"><span class="pinkTxt"><a href="/my-collection.aspx?memberId=6331"> See more <img src="/images/navControls/more-arrow.jpg" alt="see more" /></a></span></div></div></div></li><li class="licomment"><div class="myCollectionLatest" id="mycollectioncomment3"><div style="float:left;"><div class="colltoppic"><a href="/my-collection.aspx?memberId=5168"><img src="/media/5168/P03-09-09_11.36_main.jpg" width="74" height="74" onerror="ImgError(this);" /></a></div><div class="collbottompic" /><div style="float:left; position:absolute; margin-left:83px; margin-top:-84px;" class="mycolllatestlinks"><b><a href="/my-collection.aspx?memberId=5168">SINYEE</a> SAID </b><p>i used to use this. but now it doesnt seem to go on my skin... </p></div><div class="randomCommentsSeeMore"><span class="pinkTxt"><a href="/my-collection.aspx?memberId=5168"> See more <img src="/images/navControls/more-arrow.jpg" alt="see more" /></a></span></div></div></div></li><li class="licomment"><div class="myCollectionLatest" id="mycollectioncomment4"><div style="float:left;"><div class="colltoppic"><a href="/my-collection.aspx?memberId=6941"><img src="/media/6941/purple 2_main.jpg" width="74" height="74" onerror="ImgError(this);" /></a></div><div class="collbottompic" /><div style="float:left; position:absolute; margin-left:83px; margin-top:-84px;" class="mycolllatestlinks"><b><a href="/my-collection.aspx?memberId=6941">MARIA</a> SAID </b><p>I love this product, not used creme blush for years so just ... </p></div><div class="randomCommentsSeeMore"><span class="pinkTxt"><a href="/my-collection.aspx?memberId=6941"> See more <img src="/images/navControls/more-arrow.jpg" alt="see more" /></a></span></div></div></div></li><li class="licomment"><div class="myCollectionLatest" id="mycollectioncomment5"><div style="float:left;"><div class="colltoppic"><a href="/my-collection.aspx?memberId=6329"><img src="/media/6329/snapshot_main.jpg" width="74" height="74" onerror="ImgError(this);" /></a></div><div class="collbottompic" /><div style="float:left; position:absolute; margin-left:83px; margin-top:-84px;" class="mycolllatestlinks"><b><a href="/my-collection.aspx?memberId=6329" class="usernamelinkdiv">ALICE</a> SAID ABOUT <span class="pinkTxt"><br /><a href="/products/eyes/mascara/collagen-curl-mascara.aspx">COLLAGEN CURL MASCARA</a></span></b><p> if you put a few drops of water in it, you will be stunne... </p></div><div class="randomCommentsSeeMore"><span class="pinkTxt"><a href="/my-collection.aspx?memberId=6329"> See more <img src="/images/navControls/more-arrow.jpg" alt="see more" /></a></span></div></div></div></li><li class="licomment"><div class="myCollectionLatest" id="mycollectioncomment6"><div style="float:left;"><div class="colltoppic"><a href="/my-collection.aspx?memberId=4466"><img src="/media/4466/DSC00260_main.jpg" width="74" height="74" onerror="ImgError(this);" /></a></div><div class="collbottompic" /><div style="float:left; position:absolute; margin-left:83px; margin-top:-84px;" class="mycolllatestlinks"><b><a href="/my-collection.aspx?memberId=4466" class="usernamelinkdiv">KATE</a> SAID ABOUT <span class="pinkTxt"><br /><a href="/products/eyes/eyeshadow/eye-palettes.aspx">EYE PALETTES</a></span></b><p>Went to Superdrug and saw these, i bought the pop-tastic pal... </p></div><div class="randomCommentsSeeMore"><span class="pinkTxt"><a href="/my-collection.aspx?memberId=4466"> See more <img src="/images/navControls/more-arrow.jpg" alt="see more" /></a></span></div></div></div></li><li class="licomment"><div class="myCollectionLatest" id="mycollectioncomment7"><div style="float:left;"><div class="colltoppic"><a href="/my-collection.aspx?memberId=4756"><img src="/media/4756/dfgdf_main.jpg" width="74" height="74" onerror="ImgError(this);" /></a></div><div class="collbottompic" /><div style="float:left; position:absolute; margin-left:83px; margin-top:-84px;" class="mycolllatestlinks"><b><a href="/my-collection.aspx?memberId=4756">JULIE</a> SAID </b><p>They are great and look amazing on thier own with some masca... </p></div><div class="randomCommentsSeeMore"><span class="pinkTxt"><a href="/my-collection.aspx?memberId=4756"> See more <img src="/images/navControls/more-arrow.jpg" alt="see more" /></a></span></div></div></div></li><li class="licomment"><div class="myCollectionLatest" id="mycollectioncomment8"><div style="float:left;"><div class="colltoppic"><a href="/my-collection.aspx?memberId=7006"><img src="/media/7006/IMG_1441_main.jpg" width="74" height="74" onerror="ImgError(this);" /></a></div><div class="collbottompic" /><div style="float:left; position:absolute; margin-left:83px; margin-top:-84px;" class="mycolllatestlinks"><b><a href="/my-collection.aspx?memberId=7006" class="usernamelinkdiv">ABIR</a> SAID ABOUT <span class="pinkTxt"><br /><a href="/products/eyes/mascara/big-fake-false-lash-effect-mascara.aspx">BIG FAKE FALSE LASH EFFECT MASCARA</a></span></b><p>It's no good. since the time i started using it i have had m... </p></div><div class="randomCommentsSeeMore"><span class="pinkTxt"><a href="/my-collection.aspx?memberId=7006"> See more <img src="/images/navControls/more-arrow.jpg" alt="see more" /></a></span></div></div></div></li><li class="licomment"><div class="myCollectionLatest" id="mycollectioncomment9"><div style="float:left;"><div class="colltoppic"><a href="/my-collection.aspx?memberId=5242"><img src="/media/5242/me_main.jpg" width="74" height="74" onerror="ImgError(this);" /></a></div><div class="collbottompic" /><div style="float:left; position:absolute; margin-left:83px; margin-top:-84px;" class="mycolllatestlinks"><b><a href="/my-collection.aspx?memberId=5242" class="usernamelinkdiv">REIKO</a> SAID ABOUT <span class="pinkTxt"><br /><a href="/products/eyes/eyeshadow/dazzle-me!-eye-dust.aspx">DAZZLE ME! EYE DUST</a></span></b><p>Brilliant Pigment Eye shadow dusts, stop wasting your money ... </p></div><div class="randomCommentsSeeMore"><span class="pinkTxt"><a href="/my-collection.aspx?memberId=5242"> See more <img src="/images/navControls/more-arrow.jpg" alt="see more" /></a></span></div></div></div></li><li class="licomment"><div class="myCollectionLatest" id="mycollectioncomment10"><div style="float:left;"><div class="colltoppic"><a href="/my-collection.aspx?memberId=5048"><img src="/media/5048/Melissa x_main.jpg" width="74" height="74" onerror="ImgError(this);" /></a></div><div class="collbottompic" /><div style="float:left; position:absolute; margin-left:83px; margin-top:-84px;" class="mycolllatestlinks"><b><a href="/my-collection.aspx?memberId=5048">MELISSA</a> SAID </b><p>I have the whole collection and wear it everyday :D I absolu... </p></div><div class="randomCommentsSeeMore"><span class="pinkTxt"><a href="/my-collection.aspx?memberId=5048"> See more <img src="/images/navControls/more-arrow.jpg" alt="see more" /></a></span></div></div></div></li></ul><img src="/images/my-collection/black-down.jpg" id="mycolldown" /><script> if (BrowserDetect.browser == "Safari") { if ($('#myCollectionFeaturedCollection').size() == 1) { $('#mycolldown').css({ "margin-top": "580px !important" }); } else { $('#mycolldown').css({ "margin-top": "380px !important" }); } } </script> <!--<img src="/images/my-collection/black-up.jpg" id="mycollup" /><ul /><img src="/images/my-collection/black-down.jpg" id="mycolldown" /> --> </div>

    Read the article

  • NullPointerException when linking to Service that uses ContentProvider

    - by Danny Chia
    H.i everyone, this is my first post here! Anyways, I'm trying to write a "todo list" application. It stores the data in a ContentProvider, which is accessed via a Service. However, my app crashes at launch. My code is below: Manifest file: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.examples.todolist" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="True"> <activity android:name=".ToDoList" android:label="@string/app_name" android:theme="@style/ToDoTheme"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name="TodoService"/> <provider android:name="TodoProvider" android:authorities="com.examples.provider.todolist" /> </application> <uses-sdk android:minSdkVersion="7" /> </manifest> ToDoList.java: package com.examples.todolist; import com.examples.todolist.TodoService.LocalBinder; import java.util.ArrayList; import java.util.Date; import android.app.Activity; import android.content.SharedPreferences; import android.database.Cursor; import android.os.AsyncTask; import android.os.Bundle; import android.view.ContextMenu; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.ServiceConnection; import android.os.IBinder; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnKeyListener; import android.widget.AdapterView; import android.widget.EditText; import android.widget.ListView; import android.widget.Toast; public class ToDoList extends Activity { static final private int ADD_NEW_TODO = Menu.FIRST; static final private int REMOVE_TODO = Menu.FIRST + 1; private static final String TEXT_ENTRY_KEY = "TEXT_ENTRY_KEY"; private static final String ADDING_ITEM_KEY = "ADDING_ITEM_KEY"; private static final String SELECTED_INDEX_KEY = "SELECTED_INDEX_KEY"; private boolean addingNew = false; private ArrayList<ToDoItem> todoItems; private ListView myListView; private EditText myEditText; private ToDoItemAdapter aa; int entries = 0; int notifs = 0; //ToDoDBAdapter toDoDBAdapter; Cursor toDoListCursor; TodoService mService; boolean mBound = false; /** Called when the activity is first created. */ public void onCreate(Bundle icicle) { super.onCreate(icicle); setContentView(R.layout.main); myListView = (ListView)findViewById(R.id.myListView); myEditText = (EditText)findViewById(R.id.myEditText); todoItems = new ArrayList<ToDoItem>(); int resID = R.layout.todolist_item; aa = new ToDoItemAdapter(this, resID, todoItems); myListView.setAdapter(aa); myEditText.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int keyCode, KeyEvent event) { if (event.getAction() == KeyEvent.ACTION_DOWN) if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) { ToDoItem newItem = new ToDoItem(myEditText.getText().toString(), 0); mService.insertTask(newItem); updateArray(); myEditText.setText(""); entries++; Toast.makeText(ToDoList.this, "Entry added", Toast.LENGTH_SHORT).show(); aa.notifyDataSetChanged(); cancelAdd(); return true; } return false; } }); registerForContextMenu(myListView); restoreUIState(); populateTodoList(); } private void populateTodoList() { // Get all the todo list items from the database. toDoListCursor = mService. getAllToDoItemsCursor(); startManagingCursor(toDoListCursor); // Update the array. updateArray(); Toast.makeText(this, "Todo list retrieved", Toast.LENGTH_SHORT).show(); } private void updateArray() { toDoListCursor.requery(); todoItems.clear(); if (toDoListCursor.moveToFirst()) do { String task = toDoListCursor.getString(toDoListCursor.getColumnIndex(ToDoDBAdapter.KEY_TASK)); long created = toDoListCursor.getLong(toDoListCursor.getColumnIndex(ToDoDBAdapter.KEY_CREATION_DATE)); int taskid = toDoListCursor.getInt(toDoListCursor.getColumnIndex(ToDoDBAdapter.KEY_ID)); ToDoItem newItem = new ToDoItem(task, new Date(created), taskid); todoItems.add(0, newItem); } while(toDoListCursor.moveToNext()); aa.notifyDataSetChanged(); } private void restoreUIState() { // Get the activity preferences object. SharedPreferences settings = getPreferences(0); // Read the UI state values, specifying default values. String text = settings.getString(TEXT_ENTRY_KEY, ""); Boolean adding = settings.getBoolean(ADDING_ITEM_KEY, false); // Restore the UI to the previous state. if (adding) { addNewItem(); myEditText.setText(text); } } @Override public void onSaveInstanceState(Bundle outState) { outState.putInt(SELECTED_INDEX_KEY, myListView.getSelectedItemPosition()); super.onSaveInstanceState(outState); } @Override public void onRestoreInstanceState(Bundle savedInstanceState) { int pos = -1; if (savedInstanceState != null) if (savedInstanceState.containsKey(SELECTED_INDEX_KEY)) pos = savedInstanceState.getInt(SELECTED_INDEX_KEY, -1); myListView.setSelection(pos); } @Override protected void onPause() { super.onPause(); // Get the activity preferences object. SharedPreferences uiState = getPreferences(0); // Get the preferences editor. SharedPreferences.Editor editor = uiState.edit(); // Add the UI state preference values. editor.putString(TEXT_ENTRY_KEY, myEditText.getText().toString()); editor.putBoolean(ADDING_ITEM_KEY, addingNew); // Commit the preferences. editor.commit(); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); // Create and add new menu items. MenuItem itemAdd = menu.add(0, ADD_NEW_TODO, Menu.NONE, R.string.add_new); MenuItem itemRem = menu.add(0, REMOVE_TODO, Menu.NONE, R.string.remove); // Assign icons itemAdd.setIcon(R.drawable.add_new_item); itemRem.setIcon(R.drawable.remove_item); // Allocate shortcuts to each of them. itemAdd.setShortcut('0', 'a'); itemRem.setShortcut('1', 'r'); return true; } @Override public boolean onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); int idx = myListView.getSelectedItemPosition(); String removeTitle = getString(addingNew ? R.string.cancel : R.string.remove); MenuItem removeItem = menu.findItem(REMOVE_TODO); removeItem.setTitle(removeTitle); removeItem.setVisible(addingNew || idx > -1); return true; } @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); menu.setHeaderTitle("Selected To Do Item"); menu.add(0, REMOVE_TODO, Menu.NONE, R.string.remove); } @Override public boolean onOptionsItemSelected(MenuItem item) { super.onOptionsItemSelected(item); int index = myListView.getSelectedItemPosition(); switch (item.getItemId()) { case (REMOVE_TODO): { if (addingNew) { cancelAdd(); } else { removeItem(index); } return true; } case (ADD_NEW_TODO): { addNewItem(); return true; } } return false; } @Override public boolean onContextItemSelected(MenuItem item) { super.onContextItemSelected(item); switch (item.getItemId()) { case (REMOVE_TODO): { AdapterView.AdapterContextMenuInfo menuInfo; menuInfo =(AdapterView.AdapterContextMenuInfo)item.getMenuInfo(); int index = menuInfo.position; removeItem(index); return true; } } return false; } @Override public void onDestroy() { super.onDestroy(); } private void cancelAdd() { addingNew = false; myEditText.setVisibility(View.GONE); } private void addNewItem() { addingNew = true; myEditText.setVisibility(View.VISIBLE); myEditText.requestFocus(); } private void removeItem(int _index) { // Items are added to the listview in reverse order, so invert the index. //toDoDBAdapter.removeTask(todoItems.size()-_index); ToDoItem item = todoItems.get(_index); final long selectedId = item.getTaskId(); mService.removeTask(selectedId); entries--; Toast.makeText(this, "Entry deleted", Toast.LENGTH_SHORT).show(); updateArray(); } @Override protected void onStart() { super.onStart(); Intent intent = new Intent(this, TodoService.class); bindService(intent, mConnection, Context.BIND_AUTO_CREATE); } @Override protected void onStop() { super.onStop(); // Unbind from the service if (mBound) { unbindService(mConnection); mBound = false; } } private ServiceConnection mConnection = new ServiceConnection() { public void onServiceConnected(ComponentName className, IBinder service) { LocalBinder binder = (LocalBinder) service; mService = binder.getService(); mBound = true; } public void onServiceDisconnected(ComponentName arg0) { mBound = false; } }; public class TimedToast extends AsyncTask<Long, Integer, Integer> { @Override protected Integer doInBackground(Long... arg0) { if (notifs < 15) { try { Toast.makeText(ToDoList.this, entries + " entries left", Toast.LENGTH_SHORT).show(); notifs++; Thread.sleep(20000); } catch (InterruptedException e) { } } return 0; } } } TodoService.java: package com.examples.todolist; import android.app.Service; import android.content.ContentResolver; import android.content.ContentValues; import android.content.Intent; import android.database.Cursor; import android.os.Binder; import android.os.IBinder; public class TodoService extends Service { private final IBinder mBinder = new LocalBinder(); @Override public IBinder onBind(Intent arg0) { return mBinder; } public class LocalBinder extends Binder { TodoService getService() { return TodoService.this; } } public void insertTask(ToDoItem _task) { ContentResolver cr = getContentResolver(); ContentValues values = new ContentValues(); values.put(TodoProvider.KEY_CREATION_DATE, _task.getCreated().getTime()); values.put(TodoProvider.KEY_TASK, _task.getTask()); cr.insert(TodoProvider.CONTENT_URI, values); } public void updateTask(ToDoItem _task) { long tid = _task.getTaskId(); ContentResolver cr = getContentResolver(); ContentValues values = new ContentValues(); values.put(TodoProvider.KEY_TASK, _task.getTask()); cr.update(TodoProvider.CONTENT_URI, values, TodoProvider.KEY_ID + "=" + tid, null); } public void removeTask(long tid) { ContentResolver cr = getContentResolver(); cr.delete(TodoProvider.CONTENT_URI, TodoProvider.KEY_ID + "=" + tid, null); } public Cursor getAllToDoItemsCursor() { ContentResolver cr = getContentResolver(); return cr.query(TodoProvider.CONTENT_URI, null, null, null, null); } } TodoProvider.java: package com.examples.todolist; import android.content.*; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteQueryBuilder; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.net.Uri; import android.text.TextUtils; import android.util.Log; public class TodoProvider extends ContentProvider { public static final Uri CONTENT_URI = Uri.parse("content://com.examples.provider.todolist/todo"); @Override public boolean onCreate() { Context context = getContext(); todoHelper dbHelper = new todoHelper(context, DATABASE_NAME, null, DATABASE_VERSION); todoDB = dbHelper.getWritableDatabase(); return (todoDB == null) ? false : true; } @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sort) { SQLiteQueryBuilder tb = new SQLiteQueryBuilder(); tb.setTables(TODO_TABLE); // If this is a row query, limit the result set to the passed in row. switch (uriMatcher.match(uri)) { case TASK_ID: tb.appendWhere(KEY_ID + "=" + uri.getPathSegments().get(1)); break; default: break; } // If no sort order is specified sort by date / time String orderBy; if (TextUtils.isEmpty(sort)) { orderBy = KEY_ID; } else { orderBy = sort; } // Apply the query to the underlying database. Cursor c = tb.query(todoDB, projection, selection, selectionArgs, null, null, orderBy); // Register the contexts ContentResolver to be notified if // the cursor result set changes. c.setNotificationUri(getContext().getContentResolver(), uri); // Return a cursor to the query result. return c; } @Override public Uri insert(Uri _uri, ContentValues _initialValues) { // Insert the new row, will return the row number if // successful. long rowID = todoDB.insert(TODO_TABLE, "task", _initialValues); // Return a URI to the newly inserted row on success. if (rowID > 0) { Uri uri = ContentUris.withAppendedId(CONTENT_URI, rowID); getContext().getContentResolver().notifyChange(uri, null); return uri; } throw new SQLException("Failed to insert row into " + _uri); } @Override public int delete(Uri uri, String where, String[] whereArgs) { int count; switch (uriMatcher.match(uri)) { case TASKS: count = todoDB.delete(TODO_TABLE, where, whereArgs); break; case TASK_ID: String segment = uri.getPathSegments().get(1); count = todoDB.delete(TODO_TABLE, KEY_ID + "=" + segment + (!TextUtils.isEmpty(where) ? " AND (" + where + ')' : ""), whereArgs); break; default: throw new IllegalArgumentException("Unsupported URI: " + uri); } getContext().getContentResolver().notifyChange(uri, null); return count; } @Override public int update(Uri uri, ContentValues values, String where, String[] whereArgs) { int count; switch (uriMatcher.match(uri)) { case TASKS: count = todoDB.update(TODO_TABLE, values, where, whereArgs); break; case TASK_ID: String segment = uri.getPathSegments().get(1); count = todoDB.update(TODO_TABLE, values, KEY_ID + "=" + segment + (!TextUtils.isEmpty(where) ? " AND (" + where + ')' : ""), whereArgs); break; default: throw new IllegalArgumentException("Unknown URI " + uri); } getContext().getContentResolver().notifyChange(uri, null); return count; } @Override public String getType(Uri uri) { switch (uriMatcher.match(uri)) { case TASKS: return "vnd.android.cursor.dir/vnd.examples.task"; case TASK_ID: return "vnd.android.cursor.item/vnd.examples.task"; default: throw new IllegalArgumentException("Unsupported URI: " + uri); } } // Create the constants used to differentiate between the different URI // requests. private static final int TASKS = 1; private static final int TASK_ID = 2; private static final UriMatcher uriMatcher; // Allocate the UriMatcher object, where a URI ending in 'tasks' will // correspond to a request for all tasks, and 'tasks' with a // trailing '/[rowID]' will represent a single task row. static { uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); uriMatcher.addURI("com.examples.provider.Todolist", "tasks", TASKS); uriMatcher.addURI("com.examples.provider.Todolist", "tasks/#", TASK_ID); } //The underlying database private SQLiteDatabase todoDB; private static final String TAG = "TodoProvider"; private static final String DATABASE_NAME = "todolist.db"; private static final int DATABASE_VERSION = 1; private static final String TODO_TABLE = "todolist"; // Column Names public static final String KEY_ID = "_id"; public static final String KEY_TASK = "task"; public static final String KEY_CREATION_DATE = "date"; public long insertTask(ToDoItem _task) { // Create a new row of values to insert. ContentValues newTaskValues = new ContentValues(); // Assign values for each row. newTaskValues.put(KEY_TASK, _task.getTask()); newTaskValues.put(KEY_CREATION_DATE, _task.getCreated().getTime()); // Insert the row. return todoDB.insert(TODO_TABLE, null, newTaskValues); } public boolean updateTask(long _rowIndex, String _task) { ContentValues newValue = new ContentValues(); newValue.put(KEY_TASK, _task); return todoDB.update(TODO_TABLE, newValue, KEY_ID + "=" + _rowIndex, null) > 0; } public boolean removeTask(long _rowIndex) { return todoDB.delete(TODO_TABLE, KEY_ID + "=" + _rowIndex, null) > 0; } // Helper class for opening, creating, and managing database version control private static class todoHelper extends SQLiteOpenHelper { private static final String DATABASE_CREATE = "create table " + TODO_TABLE + " (" + KEY_ID + " integer primary key autoincrement, " + KEY_TASK + " TEXT, " + KEY_CREATION_DATE + " INTEGER);"; public todoHelper(Context cn, String name, CursorFactory cf, int ver) { super(cn, name, cf, ver); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(DATABASE_CREATE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.w(TAG, "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data"); db.execSQL("DROP TABLE IF EXISTS " + TODO_TABLE); onCreate(db); } } } I've omitted the other files as I'm sure they are correct. When I run the program, LogCat shows that the NullPointerException occurs in populateTodoList(), at toDoListCursor = mService.getAllToDoItemsCursor(). mService is the Cursor object returned by TodoService. I've added the service to the Manifest file, but I still cannot find out why it's causing an exception. Thanks in advance.

    Read the article

< Previous Page | 262 263 264 265 266